随笔分类 - 嵌入式
摘要:在我的arm动态加载实验中需要解决一个模块调用系统函数的问题,可以使用以下的一个方法。将系统函数固定在某一段地址空间,然后导出这一块的符号表到符号文件中,要记载的模块link的时候使用这个符号表文件,即可以实现模块调用系统函数的问题。 在stm32上做了以下实验,kernel导出一个系统函数v...
阅读全文
摘要:按照C编译器编译的结果,一般会产生RO段,RW段,ZI段。RO是程序中的指令和常量,RW是程序中的已初始化全局变量,ZI是程序中的未初始化或初始化为零的全局变量。那么如下的代码1 int aaa;2 int bbb;3 4 int main()5 {6 aaa = 7;7 bbb = 8;8 return 0;9 }应该产生的是八个字节的ZI段,但很奇怪,--bss_threshold=0Program Size: Code=464 RO-data=268 RW-data=8 ZI-data=608 如上所示,其中的Code段,RO-data段和ZI-data段是启动...
阅读全文
摘要:最近比较一下KEIL和IAR两个编译器产生的代码,基于Cortex-M3处理器的,然后发现了一几个奇怪的地方。很简单的一个C的for循环 1 void fun_for_add_65535(void) 2 { 3 int i; 4 for (i=0; i<65535; i++) 5 ; 6 } 7 8 void fun_for_add_65536(void) 9 {10 int i;11 for (i=0; i<65536; i++)12 ;13 }按道理这两个函数除了for的终止值不同之外,产生的汇编代码应该不会有什么差异。但是...
阅读全文
浙公网安备 33010602011771号