[综合信息] 【华大测评】 + RT-thread及其他资源

[复制链接]
3863|28
 楼主| 海洋无限 发表于 2020-10-3 17:55 | 显示全部楼层 |阅读模式
这篇测评是对板载更多资源的学习,目前有测试了ADC、rtc、随机数、看门狗等其他资源,都比较简单,目前这些资源也用不上,所以就没有太认真测试,只是功能出来就OK了,顺道今天把rt-thread移植到开发板上,之前这个os还没有使用过,不过早几年有ucos的产品经验,大概看了下rt-thread,基本都差不多吧,而且现在keil支持rt-thread,省了很多事情,使用也都大同小异吧,移植过程非常顺利,rt-thread的中断管理那块都已经帮移好了,直接拿过来就能用,跑了两个闪灯的任务,总共加起来也没用到1小时,还是很顺利的,和裸机程序比较,时钟那块要改下,其他都直接用。后面试了下rt-thread的邮箱功能,很好用,基本平时使用的功能就全部有了,其实这块开发板功能是很丰富的,但是很多功能现在用不到,所以就没心思去认真弄了,所以这次测评先到移植完rt-thread这么多,下面来看下几个代码,显示main函数
  1. DISANLE_SYSTEM_IRQ();
  2.   
  3.   system_init();
  4.   peripheral_init();
  5.   system_config();
  6.   
  7.   thread_mailbox_init();
  8.   thread_sample_init();
  9.    
  10. ENANLE_SYSTEM_IRQ();
  11.   
  12.   while(1)
  13.   {
  14.     led_blink(LED_RED);
  15.     rt_thread_mdelay(500);   
  16.   }
  17.   return 0;
然后是创建线程,全部采用静态,ram不大,动态就不折腾了
  1.   rt_err_t result;

  2.   result = rt_thread_init(&thread1,
  3.                             "thread1",
  4.                             thread1_entry, RT_NULL,
  5.                             &thread1_stack[0], sizeof(thread1_stack),
  6.                             5, 5);
  7.     if (result == RT_EOK)   rt_thread_startup(&thread1);


  8.     result = rt_thread_init(&thread2,
  9.                             "thread2",
  10.                             thread2_entry, RT_NULL,
  11.                             &thread2_stack[0], sizeof(thread2_stack),
  12.                             5, 5);
  13.     if (result == RT_EOK)   rt_thread_startup(&thread2);
  14.    
  15.     return 0;
创建邮箱
  1.     rt_err_t result;

  2.     /* ????? mailbox */
  3.     result = rt_mb_init(&mb,
  4.                         "mbt",                      /* ??? mbt */
  5.                         &mb_pool[0],                /* ????????? mb_pool */
  6.                         sizeof(mb_pool) / 4,        /* ????????,??????? 4 ?? */
  7.                         RT_IPC_FLAG_FIFO);          /* ?? FIFO ???????? */
  8.     if (result != RT_EOK)
  9.     {
  10.         return -1;
  11.     }
任务一,发送邮箱内容
  1. void thread1_entry(void* parameter)
  2. {   
  3.     while (1)
  4.     {
  5.         rt_mb_send(&mb, (rt_uint32_t)&but);
  6.         rt_thread_mdelay(300);
  7.     }
  8. }
任务二,接收邮箱内容
  1. void thread2_entry(void* parameter)
  2. {
  3.   struct buttonMag *str;
  4.   
  5.   while (1)
  6.      {
  7.         if (rt_mb_recv(&mb, (rt_uint32_t *)&str, RT_WAITING_FOREVER) == RT_EOK)
  8.         {
  9.             led_blink(LED_BLUE);
  10.         }
  11.     }
  12. }
代码运行一段时间,看看会不会有问题,应该问题不大,rt-thread移植真是方便,现在还记得以前一直ucos的时候,可是花了好多心思,ARM7的中断管理可没有context-M3这么好,还记得ARM体系结构那本书还是不错的。
598330983 发表于 2020-10-4 17:21 来自手机 | 显示全部楼层
开发板提供烧录器了吗?
 楼主| 海洋无限 发表于 2020-10-4 17:32 | 显示全部楼层
598330983 发表于 2020-10-4 17:21
开发板提供烧录器了吗?

我使用U-LINK
fjhcpu 发表于 2021-1-29 22:36 | 显示全部楼层
能放个完整的工程参考下吗?
51xlf 发表于 2021-2-17 21:31 | 显示全部楼层
            
i1mcu 发表于 2021-2-17 21:31 | 显示全部楼层
RT-Thread的资料有点少  
pmp 发表于 2021-2-17 21:32 | 显示全部楼层
RT-Thread和Threadx有什么区别
mmbs 发表于 2021-2-17 21:32 | 显示全部楼层
楼主有资料吗啊   
1988020566 发表于 2021-2-17 21:32 | 显示全部楼层
rt-thread 怎样搭建gui
lzbf 发表于 2021-2-17 21:33 | 显示全部楼层
RT-Thread是一个非常好的系统
youtome 发表于 2021-2-17 21:33 | 显示全部楼层
rt-thread是否是免费的   
cemaj 发表于 2021-2-17 21:33 | 显示全部楼层
如何在rt-thread上开发应用程序
jimmhu 发表于 2021-2-17 21:33 | 显示全部楼层
怎么确定线程栈大小  
lihuami 发表于 2021-2-17 21:34 | 显示全部楼层
怎么知道串口收到数据
i1mcu 发表于 2021-2-17 21:34 | 显示全部楼层
楼主可以分享一下想的 资料吗   
51xlf 发表于 2021-2-17 21:34 | 显示全部楼层
谢谢楼主分享的。        
pmp 发表于 2021-2-17 21:34 | 显示全部楼层
怎样学习RT-Thread  
cemaj 发表于 2021-2-17 21:34 | 显示全部楼层
有没有各个性能测试的范例   
youtome 发表于 2021-2-17 21:34 | 显示全部楼层
rt thread 现在做得挺好的   
jimmhu 发表于 2021-2-17 21:35 | 显示全部楼层
rt thread钩子函数怎么用  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:永远忠于年轻时的梦想!

39

主题

539

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部