当前位置:   article > 正文

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

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

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


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


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

四、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没有ARMPackPack 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 );
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

点击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设置 和 调试技巧

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/179966
推荐阅读
相关标签
  

闽ICP备14008679号