搜索
bottom↓
回复: 8

新手使用RT-Thread,请教0.3.1版本中STM32例程串口设备问题

[复制链接]

出0入0汤圆

发表于 2010-12-7 14:52:17 | 显示全部楼层 |阅读模式
ffxx您好,首先向您表示诚挚的敬意。RT-Thread是我接触的第一个嵌入式操作系统。花了两个星期的时间,看了两遍《RT-Thread编程手册》。现在着手学习源代码和例程。
由于我经常和串口打交道,所以首先学习RT-Thread对串口的封装。我看的例程是\RT-Thread-0.3.1\bsp\stm3210\project_led_simple文件夹内的例程。控制Led灯闪烁的部分很简单,对串口设备的封装也看明白了。只是有一点不太明白,想请教一下您:

原来用STM32裸奔的时候,用的STM32库,串口中断服务函数在stm32f10x_it.c相应的函数框中写。系统启动时,由startup_stm32f10x_hd.s指定了中断向量,将串口中断指向了中断服务函数。但是RT-Thread中的例程,usart1的中断服务函数是rt_hw_serial_isr(),在serial.c文件中。但是我找了半天也没有看到中断是怎么指向这个函数的,就是这个函数通过什么渠道变成了usart1的中断服务函数呢?

另外我想说一下,我发现这个论坛里的人似乎都是“高手”,大部分应该都不是第一次使用操作系统了。像我这样第一次接触操作系统的人,在论坛上收获的东西不是很多,因为你们讨论的都太深奥了。。。我想请ffxx大大推荐几本书,以弥补我欠缺的知识。

目前我的情况是:我的C语言还算不错,看了两遍RT-Thread编程手册,对线程调度,RT-Thread的工作模式也比较了解了。但是当我打开MDK,接上开发板后,我觉得无从下手,没有什么头绪。当然弄个LED灯实验还是可以的,但这太简单了。如果我把我原先的项目(典型的while(1)模式),重新编写成带RT-Thread系统的程序,不知道该从哪儿入手。比如说,我不太清楚应该怎么分配任务(建立线程),线程间的同步,究竟是用信号量好,还是邮箱(或是消息)。是用消息传递数据,还是指定一个缓存区,用标志位告诉另外的线程应该什么时候读取缓存区的内容?有点困惑,望ffxx大大和论坛内的大大们指点迷津。

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2010-12-7 15:28:32 | 显示全部楼层
我也是刚学习的

典型的while(1)模式
请看线程那块,慢慢来

出0入0汤圆

发表于 2010-12-7 15:29:17 | 显示全部楼层
rt_hw_serial_isr()在stm32f10x.c中的USART1_IRQHandler(这个是中断服务函数)中调用的

回3楼,是stm32f10x_it.c

出0入0汤圆

 楼主| 发表于 2010-12-7 17:26:14 | 显示全部楼层
楼上说的是stm32f10x_it.c文件吧?可是这个文件里就没有USART1_IRQHandler()函数啊

出0入0汤圆

发表于 2010-12-7 17:33:50 | 显示全部楼层
\RT-Thread-0.3.1\bsp\stm3210\project_full

出0入0汤圆

 楼主| 发表于 2010-12-7 17:34:17 | 显示全部楼层
弄明白了,我看的project_led_simple例程里,没有用到串口中断,这个例程里用的是接收中断。但串口使用上没有接收,只有发送所以不用调用rt_hw_serial_isr()  我看了project_full例程,这里面rt_hw_serial_isr() 是在stm32f10x_it.c中的USART1_IRQHandler()中调用的。

感谢楼上回复的朋友。

我现在对线程创建,删除什么的都弄懂了。就是不太明白怎么构造整个系统,从上到下的分配各个任务、中断,打造一个合理的系统框架。这个可能是和经验有关,需要慢慢积累了。我就试着把之前做的项目一个一个的都换成带系统的,多动手应该慢慢就熟练了。

出0入0汤圆

发表于 2010-12-7 17:51:00 | 显示全部楼层
在STM32中,依然沿用了原来的中断方式,需要按照原来STM32固件库的方式添加中断。

在串口设备中,因为个数比较多,所以弄了个“统一的入口”:rt_hw_serial_isr()。

出0入0汤圆

发表于 2010-12-7 17:53:19 | 显示全部楼层
至于说线程如何设计,信号量、锁、邮箱、消息队列等应该在什么场合使用,在《编程指南》中添加了相应的小节叙述。只是这份编程指南只能等到明年出版社出版后了。

出0入0汤圆

发表于 2010-12-7 22:12:33 | 显示全部楼层
期待新书的出版~
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-19 12:31

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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