OpenEdv-开源电子网

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

RTT学习进程贴(重新上传压缩包)

[复制链接]

19

主题

248

帖子

2

精华

高级会员

Rank: 4

积分
842
金钱
842
注册时间
2012-2-8
在线时间
19 小时
发表于 2013-5-15 21:09:42 | 显示全部楼层 |阅读模式
下班后,闲来无聊,便学习RTT解解闷。今天终于宿舍有网线,把之前练习写的与大家共享。

事件,先看看RTT是如何描述事件的。主要用于线程间同步,可一对多,多对多。事件集合可以用一个32位的无符号整形变量表示。一个位代表一个事件。线程可以通过“逻辑与”或“逻辑或”与多个事件建立联系。

话不多说,文档里面讲得很清楚。工程里,创建三个线程,两静态线程用于控制LED,一动态线程用于控制KEY。按KEY0,红灯闪烁5次;按KEY1,绿灯闪烁5次;WK_UP无效!

静态线程需要手动为线程分配任务栈。感觉在说废话,直接讲事件的发送,接收好了。
事件的发送通过这个函数 rt_err_t rt_event_send (rt_event_t eventrt_uint32_t set),比如 rt_event_send(&key_event,1<<0) 是对置位0号事件。
事件的接收则通过这个函数 rt_err_t rt_event_recv (rt_event_t event, rt_uint32_t set, rt_uint8_t option, rt_int32_t timeout, rt_uint32_t *recved),比如想接收key_event事件集的0号事件可以这样写 rt_event_recv(&key_event, (1<<0),RT_EVENT_FLAG_OR|RT_EVENT_FLAG_CLEAR,RT_WAITING_FOREVER,&e)
key_event是要接收的事件集,e是存放接收到的事件集。如果只是接收单个事件,要使用RT_EVENT_FLAG_OR,而RT_EVENT_FLAG_CLEAR则在接收到事件后,清除其标志位。

初始化一个静态事件使用这个函数 rt_err_t rt_event_init (rt_event_t event, const char *name, rt_uint8_t flag)。这里初始化一个键盘事件集
rt_event_init(&key_event, "key_event", RT_IPC_FLAG_FIFO)


不多说,上源码,还是挺好理解的。在mini板上面跑的。目前一个事件和信号量。都是键盘控制LED。在MDK这个文件夹里面打开工程。

RT_Thread_ALmini.rar

8.09 MB, 下载次数: 280

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165225
金钱
165225
注册时间
2010-12-1
在线时间
2107 小时
发表于 2013-5-16 00:04:22 | 显示全部楼层
谢谢分享.
不过建议把垃圾文件删除,这样整个工程就很轻量级了...
不用上传9M这么大.
垃圾文件删除,请看我们例程下面的keilkill.bat
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

19

主题

248

帖子

2

精华

高级会员

Rank: 4

积分
842
金钱
842
注册时间
2012-2-8
在线时间
19 小时
 楼主| 发表于 2013-5-16 18:28:57 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
已经kill了,文件夹35M的,压到这个级别。。。尽力了
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165225
金钱
165225
注册时间
2010-12-1
在线时间
2107 小时
发表于 2013-5-16 23:12:58 | 显示全部楼层
回复【3楼】寒寒:
---------------------------------
哇哦,原来RTT这么大....
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

19

主题

248

帖子

2

精华

高级会员

Rank: 4

积分
842
金钱
842
注册时间
2012-2-8
在线时间
19 小时
 楼主| 发表于 2013-5-17 19:37:04 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
类似于Linux那种,组件比价丰富,而且这里面是两个工程,尽管我把共用那些会重复的文件。不知道论坛支不支持.7z格式,可能会再小一点
回复 支持 反对

使用道具 举报

34

主题

805

帖子

4

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1863
金钱
1863
注册时间
2011-3-29
在线时间
139 小时
发表于 2013-5-17 19:48:41 | 显示全部楼层
可以把stm32之外的bsp包删除。
业余程序玩家。
回复 支持 反对

使用道具 举报

19

主题

248

帖子

2

精华

高级会员

Rank: 4

积分
842
金钱
842
注册时间
2012-2-8
在线时间
19 小时
 楼主| 发表于 2013-5-17 22:10:24 | 显示全部楼层
回复【6楼】ofourme:
---------------------------------
这个的bsp只是跟mini板有关的
回复 支持 反对

使用道具 举报

34

主题

805

帖子

4

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1863
金钱
1863
注册时间
2011-3-29
在线时间
139 小时
发表于 2013-5-17 22:31:06 | 显示全部楼层
解压出错?
回复 支持 反对

使用道具 举报

19

主题

248

帖子

2

精华

高级会员

Rank: 4

积分
842
金钱
842
注册时间
2012-2-8
在线时间
19 小时
 楼主| 发表于 2013-5-21 21:31:46 | 显示全部楼层
回复【8楼】ofourme:
---------------------------------
已经重新上传,之前是用7z压的,没想到用winrar会出错
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-1 14:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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