NXP

飞思卡尔智能车iar工程常见问题

2019-07-12 12:39发布

1.link配置文件错误引起的报错 Error[Li005]: no definition for "__VECTOR_TABLE" [referenced from F:资料 资料4.模块类摄像头类OV7620摄像头资料2015年12月19日2.龙邱OV7620采集历程总汇 
Error[Li005]: no definition for "__VECTOR_RAM" [referenced from F:资料 资料4.模块类摄像头类OV7620摄像头资料2015年12月19日2.龙邱OV7620采集历程总汇 
Error[Li005]: no definition for "__BOOT_STACK_ADDRESS" [referenced from F:资料 资料4.模块类摄像头类OV7620摄像头资料2015年12月19日2.龙邱OV7620采集历程总汇 
Error[Lp014]: cannot fit "Block .bss" (min size 0x12c08, alignment 0x4) into any of the ranges <[0x1fff0000-0x1fffffff], [0x20000000-0x2000ffff]> 
Error while running Linker 
 此类错误一般是 由于link配置文件使用绝对路径,当工程位置移动后,绝对路径就 找不到工程的 .icf文件了 解决方法:1.在工程中找到.icf 文件,直接选择该文件的路径 即可,但是 这样会导致移动工程位置后,还要再次 选择路径, 比较麻烦。      2.将工程文件中的.icf 文件复制到iar安装文件夹Embedded Workbench 8.0armconfiglinkerNXP 里面,然后.icf路径选择NXP 文件夹里的icf文件,这样工程在自己电脑里随意移动都不用修改icf文件路径,但是复制给别人的时候,别人的NXP文件夹里没有该文件,还会报错。 3.使用相对路径,一般.icf文件都在工程的配置文件夹中,例如我的工程名字叫 程序, iar 工程文件.ewp 就放在程序文件夹下,icf文件放在  程序srcProject_SettingLinker_Files 文件夹中,使用相对路径 $PROJ_DIR$ 意思是存放.ewp 文件的文件夹,所以icf路径就是  $PROJ_DIR$srcProject_SettingLinker_FilesPflash.icf(icf文件名可能不一样,按自己自行修改名字) 2. 程序下载后,复位或者掉电,程序 丢失问题。     这个问题也是link配置文件icf的问题, icf一般会有两个, 一个是下载到flash,一个是下载到ram中,工程一般都是配置好的,  这两个选项使用的是一套代码,只是工程配置不同,一般Debug的link中选的icf文件是RAM,下载到ram中,掉电会丢失程序,下载到ram中时,下载速度快,适合仿真调试的时候使用。Release的link配置的icf文件一般是flash,下载到flash中,掉电程序不会丢失。可以自行 修改link中的icf文件,选择要下载的位置。 修改icf文件后有可能 会报错看看这里 是不是勾选的有问题 1). 已选择下载程序到 Flash,  可选:Verify download     ( Use flash loader(s) 必须开启!); 2). 已选择下载程序到 RAM 或使用模拟器:无需选择; 3). 如果程序已下载到 Flash:开启 Suppress download; 3. 选择你自己的下载器 这里用DAPlink为例  选择下载器类型 选择下载器模式 4.屏蔽警告  有一些小伙伴有强迫症,一个警告 也不想看到,其实这是一种很好的习惯,iar提供了build窗口警告信息屏蔽功能,屏蔽一些 自己不想看到的警告信息(不推荐使用),下图位置 填入警告号即可。 5.用户关键字 有些时候,一些 关键字高亮,代码 看起来会非常醒目,怎么 添加用户关键字?首先创建一个txt文件, 里面写上自己的关键字例如: 设置使用用户自定义 关键字 设置用户关键字颜 {MOD}字体