原创 STM32最小系统上运行的FreeRTOS源码 [可下载]

2009-10-29 22:22 5652 8 9 分类: MCU/ 嵌入式

现在STM32越来越普及,快成入门首选了,walnutcy


有不少网友问我要去年弄的那个最小系统上跑的FreeRTOS,


一直没有答复,东西不好找,换了城市,换了工作,更是换了个人电脑硬盘,很多东西都还是当时存了备份,新工作中不占使用这些,都忘掉放在哪了。walnutcy


https://static.assets-stash.eet-china.com/album/old-resources/2009/10/29/dd61e273-f114-4935-827c-7a349cca8ffb.rarwalnutcy


晚上没事,把旧硬盘找出来,最后翻出了这个最简单的版本。


目录结构如下图所示:walnutcy


7450878c-7282-4b97-9357-c94a57827b4a.jpgwalnutcy


其只需要连接一个串口,内部使用freertos运行了三个任务,


主要是做做测试,其中有一个任务实现了简单的shell控制台功能。任务创建如下所示:walnutcy


 // Walter 20080816walnutcy
 xTaskCreate( vComTxTask1, ( signed portCHAR * ) "task 1", comSTACK_SIZE, NULL, 2, ( xTaskHandle * ) NULL );walnutcy
 xTaskCreate( vComTxTask2, ( signed portCHAR * ) "task 2", comSTACK_SIZE, NULL, 1, ( xTaskHandle * ) NULL );walnutcy
 xTaskCreate( vTaskComConsole, ( signed portCHAR * ) "COMConsole", 256, NULL,tskIDLE_PRIORITY , ( xTaskHandle * ) NULL );walnutcy


另一点,当时为了个人使用方便,只留下了最简单的OS代码,目录结构与标准的有小变动,这点请大家见谅。walnutcy


同时该系统演示了如何使用信号量来共享设备,如下walnutcy


void consolePutString(char *str)walnutcy
{
    if(uartMutexHandle!=NULL)walnutcy
    {walnutcy
        if(xQueueTakeMutexRecursive(uartMutexHandle,(portTickType)10)==pdTRUE)
        {walnutcy
         while(*str)walnutcy
          UartxPutCh(*str++);walnutcy
         xQueueGiveMutexRecursive(uartMutexHandle);walnutcy
        }     walnutcy
   }walnutcy
}
walnutcy


串口采用了队列缓存机制,初学都也可以学习了解一下。


if( USART_GetITStatus( USARTx, USART_IT_RXNE ) == SET )
 {
  tmp = USART_ReceiveData(USARTx) & 0xFF;
  uartx_rxBuffer[uartx_rxIndexIn++] = tmp;
  if (uartx_rxIndexIn>=_MAX_UART_BUFFER_LEN) uartx_rxIndexIn=0;
 }
 


对串口部分重新配置下,应该就可以在三合的那个小板上运行了。walnutcy


 

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

walnutcy_696810119 2009-10-31 21:58

请发邮件并详细说明
相关推荐阅读
walnutcy_696810119 2012-11-21 08:37
Linux下使用smartCOM调试串口
在Windows下的串口调试一直使用sscom,在Linux下只找到一个cutecom,用了几次,很不喜欢,就着手开发了一款自己的串口调试工具,smartCOM。 smartCOM介绍:http...
walnutcy_696810119 2012-03-29 18:12
【博客大赛】原创--测量基础:什么是测量
写在正文之前: 适逢EDNChina搞活动,而我本人也算在测量业工作,就一起作下笔记吧。若有错误,请大家一起斧正。笔者写本文一方面是梳理知识,另一方面也希望与大家探讨有关测量的知识、应用等,希...
walnutcy_696810119 2011-12-20 18:29
GLONASS 15年来,首次实现24颗星在轨可用
  EDN的博客改版后,不太好用,在SINA重开一个,不过重点改为关注GNSS行业新闻 http://blog.sina.com.cn/s/blog_7420cd1701012en9....
walnutcy_696810119 2011-12-20 17:49
逆向工程第一步:通信协议分析
工程中常有这样的事,想分析下其他知名公司产品中的通信协议,以便生产设计兼容产品。 1) 逆向工程,首先要了解产品,知己知彼,百战不怠;     去年受命想仿一款GARMIN的导航盒,但无法...
walnutcy_696810119 2011-11-14 11:30
通用代码调试方法 (Keil, VCC)
调试代码一般需要定位问题,这里给出一个解决方案, 一般的编译器均支持这些宏指令。   #define DEBUG_WALT_1113     1 extern void log_t...
EE直播间
更多
我要评论
1
8
关闭 站长推荐上一条 /3 下一条