1、STM32F103C8T6使用cubemx生成IAR工程文件并点亮LED
1.1 新建工程
1.2 选择芯片型号
1.3 进行RCC设置,选择外部晶振
1.4 对GPIO进行设置,用来点亮PB0引脚的LED1
1.5 时钟树设置(用外部晶振8MHZ HSE)
1.6 生成项目工程设置
1.7 在main.c中编写程序,点亮LED1。
2、μC/OS II移植
2.1 下载官方源码或者我提供的(一定要是cortex-M3版本的)
链接:https://pan.baidu.com/s/1mp2nEOFT-9wQZMjplZQUOQ
提取码:1234
–来自百度网盘超级会员V6的分享
2.2 源码文件分析
μC/OS II源码的文件目录如下:
Examples文件下是官方提供的例程,Software文件下是μC/OS II源文件
Software目录下的文件分析
μC-CPU :这是和CPU紧密相关的文件,我们不需要使用。
μC-LIB:Micrium公司提供的官方库文件,如字符串操作,内存操作等函数接口,可用可不用。
μCOS-II:这是关键目录文件,我们接下来要详细分析的文件,跟移植、使用密切相关的。
μC-Serial:μC/OS II接口文件
Software ->μC/OS II ->Source下的文件内容
os.h: 头文件
os_core.c: 内核文件
os_flag.c: 标志性事件组
os_mbox.c: 消息邮箱
os_mem.c: 内存管理
os_mutex.c : 互斥信号量
os_q.c: 消息队列
os_sme.c: 信号量
os_task.c: 任务相关
os_time.c : 时间相关
os_tmr.c: 软件定时器
ucos_ii.h: 内部函数参数设置
os_cpu.h:定义数据类型、处理器相关代码、声明函数原型
oc_cpu_a.asm:与处理器相关的汇编代码,主要是与任务切换相关
os_cpu_c.c:定义用户钩子函数,提供扩充软件功能的的接口
os_dbg.c:内核调试相关数据和相关函数
2.3将μC/OS-II源文件中需要的文件复制到自己创建的工程目录中
cfg文件夹:
ports文件夹
source文件夹
2.4 在工程中,分组ucos下再创建三个分组:cfg、ports、source,分别将文件夹中相应的文件添加进去。然后进行环境配置:
2.5 配置文件路径:C/C++ Compiler -> preprocessor
2.6 配置Linker: Linker -> Config ,勾选Override default
2.7 配置Debugger:
在这里插入图片描述
2.8 进行移植后的代码系统配置
编译后会提示无法打开lib_def.h文件,该文件在software\uc-LIB中,工程中不需要该文件,将其注释。
在启动文件中,把所有PendSV_Handler替换为OS_CPU_PendSVHandler
把所有SysTick_Handler替换成OS_CPU_SysTickHandler。
到这一步为止,μC/OS-II移植就完成了,很简单是不是,我一开始也是被吓到了,其实移植μC/OS-II根本不难