三 嵌入式系统应用开发

三 嵌入式系统应用开发

ID:40120787

大小:913.00 KB

页数:70页

时间:2019-07-22

三 嵌入式系统应用开发_第1页
三 嵌入式系统应用开发_第2页
三 嵌入式系统应用开发_第3页
三 嵌入式系统应用开发_第4页
三 嵌入式系统应用开发_第5页
资源描述:

《三 嵌入式系统应用开发》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、课件版本:200602嵌入式系统 应用开发技术田大鸣tdm189@qdu.edu.cn嵌入式系统 应用开发技术第三章 嵌入式硬件平台嵌入式硬件结构嵌入式处理器片内周边电路基本外围电路外设编程示例引导程序设置BCU中断处理程序设置8位定时器设置串口引导程序S1C33程序至少需要一个向量表和一道引导程序。正常情况下,程序引导地址存放在起始地址为0xC00000的复位向量中。程序由0xC00000开始执行。最简单的程序.abs;定位命令.org0xC00000.code.wordBOOT;向量表BOOT:xld.w%r8,0x800;引导程序ld.w%sp,%r

2、8;设置堆栈xcallmain;调用主程序.Word专门用于定义向量,如:.wordBOOT;引导.wordRESET;复位.wordNMI;不可屏蔽中断.wordSOFTINT0;软中断0.wordSOFTINT1;软中断1.wordINT0;中断0.wordINT1;中断1中断向量的重定义为便于编程理解,对中断向量重定义,如:#defineRESETBOOT#defineINT12int_16timer_u00#defineINT15int_16timer_c01#defineINT18int_16timer_u11#defineINT23int_16

3、timer_u21#defineINT27int_16timer_u31一般引导程序#include"..bcudrv_bcu.h";;设置栈顶#defineSP_TOP0x07ff;内部RAM;;全局指针#defineGP_ADDR0x0000;0x0.code定义部分:.globalBOOTBOOT:xld.w%r8,SP_TOPld.w%sp,%r8;设置堆栈指针xld.w%r8,GP_ADDR;设置全局指针xcall_init_bcu;引导时初始化BCUxcall_init_sys;初始化仿真I/Oxcallmain;转到主程序xcall_ex

4、it;转到_exit(Loop)程序部分设置BCUS1C33对存储器和设备的访问要通过BCU,因此必须预先设置。程序段.global_init_bcu_init_bcu:;;设置区域9~10;;设备大小:16位,输出显示延迟1.5;;等待控制2xld.w%r5,BCU_A10_ADDRxld.w%r4,BCU_BW_0

5、BCU_DRAH_NOT

6、BCU_DRAL_NOT

7、BCU_SZL_16

8、BCU_DFL_15

9、BCU_WTL_2ld.h[%r5],%r4ret完整设置对BCU的设置可能会包含以下内容:BCLK输出BurstROMDRAMSRAMArea

10、4~18Prescaler8位定时器重载数据……程序段xld.w%r5,PRESC_P8TS0_P8TS1_ADDRxld.w%r4,PRESC_PTONL_ON

11、PRESC_CLKDIVL_SEL0;设置8位定时器的Prescalerld.b[%r5],%r48位定时器0的可编程时钟产生器:xld.w%r4,0xA0;重载数据;运行/停止寄存器xld.w%r5,T8P_PTRUN0_ADDRextT8P_RLD0_ADDR-T8P_PTRUN0_ADDRld.b[%r5],%r48位定时器0的重载数据:中断处理程序中断处理程序不同于一般程序的编写:主要体

12、现在寄存器的保存和恢复上。16位定时器溢出中断.globalint_16timer_u00int_16timer_u00:;16位定时器中断向量pushn%r15;压栈xld.w%r12,T16P_TC30_ADDR;16位定时器3计数器数据寄存器地址xcallread_16timer_cnt读出16位定时器3计数器数据,停止16位定时器0:;16位定时器3计数器数据xld.w[timer00],%r10xld.w%r12,T16P_PRUN00_ADDRxcallstop_16timer;16位定时器0运行/停止寄存器地址ld.w%r4,0x01;打开1

13、6位定时器0中断标记xld.w[t16int00_flg],%r4xld.w%r5,INT_F16T0_F16T1_ADDR;中断因子寄存器地址xld.w%r4,INT_F16TU00;中断因子寄存器标记复位ld.b[%r5],%r4popn%r15;弹栈reti;恢复执行过程使用pushn%15将所有通用寄存器之值压栈写中断处理代码使用popn%15弹出所有通用寄存器之值使用reti返回中断前状态该中断程序执行前,CPU保存PC与PSR算术操作寄存器当使用了AHR和ALR时,必须保存:pushn%r15;压栈ld.w%r0,%ahrld.w%r1,%al

14、rpushn%r1;压栈……popn%r1;弹栈ld.w%ahr,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。