(学习日记)2024.02.29:UCOSIII第二节

写在前面:
由于时间的不足与学习的碎片化,写博客变得有些奢侈。
但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。
既然如此
不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录,记录笔者认为最通俗、最有帮助的资料,并尽量总结几句话指明本质,以便于日后搜索起来更加容易。


标题的结构如下:“类型”:“知识点”——“简短的解释”
部分内容由于保密协议无法上传。


点击此处进入学习日记的总目录

2024.02.29

  • 四、UCOSIII:新建工程
    • 1、创建文件夹
    • 2、新建工程
  • 五、UCOSIII:调试配置
    • 1、设置软件仿真
    • 2、修改时钟大小
    • 3、添加头文件路径
  • 六、UCOSIII:调试模式中示波器的使用
    • 1、 在app.c中编写main函数
    • 2、调试模式
    • 3、使用示波器
    • 4、常见错误
      • 1. Build时报错 Error: L6218E
      • 2. keil5软件仿真没有实时波形
      • 3. Build时报错 error 65
      • 4. Peripherals显示空白
      • 5. 调试模式时,程序前没有灰块

四、UCOSIII:新建工程

1、创建文件夹

文件夹名称子文件夹孙文件夹文件夹作用
Doc··用于存放对整个工程的说明文件,如readme.txt。通常情况下,我们都要对整个工程实现的功能、如何编译、如何使用等做一个简要的说明
Project··用于存放新建的工程文件
UseruC/OS-IIISource用于存放μC/OS-III源码,其中的代码是纯软件相关的,与硬件无关
UseruC/OS-IIIPorts用于存放接口文件,即μC/OS-III与CPU连接的文件,也就是我们通常所说的移植文件。要想μC/OS-III在单片机上运行μC/OS-III,这些移植文件必不可少
UseruC-CPU·用于存放μC/OS-III根据CPU总结的通用代码,只与CPU相关
UseruC-LIB·用于存放一些C语言函数库
··用于存放用户程序,如app.c,main()函数就放在app.c文件中

在这里插入图片描述

起文件夹名字一定不要用μ,Keil无法识别这个字符,会报一堆错,未来的我连夜回来修改博客(哭)

2、新建工程

  1. Project文件夹新建项目
    在这里插入图片描述
    在这里插入图片描述
  2. 起一个英文名字
    在这里插入图片描述
  3. 选择ARMCM3
    在这里插入图片描述

如果没有ARM的话,参考以下文章:
5.38版本的 Keil5 下载、安装、激活 ——2024年1月20日
我发现我的Keil没有ARM的PackPack Installer还是灰色无法点的,只能花了一中午重装了Keil,太伤心了
在这里插入图片描述

  1. 设置运行环境
    选择好处理器,单击OK按钮后会弹出Manage Run-Time Environment选项框。这里我们在CMSIS栏选中COREDevice栏选中Startup这两个文件即可
    在这里插入图片描述
    单击OKCOREStartup这两个文件就会添加到我们的工程组里面。
    在这里插入图片描述

其中startup_ARMCM3.s是汇编编写的启动文件,system_ARMCM3.c是C语言编写的跟时钟相关的文件。 更加具体的可直接阅读这两个文件的源码。只要是Cortex-M3内核的单片机,这两个文件都适用。

  1. 添加文件组
    在工程里面添加UserμC/OS-III SourceμC/OS-III PortsμC/CPUμC/LIBDoc这几个文件组, 用于管理文件
    鼠标右键Target1,在弹出的选项里面选择Add Group即可添加文件组
    在这里插入图片描述
  2. 添加文件
    分别在User文件夹中新建app.c,在Doc文件夹中新建readme.txt
    在这里插入图片描述

在这里插入图片描述
将文件添加到工程中,添加方式是双击文件组并选择文件
在这里插入图片描述

五、UCOSIII:调试配置

1、设置软件仿真

在这里插入图片描述

2、修改时钟大小

在系统初始文件中,规定时钟为25M
在这里插入图片描述
在软件仿真的时候,确保时间的准确性,代码里面的系统时钟跟软件仿真的时钟必须一致, 所以Options for Target->Target的时钟应该改成25M
在这里插入图片描述

但是本人的keil时钟修改选项是灰色的,查了一下资料才发现是版本的问题
在这里插入图片描述
参考资料:
keil5.36无法修改XTL时钟,导致软件调试时定时时间错误的解决方法
如果是高版本的keil,应该是不需要修改时钟选项(猜测)

3、添加头文件路径

在这里插入图片描述

六、UCOSIII:调试模式中示波器的使用

1、 在app.c中编写main函数

图示与程序如下:
在这里插入图片描述

int flag1;
int flag2;void delay(int count)
{for (; count!=0; count--);
}int main(void)
{/* 无限循环,顺序执行 */for (;;){flag1 = 1;delay( 100 );flag1 = 0;delay( 100 );flag2 = 1;delay( 100 );flag2 = 0;delay( 100 );}
}

点击Build,保证程序没有错误,不然的话无法进入调试模式。
在这里插入图片描述
在这里插入图片描述

2、调试模式

  1. 进入调试模式
    在这里插入图片描述
  2. 只有在程序前出现灰块的程序才会运行
    在这里插入图片描述

3、使用示波器

  1. 打开示波器
    在这里插入图片描述

  2. 把变量加到示波器中
    在这里插入图片描述

  3. 把变量的显示改为bit
    在这里插入图片描述

  4. 点击Run,运行程序
    在这里插入图片描述

  5. 示波器显示如下
    在这里插入图片描述

4、常见错误

1. Build时报错 Error: L6218E

在这里插入图片描述
修改后如下:
在这里插入图片描述

参考资料:
Error: L6218E: Undefined symbol ImageARM_LIB_STACKZILimit (referred from startup_armcm4.o)

2. keil5软件仿真没有实时波形

在view中点击 period windows update 即可
在这里插入图片描述

参考资料:
keil5软件仿真没有实时波形

3. Build时报错 error 65

参考资料:
keil仿真和使用逻辑分析仪调波形

4. Peripherals显示空白

参考资料:
Peripherals显示空白?

5. 调试模式时,程序前没有灰块

在这里插入图片描述

  1. 将优化等级选为-O0,但可能会加大最终代码大小
    在这里插入图片描述
  2. 然后重建工程
    在这里插入图片描述
  3. 进入调试界面,问题解决
    在这里插入图片描述

参考资料:
keil5软件仿真stm32设置 和 调试技巧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/713674.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WSL2外部网络设置

1 关闭所有WSL系统 wsl --shutdown 2 打开Hyper-V管理器 3 将“虚拟交换机管理器”-> ”WSL连接类型“设置为“外部网络” 4 启动WSL系统,手动修改WSL网络 将WSL网络IP修改为192.168.1.9 sudo ip addr del $(ip addr show eth0 | grep inet\b | awk {print $2} |…

FinalMLP:用于推荐系统的简单但强大的双流 MLP 模型

原文地址:FinalMLP: A Simple yet Powerful Two-Stream MLP Model for Recommendation Systems 了解 FinalMLP 如何转变在线推荐:通过尖端 AI 研究解锁个性化体验 2024 年 2 月 14 日 介绍 世界正在向数字时代发展,在这个时代,…

持安科技孙维伯:零信任在攻防演练下的最佳实践|DISCConf 2023

近日,在2023数字身份安全技术大会上,持安科技联合创始人孙维伯应主办方的特别邀请,发表了主题为“零信任在攻防演练下的最佳实践”的演讲。 孙维伯在2023数字身份安全技术大会上发表演讲 以下为本次演讲实录: 我是持安科技的联合…

【c++】 STL的组件简介与容器的使用时机

STL六大组件简介 STL提供了六大组件,彼此之间可以组合套用,这六大组件分别是:容器、算法、迭代器、仿函数、适配器(配接器)、空间配置器。 容器:各种数据结构,如vector、list、deque、set、map等,用来存放…

微信云开发-- Mac安装 wx-server-sdk依赖

第一次上传部署云函数时,会提示安装依赖wx-server-sdk 一. 判断是否安装wx-server-sdk依赖 先创建一个云函数,然后检查云函数目录。 如果云函数目录下只显示如下图所示三个文件,说明未安装依赖。 如果云函数目录下显示如下图所示四个文件&a…

EdgeX Foundry 边缘物联网中间件平台

文章目录 1.EdgeX Foundry2.平台架构3.平台服务3.1.设备服务3.2.核心服务3.3.支持服务3.4.应用服务3.5.安全服务3.6.管理服务 EdgeX Foundry # EdgeX Foundryhttps://iothub.org.cn/docs/edgex/ https://iothub.org.cn/docs/edgex/edgex-foundry/1.EdgeX Foundry EdgeX Found…

嵌入式 Linux 下的 LVGL 移植

目录 准备创建工程修改配置修改 lv_drv_conf.h修改 lv_conf.h修改 main.c修改 Makefile 编译运行更多内容 LVGL(Light and Versatile Graphics Library)是一个轻量化的、开源的、在嵌入式系统中广泛使用的图形库,它提供了一套丰富的控件和组件…

微软为金融界带来革命性突破——推出Microsoft 365中的下一代AI助手:Microsoft Copilot for Finance

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

雷龙CS SD NAND(贴片式TF卡)测评体验

前段时间有幸免费得到了雷龙出品的贴片式的TF卡的芯片及转接板,两片贴片式nand芯片+一个转接板,一种一个已让官方焊接完好;如下图所示: 正面: 背面: 通过转接板,可以将CS SD NAND(贴…

数电实验之流水灯、序列发生器

最近又用到了数电实验设计的一些操作和设计思想,遂整理之。 广告流水灯 实验内容 用触发器、组合函数器件和门电路设计一个广告流水灯,该流水灯由 8 个 LED 组成,工作时始终为 1 暗 7 亮,且这一个暗灯循环右移。 1) 写出设计过…

关于DisableIEToEdge插件闪退问题的解决方案

关于DisableIEToEdge插件闪退问题.今天终于测试找到最佳解决方案了! 1.管理员权限运行Windows powershell. 2.执行一下两条命令修复系统环境 DISM.exe /Online /Cleanup-image /Restorehealth sfc /scannow 3.关闭Windows安全中心的所有安全选项。 4.管理员权限运行…

【计算机考研择校】四川大学vs电子科技大学哪个难度更大?

川大在文科,经管方面比科大强,医学在国内都很强。但工科方面特别是电子信息领域明显是科大强于川大。毕竟一个是综合大学,一个是工科大学不可同日而语。 就业上,电子科大在IT领域的社会声誉口碑不错。就业一向都很好。这个多问问…

张俊将出席用磁悬浮技术改变生活演讲

演讲嘉宾:张俊 空压机销售总监 亿昇(天津)科技有限公司 演讲题目:用磁悬浮技术改变生活 会议简介 “十四五”规划中提出,提高工业、能源领城智能化与信息化融合,明确“低碳经济”新的战略目标,热能产业是能源产业和…

Python环境下一种改进的基于梯度下降的自适应短时傅里叶变换

在数字信号处理技术中,傅里叶变换及其逆变换是一种信号时频分析方法。该方法将信号的时域描述及频域描述联系在一起,时域信号可通过正变换转变为频域信号,频域信号可通过逆变换转变为时域信号进行分析。但傅里叶变换及其逆变换是一种信号的整…

Linux/Centos 部署静态IP,解决无法访问目标主机、Destination Host Unreachable、无法ping通互联网的问题

Linux/Centos 部署IP,解决无法访问目标主机、Destination Host Unreachable、无法ping通互联网的问题 Linux/Centos 部署静态IP查物理机/自身电脑的IP设置VMware上的虚拟网络编辑器设置网卡IP,激活至此就可访问百度了 Linux/Centos 部署静态IP 需要注意…

软考基础知识2

1.DMA控制方式:直接内存存取。数据在内存与I/O设备间直接成块传送,不需要CPU的任何干涉,由DMA硬件直接执行完成。 例题: 2.程序计数器总是存下一个指令的地址。 例题: 3.可靠度的计算: 例题&#xff1a…

吸猫毛空气净化器哪个好?推荐除猫毛效果好宠物空气净化器品牌

当下有越来越多的家庭选择养宠物!尽管家里变得更加温馨,但养宠可能会带来异味和空气中的毛发增多可能会带来健康问题,这是一个大问题! 不想家里弥漫着异味,特别是来自宠物便便的味道,所以需要一款能够处理…

ABAP - SALV教程02 - 开篇:打开SALV的三种方式之二

全屏模式生成SALV的方式:http://t.csdnimg.cn/CzNLz本文讲解生成可控模式的SALV,该方式需要依赖自己创建屏幕的自定义控件区域(Custom Control)实现步骤:需要注意的点是SALV的实例对象和dispaly方法一定是在屏幕PBO事件…

利用IP地址识别风险用户:保护网络安全的重要手段

随着互联网的发展和普及,网络安全问题日益突出,各种网络诈骗、恶意攻击等风险不断涌现,给个人和企业的财产安全和信息安全带来了严重威胁。在这样的背景下,利用IP地址识别风险用户成为了保护网络安全的重要手段之一。IP数据云探讨…

JVM内存回收算法

1.1 引用计数法 每个对象创建的时候,会分配一个引用计数器,当这个对象被引用的时候计数器就加1,当不被引用或者引用失效的时候计数器就会减1。任何时候,对象的引用计数器值为0就说明这个对象不被使用了,就认为是“垃圾…