【RTT大赛作品连载】linkboy面向WCH移植(1)

描述

本次要移植的WCH开发板外形如下:

串口

首先安装MounRiver软件,然后新建一个工程,芯片型号选择WCH32V103R8T6,注意操作系统选项要选择RT_Thread,工程如下:

串口

可以看到这是一个串口输出的模板程序。然后点击编译,点击下载按钮,成功下载到开发板,再打开linkboy串口助手,按下主板的复位键,可以看到有串口信息打印出来:

串口

到此硬件验证完成。我们可以创建正式的RT-Thread工程了,注意新建工程时候,操作系统列表里要选择“RT-Thread”,如下图:

串口

 

接下来开始进行vos的安装,运行linkboy软件,点击“外挂神器”按钮:

串口

在芯片型号中选择 NULL,这是由于目前还没有WCH的模板,因此用NULL代替:

串口

然后点击新建虚拟机,并选择安装目录为WCH工程的main.c文件的同目录下:

串口

并按照如下设置后,点击“保存并生效配置”按钮:

串口

现在vos引擎已经安装到WCH工程中,接下来需要在main函数中初始化这个虚拟机,并让它运行,修改main文件如下:

串口

分别是34行导入虚拟机,45行初始化虚拟机,48行定时调用虚拟机。然后点击编译按钮:

串口

发现报错,提示没有SoftDelay_1us这个函数。打开 vos_c.h 文件,手工添加这个函数,可以没有指令,就一个空函数即可(按理说不应该编译报错,vos应自动包含这个函数最好,后续会升级改进):

串口串口

如上图,简单手工补上这个空函数,36行。然后再编译,可以看到编译正常。也就是说这时候把编译好的hex文件下载到开发板上,vos引擎应该能运行起来了。不过看不到任何效果,因为我们尚未移植GPIO函数。接下来就移植GPIO,可以先用串口打印来代替,如图:

串口

这里本来应该是设置第i个针脚的电平为数据d,不过我们先用串口打印出来再说吧。先编译一下,正常。然后打开linkboy软件,写一个控制LED灯亮灭的小程序试试:

串口

由于目前尚未把WCH开发板封装到linkboy里,因此先用一个通用的开发板代替,外部接一个LED到D4端口。仿真可以看到LED亮灭闪烁不停。然后点击左上角的linkboy按钮,选择外挂模式-源码:

串口

点击“复制App数据”,然后进入WCH工程的vos/user文件夹,将数据粘贴到app.h文件里:

串口

那么vos引擎会运行这个程序,并让D4针脚的LED亮灭不停(注意目前为止,WCH芯片没有D4针脚,并且会用串口输出打印代替)。试一下,点击编译,并下载程序到WCH开发板上,然后点开串口助手:

串口

成功~~~ 可以看到一秒打印两个消息,分别是 GPIO4 = 1 和 GPIO4 = 0。也就是我们的linkboy闪灯程序在WCH开发板上跑起来了~~ 事实上如果把那个print语句换成真实的GPIO函数,开发板上接一个LED的话,LED确实也会闪烁运行的,那么下一章节我们就来讲解如何让WCH开发板驱动真正的LED亮灭吧!

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分