×
单片机 > 单片机程序设计 > 详情

Keil IAR - Cortex M3 调试问题及解决方法(2)

发布时间:2020-06-18 发布时间:
|

最近又用stm32 和  lm3s 做点协议栈等,把一些调试心得写出来吧,本文可是原创,转载请注明出处。


芯片是stm32f103 stm32f107 lm3s9790 lm3s9b90, 开发环境是 keil mdk 4.22  iar arm 6.30.


1 stm32 官方库的更新 并不向下完全兼容,其中有他们家的新的芯片不断推出有关。


使用库,本人想做了个模板, 可以使用keil 和iar 使用,像官方库一样,只是它文件管理不方便。


项目的配置可以抄袭官方的配置,就行了。


注意: c 语言代码文件可以完全移植,但是汇编文件如 启动文件却不同,因为编译器不同,而且,官方库升级后,启动文件和底层文件发生了很大的变化,


要注意的是flash 的容量: low density, low density value line, medium density, medium density value line,  Connectivity line, high density, High Density Value Line,  xl density, 分别对应STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3DeviceSupportSTSTM32F10xstartuparm启动文件。





使用的时候,


启动文件要加载正确,






project  的 options 里的C/C++ 编译选项要 有 STM32F10X_CL (对于stm32f107)等,


(错误的配置,也会工作,但不准确)


2 stm 调用prinf 的用法   usart 


官方库里有print 的用法,就是把stdio.h 里的fputc 函数用usart 的函数写一遍。




3 下载文件大小的问题


*.map mdk 和ewarm 都有这个文件,里面的含义不赘述了


 4 通用的调试经验


(1)build


这一步是生成*.o 文件


观察build output 窗口, 看是否通过build 不通过就是文件管理如*.h *c 文件的路径等,函数,变量,定义没设定好


(2)link


build 完成后是link, 不通过的话看具体.o 文件,错误就在里面,如a.c 调用的一个函数只有声明,没有实体,但是会通过build


(3)simulation


可以用IDE里的软件仿真,测试,用好里面的寄存器,watch, serial windows, analogical windows,的功能ide 提供的工具。


优秀的代码要模仿,之后学为己用; 用好IDE,形成自己的代码。



关键字:Keil  IAR  Cortex  M3  调试问题 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
8051单片机的函数发生器的设计