微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ARM中异常模式的跳转

ARM中异常模式的跳转

时间:11-09 来源:互联网 点击:

View Code

在程序中,

volitale_init()函数的作用就是获得处理异常函数的地址,存到变量source中并返回.

voctor_start汇编函数主要就是实现了从SVR模式跳入到UND模式,在UND模式中打印了一句话

hello undefined并且跳出来在代码中,跳转模式主要有三步,而跳出模式也有两步,代码中没给出,就是/1:将CPSR保存在SPSR中2:将PC保存到新模式下的lr中;。

memcopy()函数的作用是:将source_addr里的数据拷贝到0x64地址,一共拷贝len个地址

实际上就是将处理异常函数的地址存到可以读写的地址。下次到0x04地址找处理函数的时候久直接调用到了处理异常函数。

接下来是enable_mmu()函数,用法与上一个一样。但是,此时在制表函数init_ttb()中。新把

从00-10的地址映射到了60--70 地址

对于汇编部分,对于不太了解的没关系,主要了解实现功能是什么。掌握主要流程, 到最后再作

统一总结。

Makefile:

1 2 all:3     arm-none-linux-gnueabi-gcc -c mmu.c -o mmu.o4     arm-none-linux-gnueabi-ld -Ttext=0x41 mmu.o  -o mmu 5     arm-none-linux-gnueabi-objcopy  -Ielf32-littlearm -Obinary  mmu mmu.bin6 7 clean:8     rm -rf mmu mmu.o  mmu.bin9 10 11 

View Code

在PC终端make

在minicom板子上dnw到41地址go41

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top