共2条
1/1 1 跳转至页
44b0 真切请教44b0中断问题
问
小弟初学ARM,还望各位大侠多多指点。
实验室有一块金一倍的44b0开发板,我用它编了一个测试中断的程序。
板子上有4个按键是接在EINT4567上的。我在中断函数里面通过判断按键来把不同的LED点亮。中断设置为非矢量模式。
在线调试通过后,我将程序用板子带的ARMBoot通过超级终端将程序下载到sdram中0x0c008000地址,并成功执行。
我困惑的是:资料上说,44b0不支持地址重映射,那么EINT中断(irq)会导致PC回到0x00000018,然后再跳转到具体中断服务程序。而存放中断服务程序的地址是再init.s中设置的sdram最高处(_ISR_STARTADDRESS EQU 0xc7fff00 )。
那为什么我把程序下载到0x0c008000处,中断过程也能正确的实现?
小弟想了好几天了也想不通,还请大侠不吝赐教啊!
答 1: 建议:将您板子的ARMBoot擦掉,再在线调试,看还能否通过 答 2: 多谢斑竹!斑竹是认为在线调试时ARMboot也起了作用啊
我原来以为在线调试时是ADW或AXD完成了从0x00000018到0x0c008018的跳转呢 答 3: re
是ARMboot在起作用的,我的板子和你那几乎一模一样,不过我买的是革新公司的。
ARMboot还占用了timer5定时器,不信你试一试,在你的程序中,如果将timer5打开,程序很容易跑飞 答 4: 不会是ARMboot在起作用吧我的板子是自己做的,flash里没有程序。但是做和reiskie一样的试验,中断还是正确的执行了的啊。 答 5: 应该是初始化程序中已经做了跳转指令类 答 6: 帮你顶一下 答 7: 你的运气真好啊我的FLASH是空的,中断就执行不起来.只要一开中断,程序保证跑飞
我想S3C44B0X的异常向量表只能放在0地址开始的地方吧.非向量模式时也要通过IRQ或FIQ这两个向量之一进入中断服务程序,进入之后才和_ISR_STARTADDRESS值有关,进入非向量中断处理过程.不知我的理解是否正确.
各位高人给指点一下
实验室有一块金一倍的44b0开发板,我用它编了一个测试中断的程序。
板子上有4个按键是接在EINT4567上的。我在中断函数里面通过判断按键来把不同的LED点亮。中断设置为非矢量模式。
在线调试通过后,我将程序用板子带的ARMBoot通过超级终端将程序下载到sdram中0x0c008000地址,并成功执行。
我困惑的是:资料上说,44b0不支持地址重映射,那么EINT中断(irq)会导致PC回到0x00000018,然后再跳转到具体中断服务程序。而存放中断服务程序的地址是再init.s中设置的sdram最高处(_ISR_STARTADDRESS EQU 0xc7fff00 )。
那为什么我把程序下载到0x0c008000处,中断过程也能正确的实现?
小弟想了好几天了也想不通,还请大侠不吝赐教啊!
答 1: 建议:将您板子的ARMBoot擦掉,再在线调试,看还能否通过 答 2: 多谢斑竹!斑竹是认为在线调试时ARMboot也起了作用啊
我原来以为在线调试时是ADW或AXD完成了从0x00000018到0x0c008018的跳转呢 答 3: re
是ARMboot在起作用的,我的板子和你那几乎一模一样,不过我买的是革新公司的。
ARMboot还占用了timer5定时器,不信你试一试,在你的程序中,如果将timer5打开,程序很容易跑飞 答 4: 不会是ARMboot在起作用吧我的板子是自己做的,flash里没有程序。但是做和reiskie一样的试验,中断还是正确的执行了的啊。 答 5: 应该是初始化程序中已经做了跳转指令类 答 6: 帮你顶一下 答 7: 你的运气真好啊我的FLASH是空的,中断就执行不起来.只要一开中断,程序保证跑飞
我想S3C44B0X的异常向量表只能放在0地址开始的地方吧.非向量模式时也要通过IRQ或FIQ这两个向量之一进入中断服务程序,进入之后才和_ISR_STARTADDRESS值有关,进入非向量中断处理过程.不知我的理解是否正确.
各位高人给指点一下
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |