OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子全套STM32开发资料,上千讲STM32视频教程,RT1052教程免费下载啦...

查看: 423|回复: 1

迷你开发板寄存例程移植RT-Thread操作系统

[复制链接]

  离线 

3

主题

83

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
209
金钱
209
注册时间
2012-6-19
在线时间
23 小时
发表于 2018-5-29 10:15:32 | 显示全部楼层 |阅读模式
正点原子公众号
本帖最后由 bxl131 于 2018-5-29 10:17 编辑

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


然后打开一个工程,点下图标识的地方



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



然后点下图标识的地方



下一步:按下图标注的勾选好,点 OK



这样,操作系统就加载到工程里面来了



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



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



打开 test.c 文件,添加 #include <rtthread.h>



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



附:
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!");
}
}

ALIENTEK MiniSTM32 实验1 跑马灯.rar

1.15 MB, 下载次数: 48

移植步骤.pdf

1.47 MB, 下载次数: 45

回复

使用道具 举报

  离线 

8

主题

62

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2016-5-19
在线时间
52 小时
发表于 2018-6-22 10:09:37 | 显示全部楼层
赞!!
回复 支持 反对

使用道具 举报

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

本版积分规则




关闭

必看:"原子哥”力荐上一条 /1 下一条

QQ|联系我们|手机版|官方淘宝店|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-8-17 21:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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