- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
对于44b0公板,在用AXD调试代码时,将运行空间设置为.doc
对于44b0公板,在用AXD调试代码时,将运行空间设置为SDRAM(0x0c000000),运行代码前需要对SDRAM 进行初始化
可以用AXD的COMMAND LINE功能(ALT+L),也可以用H-JTAG的INIT SCRIPT功能(注意要在AUTO INIT 上打勾),总之对相应的
寄存器赋值就可以了 如下表所示
fillmem 0x01d80000 0x01d80000 0x58061 32
fillmem 0x01c80000 0x01c80000 032
fillmem 0x01c80004 0x01c80004 0X600 32
fillmem 0x01c80008 0x01c80008 0X7FFC 32
fillmem 0x01c8001c 0x01c8001c 0X18000 32
fillmem 0x01c80020 0x01c80020 0X18000 32
fillmem 0x01c80024 0x01c80024 0x820591 32
fillmem 0x01c80028 0x01c80028 0x16 32
fillmem 0x01c8002c 0x01c8002c 0x20 32
fillmem 0x01c80030 0x01c80030 0x20 32
fillmem 0X01D30000 0X01D30000 0X0 32
fillmem 0x01c00000 0x01c00000 0x0 32
启动代码中较难理解的有MACRO
$HandlerLabel HANDLER $HandleLabel
这个宏 $HandlerLabel 是该宏的地址标号,ldr pc,=HandlerADC 一句即是跳转到HandlerADC HANDLER HandleADC 去执行 ,然后将HandlerADC HANDLER HandleADC 展开,$HandleLabel 是该宏的参数,
同样是一个地址标号,这个地址标号中的内容是中断服务程序的地址标号,即该文件最后的那个表所示,将HandleADC # 4中的4换成中断服务程序的地址标号即可。$HandlerLabel HANDLER $HandleLabel 的作用是跳转到$HandleLabel 中所存的中断服务程序的地址标号处执行。
44B0的初始化程序与LPC2200的比较而言较复杂,原因是LPC2200不支持SDRAM,所以不需要对存储控制器进行初始化,而且LPC2200的中断模式和44B0的也不相同,中断初始化较简单。
;*******************************************************
; * NAME : 44BINIT.S *
; * Version : 10.JAn.2003 *
; * Description: *
; * C start up codes *
; * Configure memory, Initialize ISR ,stacks *
; * Initialize C-variables *
; * Fill zeros into zero-initialized C-variables *
; *******************************************************
GET option.s ;相当于c语言中的#include option.s
GET memcfg.s
;Interrupt Control
;声明一些符号常量,这些符号常量和地址相应寄存器的地址对应
INTPND EQU 0x01e00004 ;指示中断请求状态寄存器 每一位代变一种中断请求具体表示哪一种中断请参考44b0 spec
INTMOD EQU 0x01e00008 ;中断模式寄存器 有两种中断模式对应位为1代表fip mode 0代表riq mode
INTMSK EQU 0x01e0000c ;确定哪个中断源被屏蔽 屏蔽的中断源将不被服务
I_ISPR EQU 0x01e00020 ;中断服务挂起寄存器
I_CMST EQU 0x01e0001c ;当前主寄存器irq优先级
;Watchdog timer
WTCON EQU 0x01d30000 ;看门狗定时器控制寄存器
;Clock Controller
PLLCON EQU 0x01d80000 ;pll控制寄存器
CLKCON EQU 0x01d80004 ;时钟控制寄存器
LOCKTIME EQU 0x01d8000c ;锁定时间计数值寄存器
;Memory Controller
REFRESH EQU 0x0
文档评论(0)