2793|3

36

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

STM32H7 创建ThreadX工程的快捷方式 [复制链接]

  本帖最后由 BinWin 于 2021-9-27 11:49 编辑

        前段时间参加得评测活动有结果了,差强人意啊。

        后面空闲的时候又学习了其他内容,分享一下,也可以所示之前的补充吧。

毫无疑问,使用ST的控制器和处理器已经可以愉快的使用ecosystem体系中的各个软件包了。ThreadX自开源的那一刻起,相信不少ST的用户都迫不及待的想体验一把。时光慢慢,然后获得授权,然后发布Cube_FW,然后,,没有然后了,可以使用CubeMX无痛生成ThreadX工程了。本文就是一次成功的尝试。我们略过RCC、SYS这些大家再熟悉不过的内容,直接寻找目标,RTOS组件。如果你用过TouchGFX那么很容易就找到入口了。

        这个窗口下选择安装软件包后就可以直接新建IOC工程来大显身手了。

细心的朋友会发现一个不完美的地方,那就是GUIX没有被集成。原因呢,可能就是上面提到的TouchGFX,保护意图吧,可以理解。不过能否将这两者配合使用呢?毕竟可以省去工程添加源码那种不方便的功夫消耗。留着这个想法以后再议。

        回到重点的地方,添加ThreadX的组件和功能。Core是一定需要,TraceX是调试组件,可选。HW一般都是自己的板卡了,这里使用过的是ART-Pi,基于STM32H750XB平台的硬件。这些内容做完了,就可以回到CubeMX主页面做软件上的配置修改了。

        最简主义,所以修改一下RTOS的时钟节拍就行了,默认1K的栈空间目前是没有什么问题的。TX_TIMER_TICKS_PER_SECOND修改为1000,一般是1ms的最小调度时隙就够很多场景使用了。之外,再配置一个GPIO用来满足点灯的需求,配置一个串口用来输出一下内心的喜悦。然后就直接生成MDK工程了,不要有任何担心

此时的工程是没有任务运行的,刚才的LED和串口就该在这时候写入代码了。可以是这样子的:


#define Thread_Led_PRIO 31u
#define Thread_Led_STK_SIZE 128u
static TX_THREAD Thread_Led_TCB;
uint8_t Thread_Led_STK[Thread_Led_STK_SIZE];

void Thread_Led(ULONG thread_input){

  while(1){
    HAL_GPIO_TogglePin(LED_B_GPIO_Port,LED_B_Pin);
    tx_thread_sleep(200);
  }
}

#define Thread_UART_PRIO 31u
#define Thread_UART_STK_SIZE 512u
TX_THREAD Thread_UART_TCB;
uint8_t Thread_UART_STK[Thread_UART_STK_SIZE];
uint8_t str[] = "threadx running\n";
extern UART_HandleTypeDef huart4;
void Thread_UART(ULONG thread_input){

  while(1){
    HAL_UART_Transmit(&huart4,str,15,0xff);
    tx_thread_sleep(500);
  }
}

以上两个APP在线程入口函数内创建即可。不出意外,此时可以编译下载运行一气呵成了。

VOID tx_application_define(VOID *first_unused_memory)
{
      tx_thread_create(&Thread_Led_TCB,"thread_led",Thread_Led,0,&Thread_Led_STK[0],Thread_Led_STK_SIZE,Thread_Led_PRIO,3,TX_NO_TIME_SLICE,TX_AUTO_START);
      tx_thread_create(&Thread_UART_TCB,"thread_led",Thread_UART,0,&Thread_UART_STK[0],Thread_UART_STK_SIZE,Thread_UART_PRIO,3,TX_NO_TIME_SLICE,TX_AUTO_START);
}

不忘看下串口有没有输出啊,似乎ThreadX很给力

以上内容摘自微信公众号  懂一点技术的老王 ,有兴趣的可以去关注,号主会时不时的分享一些时下较热门的业内新闻和技术点

原文地址 

https://mp.weixin.qq.com/s/WeXBcRuSOb_49yM8ncm21A

最新回复

谢谢分享,期待tx大量应用!   详情 回复 发表于 2021-9-27 18:03
点赞 关注
 

回复
举报

6593

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

确实比较是最简了,CubeMX就这么无痛生成ThreadX工程了

点评

是的,老王就是这么没有痛感  详情 回复 发表于 2021-9-27 15:26
 
 
 

回复

36

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
Jacktang 发表于 2021-9-27 14:41 确实比较是最简了,CubeMX就这么无痛生成ThreadX工程了

是的,老王就是这么没有痛感

 
 
 

回复

7462

帖子

2

TA的资源

五彩晶圆(高级)

4
 

谢谢分享,期待tx大量应用!

 
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 

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

开源项目 更多>>
    随便看看
    查找数据手册?

    EEWorld Datasheet 技术支持

    相关文章 更多>>
    关闭
    站长推荐上一条 1/10 下一条

     
    EEWorld订阅号

     
    EEWorld服务号

     
    汽车开发圈

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表