OpenEdv-开源电子网

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

让RT_Thread在mini板上面跑,写给新手看,大牛请无视

[复制链接]

19

主题

248

帖子

2

精华

高级会员

Rank: 4

积分
842
金钱
842
注册时间
2012-2-8
在线时间
19 小时
发表于 2013-3-31 15:30:07 | 显示全部楼层 |阅读模式
  闲来无聊,弄了一下RT_Thread。将官方提供的工程重新整理一下(官方已经将系统移植到STM32,不过F1的文件结果比较乱),顺便使其在mini板上面跑。两个灯,红灯大概1Hz,绿灯大概0.5Hz。一个是静态线程,一个是动态线程。
把工程的文件结构搞成这样子


RT_Thread下面是这样子的


组件挺多的,finsh,net,文件系统啥啥啥的





看看libcpu下面是啥


















再来个工程鸟瞰






























官方是在ZE上面跑的,有些地方需要改动一下

3.修改board.h里的SRAM大小(官方的默认是64K):

  #define STM32_SRAM_SIZE         20
  #define STM32_SRAM_END          (0x20000000 + STM32_SRAM_SIZE * 1024)[/mw_shl_code]

documentation.rar

455.27 KB, 下载次数: 1268

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

使用道具 举报

19

主题

248

帖子

2

精华

高级会员

Rank: 4

积分
842
金钱
842
注册时间
2012-2-8
在线时间
19 小时
 楼主| 发表于 2013-3-31 15:32:12 | 显示全部楼层
512k的校园网真心的卡,附件这里

附上几个链接http://www.rt-thread.org/dokuwiki/doku.php 官方wiki,这里可以学到不少东西

官方例程 http://rt-thread.googlecode.com/files/RT-Thread%201.0.2.7z

通过软件仿真来看程序怎么走,然后一点点的点亮灯,目前就懂怎么多

rt_thread_mini.rar

4.7 MB, 下载次数: 1070

回复 支持 反对

使用道具 举报

126

主题

820

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1683
金钱
1683
注册时间
2012-10-28
在线时间
62 小时
发表于 2013-3-31 15:41:26 | 显示全部楼层
牛啊
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165353
金钱
165353
注册时间
2010-12-1
在线时间
2108 小时
发表于 2013-3-31 16:56:39 | 显示全部楼层
不错,谢谢分享。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

31

主题

64

帖子

0

精华

高级会员

Rank: 4

积分
637
金钱
637
注册时间
2012-10-27
在线时间
63 小时
发表于 2013-4-3 14:58:46 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

19

主题

248

帖子

2

精华

高级会员

Rank: 4

积分
842
金钱
842
注册时间
2012-2-8
在线时间
19 小时
 楼主| 发表于 2013-4-14 12:21:38 | 显示全部楼层

来讲讲clock.c里面的几个函数,其实文件里面的英文注释写的清楚的了


void rt_system_tick_init(void)  //用于初始化时钟并置零,从1.1.0版本起不在需要
{
}
rt_tick_t rt_tick_get(void) //获取从系统启动后到现在的 tick 值
{
    return rt_tick;
}
void rt_tick_set(rt_tick_t tick) //设置当前 tick 值
{
    rt_base_t level;

    level = rt_hw_interrupt_disable(); //关中断
    rt_tick = tick;
    rt_hw_interrupt_enable(level); //开中断
}


void rt_tick_increase(void) //通知内核一个 tick 产生,通常放置与systick 中断里面(对于STM32来说) 
{
    struct rt_thread *thread;
    ++ rt_tick; //增加一个tick
    thread = rt_thread_self(); //获取当前线程

    -- thread->remaining_tick; //减少当前线程一个时间片
    if (thread->remaining_tick == 0) //时间到?
    {
        thread->remaining_tick = thread->init_tick; //恢复线程时间片
        rt_thread_yield(); //让出CPU
    }
    rt_timer_check(); //检查定时器list
}


rt_tick_t rt_tick_from_millisecond(rt_uint32_t ms) //毫秒换算tick
{
    return (RT_TICK_PER_SECOND * ms + 999) / 1000;
}
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2013-4-14
在线时间
0 小时
发表于 2013-4-26 19:36:02 | 显示全部楼层
正在学
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2013-7-6
在线时间
0 小时
发表于 2013-7-6 20:25:23 | 显示全部楼层
顶个      刚开始学习
回复 支持 反对

使用道具 举报

38

主题

248

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
463
金钱
463
注册时间
2011-2-11
在线时间
12 小时
发表于 2013-7-8 19:47:49 | 显示全部楼层
无视
回复 支持 反对

使用道具 举报

1

主题

13

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2017-10-29
在线时间
4 小时
发表于 2019-5-3 21:35:10 | 显示全部楼层
感谢分享,学习了
回复 支持 反对

使用道具 举报

15

主题

512

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3154
金钱
3154
注册时间
2016-1-14
在线时间
367 小时
发表于 2019-5-9 20:11:23 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2019-7-18
在线时间
1 小时
发表于 2019-7-18 15:13:29 | 显示全部楼层
厉害!
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-25 11:55

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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