|
编译【不带中断】的【裸机】程序成功,参考代码是“光盘4:\第2季-裸奔吧-ARM\专题10-C语言环境初始化\第3课-一跃进入C大门"
_start:
b reset
ldr pc, _undifined_instruction
ldr pc, _software_interrupt
ldr pc, _prefetch_abort
ldr pc, _data_abort
ldr pc, _not_used
ldr pc, _irq
ldr pc, _fiq
_irq: .word irq
irq:
nop #现在这里只是个空语句,我该怎么添加才能实现跳转呢
reset:
bl set_svc
bl disable_watchdog
bl disable_interrupt
bl disable_mmu
bl init_clock
bl init_sdram
bl copy_to_ram
bl init_stack
bl clean_bss
# ldr pc, =gboot_main
bl main
b reset
本人对汇编不熟悉,网上查阅资料ARM中断下面两篇文章是有些似懂非懂。
第1个略是用C语言实现跳转,但它视乎没有做现场保护吧???用起来感觉不安全。
C语言实现中断跳转
http://blog.csdn.net/zhaocj/article/details/5309938
在启动代码里编写,以前用集成开发环境STM32、凌阳61、Keil 51都是在启动代码里编写中断向量表跳转,所以我也想将上面的启动代码稍加修改满足我的要求
ARM中断2
http://www.cnblogs.com/hicjiajia/archive/2012/05/01/2477793.html
注明:我的编译器是用arm-none-linux-gnueabi-gcc,不是ADS开发环境,ADS的汇编代码用arm-none-linux-gnueabi-gcc不符合语法规则
|
|