(学习日记)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.rhkb.cn/news/267351.html

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

相关文章

BUGKU 本地管理员

打开环境,先F12查看看到一串代码。Base64解码一下,得到的应该是密码,然后输入admin | test123试一下 使用BP抓包,修改XFF,得到flag

社区分享|中华保险基于MeterSphere开展接口自动化测试

中华联合保险集团股份有限公司(以下简称为“中华保险”)始创于1986年,是全国唯一一家以“中华”冠名的国有控股保险公司。截至2022年12月底,中华保险总资产为1006.06亿元,在全国拥有超过2900个营业网点,员工…

破解SQL Server迷局,彻底解决“管道的另一端无任何进程错误233”

问题描述:在使用 SQL Server 2014的时候,想用 SQL Server 身份方式登录 SQL Servcer Manager,结果报错: 此错误消息:表示SQL Server未侦听共享内存或命名管道协议。 问题原因:此问题的原因有多种可能 管道…

SpringBoot整合JdbcTemplate

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 循序渐进学SpringBoot ✨特色专栏: MySQL学习 🥭本文内容:SpringBoot整合JdbcTemplate 📚个人知识库: Leo知识库,欢迎大家访问 目录 …

openGauss学习笔记-232 openGauss性能调优-系统调优-资源负载管理-资源管理准备-资源规划

文章目录 openGauss学习笔记-232 openGauss性能调优-系统调优-资源负载管理-资源管理准备-资源规划 openGauss学习笔记-232 openGauss性能调优-系统调优-资源负载管理-资源管理准备-资源规划 完成资源负载管理功能配置前,需要先根据业务模型完成租户资源的规划。业…

fastjson反序列化漏洞

fastjson反序列化漏洞 文章目录 fastjson反序列化漏洞1.漏洞原理2.探测方式2.1 查看回显2.2 LDAP/RMI服务测试 3.LDAP/RMI服务搭建要求4.漏洞复现4.1 fastjson <1.2.47 反序列化导致任意命令执行漏洞4.1.1 环境准备4.1.2 复现过程 4.2 fastjson <1.2.24 反序列化导致任意…

simple-pytest 框架使用指南

simple-pytest 框架使用指南 一、框架介绍简介框架理念&#xff1a;框架地址 二、实现功能三、目录结构四、依赖库五、启动方式六、使用教程1、快速开始1.1、创建用例&#xff1a;1.2、生成py文件1.3、运行脚本1.3.1 单个脚本运行1.3.2 全部运行 1.4 报告查看 2、功能介绍2.1、…

vue2 开发记录

el-select 如何修改选择项的样式/el-select-dropdown__item 文字上下显示 测试代码 <div stylemargin-left: 100px><!-- 测试代码--><el-select filterablesizemini><div classxxx-el-select><el-optionv-foritem in [{key:1,des:2,…

web自动化笔记八:滚动条处理和窗口截屏

一、滚动条处理 ①为什么要操作滚动条&#xff1f; 1. 在HTML页面中&#xff0c;由于前端技术框架的原因&#xff0c;页面元素为动态显示&#xff0c;元素根据滚动条的下拉而被加载 2. 页面注册同意条款&#xff0c;需要滚动条到最底层&#xff0c;才能点击…

vue cesium加载点与定位到指定位置

vue cesium定位到指定位置 window.viewer.camera.flyTo({destination: Cesium.Cartesian3.fromDegrees(point.longDeg, point.latDeg, 6500000), orientation: {heading: 6.2079384332084935, roll: 0.00031509431759868534, pitch: -1.535}, duration: 3})vue cesium加载点 …

QMLButton背景初始化

文章目录 异常情况解决办法 异常情况 Button {id: controltext: qsTr("Button")width: 100height: 150property color normalColor: "green"property color hoverColor: "yellow"property color pressColor: "red"background: Rectan…

Android的硬件接口HAL

我一直觉得&#xff0c;现代计算机不是一门科学&#xff0c;起码快算不上一门理科科学。上上下下全是人造&#xff0c;左左右右全是生意&#xff0c;用管理学&#xff0c;经济学去学计算机&#xff0c;也许更看得懂很多问题。HAL就是一个典型例子。 传统Linux绕开了微软的霸权…

Vue3速成

文章目录 day 11. 创建vue3工程3. 响应式数据4. 计算属性 day 25. watch 监视6. watchEffect7. 标签的ref属性8. 回顾TS中的接口_泛型_自定义类型 day 1 1. 创建vue3工程 相关代码如下&#xff1a; ## 创建vue工程 npm create vuelastest## 安装node_modules npm install //…

【六袆 - React】Next.js:React 开发框架;Next.js开发框架的特点

Next.js&#xff1a;React 开发框架 Next.js的特点 1.直观的、基于页面的路由系统&#xff08;并支持动态路由&#xff09; Next.js 提供了基于文件系统的路由&#xff0c;意味着你可以通过创建页面文件来定义路由。 伪代码示例&#xff1a; // pages/index.js export defa…

【数据结构】数组

第一章、为什么数组的下标一般从0开始编号 提到数组&#xff0c;读者肯定不陌生&#xff0c;甚至还会很自信地说&#xff0c;数组很简单。编程语言中一般会有数组这种数据类型。不过&#xff0c;它不仅是编程语言中的一种数据类型&#xff0c;还是基础的数据结构。尽管数组看起…

AI新工具(20240301) Ideogram; Image to Music Generator等

1: Ideogram 全新的多模态生图AI工具&#xff0c;以其优秀的文字渲染能力和生图能力受到业界瞩目 Ideogram是一个创新的AI工具&#xff0c;它通过在生成的图片中自然地整合文字&#xff0c;解决了生图AI领域长期存在的一个难题。这个工具特别擅长将文本以极其自然和协调的方式…

Nginx 隐藏版本信息和logo

1.隐藏版本信息 http {### 隐藏版本号 server_tokens off; } 2.隐藏图标 2.1 cd nginx 安装的路径 cd/XXXX/nginx-1.2.0 2.2 编辑文件 vim src/core/nginx.h 修改define nginx_ver 中的内容 vim src/http/ngx_http_special_response.c 修改 u_char ngx_http_error_tail[]…

腾讯云4核8G的云服务器性能水平?使用场景说明

腾讯云4核8G服务器适合做什么&#xff1f;搭建网站博客、企业官网、小程序、小游戏后端服务器、电商应用、云盘和图床等均可以&#xff0c;腾讯云4核8G服务器可以选择轻量应用服务器4核8G12M或云服务器CVM&#xff0c;轻量服务器和标准型CVM服务器性能是差不多的&#xff0c;轻…

【生成式AI】ChatGPT 原理解析(2/3)- 预训练 Pre-train

Hung-yi Lee 课件整理 预训练得到的模型我们叫自监督学习模型&#xff08;Self-supervised Learning&#xff09;&#xff0c;也叫基石模型&#xff08;foundation modle&#xff09;。 文章目录 机器是怎么学习的ChatGPT里面的监督学习GPT-2GPT-3和GPT-3.5GPTChatGPT支持多语言…

element-plus表格合并

要实现这样的表格&#xff0c; 怎么做呢&#xff1f; 甚至是这种三级的呢&#xff1f; 官网的案例也是通过这个方法进行配置的&#xff0c;也就是说表格长什么样&#xff0c;关键在怎么处理的方法上。 这是官网的方法&#xff0c;可参考拓展&#xff1a; const arraySpanMeth…