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
算法。我们使用的是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
,然后重新编译,解决问题。
四、设计体会及收获
本次设计在同组小伙伴的共同努力和老师的悉心指导下顺利完成。通过本次课程设计了解了uC/OS-III
是一个可剥夺型内核(抢占式内核,Preemptive Kernel
),它总是执行当前就绪任务中优先级最高的那个,ucos
的任务的类型有两种:运行至完成型、无限循环型,允许任务停止自身或者停止另外的任务。虽然本次课程设计的题目要求中程序设计并不是重点,但是在运行调试代码的过程中,不仅熟悉了cortex-m4
的使用,还对ucos
的基本任务创建,优先级调度,使用lcd
、led
等功能的代码编写有了初步的了解。我在本次课程设计的过程中查阅了不少关于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
20155227辜彦霖《基于Cortex-M4的UCOSIII的应用》课程设计个人报告相关推荐
- 20165219王彦博《基于Cortex-M4的虚拟机制作与测试》课程设计个人报告
20165219王彦博<基于Cortex-M4的虚拟机制作与测试>课程设计个人报告 一.个人贡献 参与课设题目讨论及完成全过程: 资料收集: 负责环境搭建,代码运行下载: 撰写小组结题报告 ...
- 基于YOLO的密集人脸检测(课程设计)
基于YOLO的密集人脸检测(课程设计) 数据集+代码下载地址:下载地址 实现的功能 添加关键点检测分支,使用wing loss Installation Clone and install 使用src ...
- 课程设计个人报告——基于ARM实验箱的捕鱼游戏的设计与实现
课程设计个人报告--基于ARM实验箱的捕鱼游戏的设计与实现 一.个人贡献 参与课设题目讨论及部分过程 资料收集 负责代码调试 捕鱼游戏相应功能的实现 实验环境 Eclipse软件开发环境: ARM实验 ...
- 课程设计小组报告——基于ARM实验箱的捕鱼游戏的设计与实现
课程设计小组报告--基于ARM实验箱的捕鱼游戏的设计与实现 一.任务简介 1.1 任务内容 捕鱼游戏是一个娱乐性的游戏开发,可以给人们带来娱乐的同时还可以给人感官上的享受,所以很受人们的欢迎.本次游戏 ...
- 2015520吴思其 基于《Arm试验箱的国密算法应用》课程设计个人报告
20155200吴思其 基于<Arm试验箱的国密算法应用>课程设计个人报告 课程设计中承担的任务 完成试验箱测试功能4,5,6以及SM3加密实验的实现 测试四 GPIO0按键中断实验 实验 ...
- 20165329课程设计个人报告——基于ARM实验箱的捕鱼游戏的设计与实现
20165329课程设计个人报告--基于ARM实验箱的捕鱼游戏的设计与实现 一.个人贡献 实验环境的搭建 代码调试 在电脑上成功运行 实现了arm的配置 实现了游戏在arm游戏实验箱上的使用 理解游戏 ...
- 基于Multisim的自动售货的电路课程设计
基于Multisim的自动售货的电路课程设计 文章目录 **基于Multisim的自动售货的电路课程设计** 前言 一.电路的功能和元件清单 1.电路的功能以及设计思路 2.电路所需要用到的元件 二. ...
- 基于matlab的回波,基于matlab回波的产生与消除课程设计
<基于matlab回波的产生与消除课程设计>由会员分享,可在线阅读,更多相关<基于matlab回波的产生与消除课程设计(11页珍藏版)>请在人人文库网上搜索. 1.信号与系统课 ...
- 20155234 昝昕明《基于ARM实验箱的国密算法应用》课程设计个人报告
20155234 昝昕明<基于ARM实验箱的国密算法应用>课程设计个人报告 个人贡献 参与课设题目讨论及完成全过程: 资料收集: SM1算法及和ARM之间通信 负责串口代码调试: 协调完成 ...
最新文章
- 我在MongoDB年终大会上获二等奖文章:由数据迁移至MongoDB导致的数据不一致问题及解决方案...
- win32 去掉窗口边框
- django 的form登录 注册
- 灵感编程:最大公约数算法解析
- php建站静态,php网站如何生成静态
- python语言入门t_Python基础学习
- 让线程按顺序执行8种方法
- HTTP权威指南学习笔记:连接管理
- 如何走出创新者的窘境?走向2049
- 内容创作费时费力?这款AI写作神器超给力!
- 【机械】如何用SOLIDWORKS进行ArtCam雕刻机排版
- 反转链表的实现(三种方法)
- dcpb连接mysql_MySQL Cluster 7.3.7+CentOS7集群配置入门 MySQL双管理节点配置入门
- matlab 矩阵累乘,matlab,SAS iml 矩阵运算
- 全国计算机等级考试三级数据库技术(十)
- python默认数据转换_Python之数据转换
- 小程序开发 - 基本组件
- Gym101635C Macarons
- Springboot毕设项目大学生助学贷款申请平台hsy91(java+VUE+Mybatis+Maven+Mysql)
- Macbook Pro 外接显卡实现Tensorflow GPU运行之MacOS系统重装
热门文章
- SQL server 数据库关系图及数据完整性设计
- vue---uedito---135
- 深度优先搜索-Python
- 配置流复制应用(10g+from linux to aix)
- HDU 1042 N!(大数阶乘)
- 更易上手的C语言入门级芝士 (3) 常见关键字+define+指针+结构体(超详细)
- ElasticSearch中Cat接口详解
- 牛客网Chino with Expectation【思维+位运算】
- 古月 ROS移动机器人实战5.3ROS导航框架介绍笔记
- 视频监控P2P解决方案