1、IAR中需要重新配置以实现打印的功能,步骤如下: 1、项目Options->C/C++ Complier->Preprocessor->Defined symbols添加:_DLIB_FILE_DESCRIPTOR(用于支持FILE类型的宏定义) 2、项目Options->General Options->Library Configuration->Library中修改Normal为FULL,获取完整C库支持。
2、启动文件和分散加载
【1】分散加载修改注意 1、 中断向量表(Vector Table)地址 2、 存储地址分配 3、 堆(Heap Size)和栈(Stack Size) 4、 define memory mem with size = 【2】启动文件修改注意 1、EXTERN __iar_program_start ; // IAR程序暴露的入口地址名称 2、EXTERN SystemInit; // 系统初始化时调用的地址,此次的启动文件直接设置了地址。 3、PUBLIC __vector_table ; // 中断向量表地址 4、;;Defaultinterrupt handlers. ; // 定义默认的中断函数,这里只是弱定义,可以被用户自己定义的中断向量函数覆盖。
3、指定函数位置
IAR在指定函数位置时,通过在要指定的函数后加__attribute__((section(“.testsection”)));(此处同keil) 同时在.icf中加入以下内容,定义此函数在哪个地址区间内: define region irom_testData_region =mem:[from 0x5000 to 0x5094]; place in irom_testData_region {readonlysection .testsection }; keep {section .testsection}; 注意:keep不能少,否则编译优化有时会优化掉。
4、如要看输出编译后的代码/数据占用的内存大小。需在tool->option->Messages下的show build message中选择all。
|