20155227辜彦霖《基于Cortex-M4的UCOSIII的应用》课程设计个人报告

20155227辜彦霖《基于Cortex-M4的UCOSIII的应用》课程设计个人报告

一、个人贡献

  • 参与课设题目讨论及完成全过程;
  • 资料收集;
  • 负责主要代码调试;
  • 撰写小组结题报告。

二、设计中遇到的问题及解决方法

① 移植之后编译出现错误,没能出现正确现象;

  • 解决方法是修改几个重要文件时出错,具体如图:

②老师给的示例代码是基于STM32F429的,没法在STM32F407上出现结果,需要修改

  • 修改心路历程大致如下:先找到在STM32F407能够成功运用LCD上出现现象的工程,对比两个工程下跟LCD有关的文件(头文件和c文件),首先理解main.c,发现main.c是不用修改的,然后找到老师所给代码中找到注释中标有STMF429字样的文件,对比两个工程中相同文件的内容,若是有串口之类定义的不同,则将不同的部分按照成功运用LCD的工程中的文件内容进行修改;有缺少的文件就从成功的工程里复制;每进行一步就运行一下,然后按照提示的错误来进行修改。这真的是很考验耐心和细心的一项工作,因为同时需要打开很多文件,代码量也很多,非常容易看花眼,最好每修改一步就进行一下备份。

③ 最后运行UCOSIII互斥任务量代码时下载成功之后没能出现正确现象;

  • 解决办法是:咨询过老师之后,将实验代码与之前有现象的程序代码作比较,进行修改,但实验箱仍然没有出现本应出现的现象。再次询问老师,发现是代码中互斥信号量有问题,最后在老师指导下,出现实验现象。

三、调试过程中遇到的主要问题及解决方法

① 在运行老师给的代码时keil显示需要安装STM32F4XXDFP;

  • 解决办法是安装STM32F4XXDFP

② 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算法。我们使用的是STM32F407ZGT6FLASH容量为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,然后重新编译,解决问题。

四、设计体会及收获

本次设计在同组小伙伴的共同努力和老师的悉心指导下顺利完成。通过本次课程设计了解了uC/OS-III是一个可剥夺型内核(抢占式内核,Preemptive Kernel),它总是执行当前就绪任务中优先级最高的那个,ucos的任务的类型有两种:运行至完成型、无限循环型,允许任务停止自身或者停止另外的任务。虽然本次课程设计的题目要求中程序设计并不是重点,但是在运行调试代码的过程中,不仅熟悉了cortex-m4的使用,还对ucos的基本任务创建,优先级调度,使用lcdled等功能的代码编写有了初步的了解。我在本次课程设计的过程中查阅了不少关于ucos的资料,体会到了ucos的魅力和功能的强大,但我对ucos的了解才仅仅处于入门阶段,希望以后有机会能深入学习!

五、参考资料(图书、网址…)

网址

https://blog.csdn.net/zq1035874027/article/details/54709563

https://blog.csdn.net/hello__xs/article/details/70666285

https://download.csdn.net/download/lqxk000/7163935

https://blog.csdn.net/avenger0422/article/details/50708969

https://blog.csdn.net/nemol1990/article/details/45461053

https://www.amobbs.com/thread-5628435-1-1.html

图书

  • The Definitive Guide to Arm Cortex-M3 and Cortex-M4 Processors_c;
  • Cortex-M3权威指南CnR2(电子书);
  • 时间触发嵌入式系统设计模式(中文版)

原文地址:https://www.cnblogs.com/guyanlin/p/9112933.html

时间: 2024-10-09 07:25:56

20155227辜彦霖《基于Cortex-M4的UCOSIII的应用》课程设计个人报告的相关文章

20155114许星霖《远程安防监控系统》课程设计个人报告

一.对任务的理解 1.项目概述 本项目需要实现以嵌入式Web服务器为核心的视频监控系统. 摄像头采集的到的图像经过压缩后,传到内置的web服务器中.用户只需要通过浏览器就可以观看摄像头采集到的数据. 2.系统架构 该项目基本可以看作B/S架构,由有三部分组成: (1)核心服务端:其实是客户端(严格意义上说,PC上的浏览器才是客户端)一台普通的PC机,需要与前端数据中心在同一局域网中,然后通过浏览器对系统进行监控和设置. (2)前端数据中心:FS4412开发平台,可以连接摄像头.GPRS.zigB

课程设计小组报告——基于ARM实验箱的捕鱼游戏的设计与实现

课程设计小组报告--基于ARM实验箱的捕鱼游戏的设计与实现 一.任务简介 1.1 任务内容 捕鱼游戏这个项目是一个娱乐性的游戏开发,该游戏可以给人们带来娱乐的同时还可以给人感官上的享受,所以很受人们的欢迎.本次游戏的程序设计包含,java swing组件的合理运用,还有图像的变动达到一个动态的动画效果,线程的运用,游戏的异常处理,等方面的知识.培养学生运用所学知识的基础理论.基本知识和基本技能,分析解决实际问题能力的一个重要环节.它与课堂教学环节彼此配合,相辅相成,在某种程度上是课堂学习的继续.

课程设计个人报告——基于ARM实验箱的捕鱼游戏的设计与实现

课程设计个人报告--基于ARM实验箱的捕鱼游戏的设计与实现 个人贡献 实验环境的搭建 代码调试 在电脑上成功运行 在ARM实验箱上成功实现 给程序增加功能(没成功) 研究程序代码撰写小组报告 一.实验环境 Eclipse软件开发环境: ARM实验箱(HonyaS5PC100): windows操作系统. 二.实践内容 Windows环境下ARM集成开发环境的搭建与使用: 安装软件到模拟器: 连接ARM实验箱与PC机: 将工程代码在ARM实验箱上实现: 给程序增加新的功能. 三.实践步骤 3.1

课程设计个人报告——基于ARM实验箱的Android交友软件的设计与实现

个人贡献 熟悉试验箱各元件功能以及连接组装试验箱 一.实验内容 研究实验箱串口.USB线的调通连接 二.实践步骤 1.打开实验箱,首先了解各元件功能 这个是LTE模块,也叫4G模块,具体的作用是硬件将射频.基带集成在一块PCB小板上,完成无线接收.发射.基带信号处理功能.软件支持语音拨号.短信收发.拨号联网等功能.射频部分包括: 射频收发机 功率放大器 双工器 基带部分包括: 电源管理单元PMU 数字信号处理单元(内置在BBIC中) 存储器,包含 NAND FLASH 和 DDR SDRAM 说

20165234 《基于Python的GMSSL实现》课程设计个人报告

课程设计中承担的任务 实现SM4算法 完成SM4算法的代码 from gmssl.sm4 import CryptSM4, SM4_ENCRYPT, SM4_DECRYPT key = b'3l5butlj26hvv313' value = b'111' # bytes类型 iv = b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' # bytes类型 crypt_sm4 = CryptSM4() crypt_

《基于Cortex-M4的ucOS-III的应用》课程设计 结题报告

<基于Cortex-M4的ucOS-III的应用>课程设计 结题报告 小组成员姓名:20155211 解雪莹 20155217 杨笛 20155227 辜彦霖 指导教师:娄嘉鹏 一.设计方案及可行性分析 题目要求:ucOS-III的移植:设计三个小实验:单一任务.多任务.并发任务. 1.设计方案 首先运行老师给的范例代码熟悉开发软件和开发板的使用:收集资料简单了解UCOSIII的基本概念,然后进行UCOSIII移植(移植到STM32f407开发板):移植成功后开始进行UCOSIII实例编程(实

STM32F4xx -- Cortex M4

STM32F4xx official page: http://www.st.com/internet/mcu/subclass/1521.jspIntroductionFPU - Floating point benefits DSP - benefitsPricePortfolioTutorial Application Notes, Manuals, etc Software ToolsEvaluation Board STM32446E-EVAL - Evaluation board w

51单片机课程设计:基于DS18B20的温度报警器

51单片机课程设计:基于DS18B20的温度报警器 本程序用于读取DS18B20温度,同时具备报警功能,工程分为3个文件,main.c.temp.c.temp.h,经本人修改部分代码,适用于吉林农业大学51开发板,其他朋友亦可移植到其他型号开发板.工程文件在文章最下方. 1.main.c文件 /*********************************说明****************************************** 本程序用于读取温度检测模块DS18B20数值,并

51单片机课程设计:基于MQ-3的酒精浓度报警器

51单片机课程设计:基于MQ-3的酒精浓度报警器 本程序用于将MQ-3上读取到的模拟信号转换为对应的数字信号,经51单片机处理后,在数码管显示,同时具有报警功能,当检测值高于预警值,蜂鸣器报警.除了可以检测MQ-3酒精浓度模块的AD值,也适用于MQ系列的其他模块,原理基本都相同,都是将读取到的AD值转换为数字信号,程序修改后,如果接线方法正确,可以在吉林农业大学51开发板上完美运行,相关工程文件见最下方附件. /*************************************说明***