博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

20155217 课设个人结题报告

Posted on 2018-05-30 20:14  20155217杨笛  阅读(410)  评论(0编辑  收藏  举报

20155217 课设个人结题报告

一、个人贡献(20155217 杨笛)

  1. 参与课设题目讨论及完成全过程;
  2. 辅助调试代码;
  3. 资料收集;
  4. 撰写实验指导;
  5. 撰写小组结题报告。

二、设计及调试过程中遇到的问题及解决办法

  • STM32F4XXDFP安装之后出现如下错误:

出现错误的原因是版本不匹配,这个安装包安装到MDK5.15上是没问题的,5.11上会出现这个问题。现在MDK的策略是低版本基本不让更新安装包,让用户去上级到新的MDK版本上。

解决办法是下载MDK5.15,不再出现这个错误。

  • 编译之后出现如下错误:..\OBJ\HZ.axf: error: L6050U: The code size of this image (47788 bytes) exceeds the maximum allowed for this version of the linker.

出现错误的原因是:没有完全破解。

解决办法是按照D:\实验箱资料20161008\实验箱资料20161008-forsale-exp\Part4-Cortex M3\1.实验平台搭建\MDK5.11a安装手册中的破解方法破解MDK5.15。

  • 下载到开发板时出现如下错误:

解决办法是:打开Options for Target选项卡,在Debug栏选择仿真工具为J-LINK/J-TRACE Cortex,如图所示:

上图中我们还勾选了Run to main(),该选项选中后,只要点击仿真就会直接运行到main函数,如果没选择这个选项,则会先执行startup_stm32f40_41xxx.s文件的Reset_Handler,再跳到main函数。

然后我们点击Settings,设置J-LINK的一些参数,如图所示:

这里我们使用J-LINK V8的SW模式调试,因为我们JTAG需要占用比SW模式多很多的IO口,而在实验箱开发板上这些IO口可能被其他外设用到,可能造成部分外设无法使用。所以,我们建议大家在调试的时候,一定要选择SW模式。Max Clock,可以点击Auto Clk来自动设置,图中我们设置SWD的调试速度为10MHz或者5MHz,这里,如果你的USB数据线比较差,那么可能会出问题,此时,你可以通过降低这里的速率来试试。注意:若是JLINK连接成功的话,SW Device处会显示设备信息。

单击OK,完成此部分设置,接下来我们还需要在Utilities选项卡里面设置下载时的目标编程器,如图所示:

我们直接勾选Use Debug Driver,即和调试一样,选择JLINK来给目标器件的FLASH编程,然后点击Settings,设置如图所示:

这里MDK5会根据我们新建工程时选择的目标器件,自动设置flash算法。我们使用的是STM32F407ZGT6,FLASH容量为1M字节,所以Programming Algorithm里面默认会有1M型号的STM32F4xx FLASH算法。特别提醒:这里的1M flash算法,不仅仅针对1M容量的STM32F4,对于小于1M FLASH的型号,也是采用这个flash算法的。最后,选中Reset and Run选项,以实现在编程后自动运行,其他默认设置即可。设置完成之后,如图所示。

在设置完之后,点击OK,然后再点击OK,回到IDE界面,编译一下工程。接下来我们就可以通过JLINK下载代码和调试代码。

  • 安装keil MDK5.15之后再运行以前老版本的工程会出现如下错误:.\Core\core_cm4.h(169): error:  #5: cannot open source input file "core_cmInstr.h": No such file or directory 。

解决方法:手动添加path:MDK安装目录\ARM\Pack\ARM\CMSIS\4.1.1\CMSIS\Include,然后重新编译,解决问题。

三、设计体会及收获

本次实验首先需要移植成功到具体的CPU上,网上有很多移植方法,系统代码是开源的,具体主要就是修改一个汇编中断配置文件以及设置时钟和中断,然后拷贝系统源码。移植过程中当然出了很多错,但和小组成员通过Google以及反复尝试得到解决。移植好后就是自定义任务以及对应的优先级,注册到系统,系统初始化之后会接管任务调度,我们只需要在任务运行的时候做具体的逻辑。

由于老师提供的代码里用到的实验箱和本次实验提供的不匹配,因此之后的工作就是与以往成功的代码比较,进行反复的修改。先后经历了uC/OS-II需要转化成uC/OS-III、LCD相关代码无法显示等问题后,在娄老师的帮助指导下,实验得以最终完成。

通过实验,学习到了uC/OS-III相关的知识,这种通过边移植边学习得到的效果远比只啃概念内容要好得多,做中学的优势就体现出来了。而且,即使在做实验的过程中遇到很多困难,但通过向老师寻求帮助、和小组同学一起查阅资料、修改代码,问题一一得到了解决。能体会到实验成功那一刻的喜悦大概就是我本次实验最好的回报吧!

四、参考资料

  1. https://blog.csdn.net/zq1035874027/article/details/54709563
  2. https://blog.csdn.net/hello__xs/article/details/70666285
  3. https://download.csdn.net/download/lqxk000/7163935
  4. https://blog.csdn.net/avenger0422/article/details/50708969
  5. https://blog.csdn.net/nemol1990/article/details/45461053
  6. https://www.amobbs.com/thread-5628435-1-1.html
  7. 《The Definitive Guide to Arm Cortex-M3 and Cortex-M4 Processors_c》
  8. 《Cortex-M3权威指南CnR2(电子书)》
  9. 《时间触发嵌入式系统设计模式(中文版)》