一,前言
无意间看到threadx被收购后就开源了,因为这个rtos代码拿过很多证书,所以值得学习下,第一步是使用,去官网看了入门方法,移植方式和其它rtos类似。所以我就直接移植了,居然还没有那么顺利。
二,遇到问题
- tx_initialize_low_level.s在keil环境编译不过
答:编译不过的内容注释掉。另外,不需要对lib打钩。如下需要替换为__initial_sp,否则栈空间为0地址开始是跑不了的
LDR r0, =_tx_initialize_unused_memory ; Build address of unused memory pointer
LDR r1, =__initial_sp ; Build first free address
ADD r1, r1, #4 ;
STR r1, [r0] ; Setup first unused memory pointer
三,在win10上仿真RTOS
这个还是很顺利,先猜测了下原理,应该是win上创建一个线程来模拟一个tick函数,用户创建的也是线程,然后调度的时候切换其它线程就是在tick函数中进行挂起和恢复其它线程即可实现RTOS的仿真了。
![](https://img.haomeiwen.com/i12010880/08141ea7d3baa50f.png)
四,总结
我之前在win10仿真多线程,我自己简单设计框架都是创建多个线程,然后内部添加sleep代码来实现周期任务,现在发现可以很方便的在window中模拟RTOS,也掌握了设计方法,这个代码将来可以复用了。总之小试牛刀后,对threadx印象不错,之后可以深入学习下。
网友评论