
ARM9
InWho
lifelong learner
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
解决Ubuntu编译error:fatal error: sys/cdefs.h: No such file or directory
64位的Ubuntu如果执行X86平台32位编译,gcc -m32 -o x x.c会报错:fatal error: sys/cdefs.h: No such file or directory解决办法:可以执行sudo apt-get install libc6-dev-i386语句联网安装32位库文件。64位下直接编译会出现指针占8个字节的情况,不利于直接操作堆栈地址,如下图:...原创 2018-10-27 15:30:51 · 11478 阅读 · 0 评论 -
ARM920T_内核 und与svc异常模式分析
一、undefined异常模式0. 当执行未定义指令时进入und模式,进入过程:CPU跳至0x4地址执行代码,自动保存CPSR寄存器值至SPSR寄存器,我们要做的就是在0x4处跳转到另一段代码,用这段代码完成现场保护,以及异常处理,最后退出异常。此处使用NOR启动,并且在0x0处执行reset时已经将NOR中的所有代码重定位至SDRAM中,所以跳转时不能用相对跳转(b和bl),必须使用绝对...原创 2018-11-04 17:25:45 · 1160 阅读 · 0 评论 -
S3C2440代码重定位分析
一、NAND启动此处NAND大小为256M,当从NAND启动时,0地址为片内SRAM,NOR不可见。由于NAND不支持XIP,所以在启动时,硬件自动复制NAND的前4K内容到片内4K的SRAM,若bin文件小于4K,则可以直接在SRAM上运行,若bin文件大于4K,片内SRAM已经满足不了需求,我们需要做的是利用这前4K的代码,完成将所有代码重定位至SDRAM(位于BANK6地址0X30000...原创 2018-11-10 12:26:40 · 435 阅读 · 2 评论 -
ARM920T_内核MMU与cache应用分析
一、cache分类及应用场合cache是内存和CPU之间的高速缓冲存储器,其分为icache(指令缓存)和dcache(数据缓存)。如果开启了cache,当CPU运行时会将正在运行的指令地址附近的指令或者数据调入cache,这样当运行下一条指令或用到下一条数据时直接从cache中查找,如果查找不到再访问内存,以此加快CPU执行速度。icache可以直接开启,而dcache需要开启MMU之后才能...原创 2018-11-25 10:32:28 · 1286 阅读 · 0 评论 -
C语言函数指针数组在ARM中断中的应用
一、函数指针的声明与初始化...int max_fun(int a, int b);/*函数指针的声明,声明了两个形参都为int类型,返回值为int类型的函数指针*/int (*fp)(int, int);/*指针初始化*/fp = max_fun; //fp = &max_fun 也正确/*函数指针初始化后的调用*/fp(a,b); //(*fp...原创 2018-11-06 20:41:18 · 719 阅读 · 1 评论