OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2842|回复: 4

寄存版例程移植RT-Thread操作系统

[复制链接]

3

主题

92

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
275
金钱
275
注册时间
2012-6-19
在线时间
37 小时
发表于 2018-5-28 09:07:10 | 显示全部楼层 |阅读模式
本帖最后由 bxl131 于 2018-5-28 09:27 编辑

正点原子寄存版例程移植 RT-Thread 操作系统
其实官方网站上也都有教程,我也是参照官方文档操作的,不敢私藏,整理一下拿出来分享
给有须要的朋友。
首先装 keil5 版本号 5.25 ,在网上自己下载就可以了。我原来装的是 keil5.10 ,移植不成功。
TIM截图20180524170953.png

然后打开一个工程,点下图标识的地方
TIM截图20180524171102.png


安装 rt-thread ,现在最新版本是 3.03 ,如果安装成功后 Install 会变成 up to date
TIM截图20180524171217.png


然后点下图标识的地方
TIM截图20180525084754.png


下一步:按下图标注的勾选好,点 OK
TIM截图20180524171328.png


这样,操作系统就加载到工程里面来了
TIM截图20180524171417.png


下面就开始进行代码的修改,要修改的地方有以下几点:
打开 sys.c ,添加以下几行代码:
uint32_t SystemCoreClock=72000000;
void SystemCoreClockUpdate(void)
{
Stm32_Clock_Init(9);
}
注意千万别拼写错误,变量名和函数名不要胡乱定义。
TIM截图20180524171736.png


打开 rtconfig.h 文件,找到下面的宏定义,把数值改成 1000 ,
#define RT_TICK_PER_SECOND 1000
TIM截图20180524171944.png


打开 test.c 文件,添加 #include <rtthread.h>
TIM截图20180524174031.png


然后修改 test.c 文件代码,编译后就可以下载到板子上运行了
TIM截图20180524173257.png


附:
Test.c 文件代码
#include <rtthread.h>
#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "led.h"
//ALIENTEK Mini STM32 开发板范例代码 1
// 跑马灯实验
// 技术支持: www.openedv.com
// 广州市星翼电子科技有限公司
static struct rt_thread tid1;
ALIGN(RT_ALIGN_SIZE)
static rt_uint8_t entry1_stack[256];
static struct rt_thread tid2;
ALIGN(RT_ALIGN_SIZE)
static rt_uint8_t entry2_stack[512];
void thread_entry1(void* parameter);
void thread_entry2(void* parameter);
int main(void)
{
rt_err_t result;
LED_Init();
uart_init(72,115200); // 串口初始化为 115200
result = rt_thread_init(&tid1, "thread_entry1", thread_entry1, (void*)1,
&entry1_stack[0],
sizeof(entry1_stack), 6, 10);
if(result==RT_EOK) /* 如果返回正确,启动线程 1 */
rt_thread_startup(&tid1);
result = rt_thread_init(&tid2, "thread_entry2", thread_entry2, (void*)2,
&entry2_stack[0],
sizeof(entry2_stack), 5, 10);
if(result==RT_EOK) /* 如果返回正确,启动线程 2 */
rt_thread_startup(&tid2);
return 0;
}
void thread_entry1(void* parameter)
{
rt_thread_delay(100);
while(1)
{
LED0=0;
rt_thread_delay(100);
LED0=1;
rt_thread_delay(900);
//printf("This is thread 1!");
}
}
void thread_entry2(void* parameter)
{
rt_thread_delay(100);
while(1)
{
LED1=1;
rt_thread_delay(100);
LED1=0;
rt_thread_delay(900);
printf("This is thread 2!");
}
}


[size=10.5000pt]
[size=10.5000pt]
[size=10.5000pt]


ALIENTEK MiniSTM32 实验1 跑马灯.rar

1.15 MB, 下载次数: 91

移植步骤.pdf

1.47 MB, 下载次数: 83

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

7

主题

188

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
385
金钱
385
注册时间
2018-7-19
在线时间
126 小时
发表于 2018-7-27 08:39:50 | 显示全部楼层
回复 支持 反对

使用道具 举报

7

主题

188

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
385
金钱
385
注册时间
2018-7-19
在线时间
126 小时
发表于 2018-7-27 08:41:18 | 显示全部楼层
楼主你好,我想知道移植RTT的作用是什么,从那里可以体现出来
回复 支持 反对

使用道具 举报

3

主题

92

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
275
金钱
275
注册时间
2012-6-19
在线时间
37 小时
 楼主| 发表于 2018-7-27 16:40:31 | 显示全部楼层
坐看风 发表于 2018-7-27 08:41
楼主你好,我想知道移植RTT的作用是什么,从那里可以体现出来

说实话,你这个问题把我给难住了。
回复 支持 反对

使用道具 举报

7

主题

188

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
385
金钱
385
注册时间
2018-7-19
在线时间
126 小时
发表于 2018-7-27 17:09:14 | 显示全部楼层
bxl131 发表于 2018-7-27 16:40
说实话,你这个问题把我给难住了。

我知道RTT是个操作系统,可是移植到嵌入式里到底有什么用,真不明白。
因为后期我可能要把RTT移植到F103我都不知道为什么要移植。困扰
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-17 22:48

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表