关注+星标公众号,不错过精彩内容
来源 | 瑞萨嵌入式小百科
现在做嵌入式开发,在单片机上跑RTOS,是一项最基本的技能。
以前移植RTOS受限于MCU性能、资源,需要对底层进行各种优化和裁剪,移植起来非常复杂,对很多新手来说,门槛很高。
但如今就不一样了,MCU性能和资源都很强大了,现在也有各种一站式工具推出,只需要动动鼠标,基本就能创建一个完整的RTOS工程。
今天结合瑞萨RA0E1单片机(开发板),教大家在单片机上跑ThreadX,并实现串口回显测试。
RA0E1介绍
分享之前先简单介绍一下RA0E1单片机,一下是框图:
geooraugj0l6405096002.png
RA0E1特性
32MHz Arm Cortex-M23内核
高达64KB闪存和12KB SRAM
1KB数据闪存(100,000次编程/擦除 (P/E) 周期)
16引脚和32引脚封装选项
1.6V至5.5V的宽电压范围
TAU(16位通用PWM定时器)
TML32(32位间隔定时器)
实时时钟
12位模数转换器
温度传感器
SAU(UART、简单SPI、简单 I2C)
UART
I2C总线
随机数发生器
安全功能
+-1%高精度、高速片上振荡器
灵活的电源架构,具有快速唤醒功能
HAL驱动器代码
支持Arm生态系统和瑞萨电子原创开发工具
在单片机上跑ThreadX,并实现串口回显测试具体操作流程:
2wsetoze0y46405096102.png
ssyc4odab0k6405096202.png
设置项目名称
jke22u0esdb6405096302.png
选择目标芯片
boi2s1coxsk6405096402.png
选择ThreadX实时系统
ksgt0kalj5u6405096502.png
工程建立完成
eqw3bsmsocd6405096602.png
配置串口及收发任务
bxderhbuyhu6405096702.png
配置串口引脚
sopppdzxil16405096802.png
配置串口属性相关参数
lo5qiskxzi16405096902.png
dydybcco4pw6405097003.png
1ygyoiuhcyp6405097103.png
配置串口的Uart_Theard任务
u3gbqyxdzjo6405097203.png
配置ThreadX任务相关参数
hmfjprnnmod6405097303.png
软件业务逻辑
sk3c4pyok5j6405097403.jpg
代码实现
串口初始化:
ehvbqxlc34p6405097503.png
当需要更改波特率时使用uart_baud_set函数:
o1smmcswusq6405097603.png
串口发送函数:
根据传入的数据缓冲区及数据长度来通过串口发送数据。
pvmijhp5tkz6405097703.png
中断接收函数处理:
fbgxsyfcb1n6405097803.png
任务函数:
判断循环队列是否为空,若队列中有数据则通过串口进行传输
4jwv15fopus6405097903.png
测试结果
串口数据回传成功:

实践操作一遍,你会发现,在单片机上跑RTOS其实也很简单。
------------ END ------------

单片机 IDE e2 studio环境下的波形渲染

低功耗MCU已经来到Cortex-M33的时代

单片机通过I2C实现OLED显示原理和实现方法

单片机4种互补PWM模式原理和实现方法 |