上一篇完成了单任务模式读取传感数据,并显示在串口屏上, 算是完成了一个极简单的应用.
在这一篇里,我们移植一个实时OS, 基于UCOS2精简的一个版本.
有意思的是WCH提供的MounRiver IDE有一个转换项目的功能,我也是打开了之后才发现,试了一下,有备份临时文件,同时也有LOG文件产生.
编译后只有23个BUG, 手动去FIX一下, 不过移植的时候,只让我选V103, 没有V307选择,准备转换过之后再修改.
经过手动改路径,批量改文件名,在设置里面修改头文件的路径, 然后用CHV307的库去代替之前的GD32F103的库, 这个过程还是费了不少时间的.
整个OS由任务调度, CPU内核驱动代码. 非抢占式,任务优先级就是任务的TCB序号.
核心的代码几乎不用改.
然后就是串口通讯模块驱动,直接用的是成熟的SCI模块,这个模块支持UART,I2C,SPI,包括IR等等, 采用环形队列做发送接收缓冲, 通过配置文件来设置,学习成本较高,但是用熟悉了,完全可以相信它的可靠性.
这一部分代码也不用修改, 所有的串口引脚配置,初始化,都在用户程序中定义.
花了一点点时间改了下IO口的号码,由于没有继电器,所以只需要修改串口1,2,3对应的IO口号,LED对应的IO等
虽然这里说的这么简单 ,但实际弄花了差不多1个多小时.
至此, 之前在GD32F303CBT6上的代码,就移植到了CHV307VCT6上面,,有机会要改一下电路板,正式的测试一下WCH的芯片
|