搜索

[uCOS/RTOS] 【RTOS】麻雀一号探路前行

[复制链接]
1334|4
 楼主 | 2020-5-11 17:45 | 显示全部楼层 |阅读模式
本帖最后由 yinwuqing110 于 2020-5-11 17:49 编辑

    板卡收到有段时间了,相信参赛的坛友们都拿到了开发板了吧,此次作品得以RT-Thread为主题,因此我们需对RT-Thread有个初步的认识。RT-Thread是中国自主研发的嵌入式实时多线程操作系统,支持多任务,允许多个任务同时运行,但这并不意味着处理器在同一时刻真地执行了多个任务。事实上,一个处理器核心在某一时刻只能运行一个任务,由于每次对一个任务的执行时间很短、任务与任务之间通过任务调度器进行非常快速地切换(调度器根据优先级决定此刻该执行的任务),给人造成多个任务在一个时刻同时运行的错觉。在 RT-Thread 系统中,任务通过线程实现的,RT-Thread 中的线程调度器也就是以上提到的任务调度器。相较于 Linux 操作系统,RT-Thread 体积小,成本低,功耗低、启动快速,除此以外 RT-Thread 还具有实时性高、占用资源小等特点,非常适用于各种资源受限(如成本、功耗限制等)的场合。
    今天将前段时间的开发体验分享一下。麻雀一号开发板虽然体型小,但资源相当丰富,集成WiFi、BLE、摄像头、音频扬声器、MIC 录音、TF 卡座、五向按键、还有一个1.44 寸的LCD 屏,使用常见的TypeC接口作为供电和调试串口,预留支持锂电池供电接口。拿到板卡后,上电检测一番。先打开串口调试助手,看看log信息。将Type-C接口的数据线与电脑连接,电脑的设备管理器中看到USB转串口的驱动,如果异常,则需安装CH340的USB转串口的驱动。
对应串口号.png
   将SecureCRT工具设置对于串口号并将其打开
SecureCRT串口设置.png
   敲回车能看到命令行提示符“msh />”表示终端工作正常,然后再按一下Tab键,则会弹出常用的命令
所有命令.png
     接下来我们来了解一下ENV工具,RT-Thread中使用ENV命令行编译配置环境进行项目构建,将SDK包提供的“env_released_1.1.3.7z”压缩文件解压,并确保解压后的文件夹所在目录中不含中文字符,否则后续编译会报错。
提示.png
     在SDK的一级目录下,即“bk7221u_release”文件夹下鼠标右击选择“ConEmu Here”,启动ENV控制台,输入scons命令来编译当前的工程包。scons是RT-Thread使用的编译构建工具,可以使用scons相关命令来编译RT-Thread。如果输入menuconfig,则会启动类似Linux环境下的图形配置界面,其实其本质就是在配置当前目录下的.config文件。由此可见通过配置选项,可实现内核、组件和软件包进行自由裁剪,使系统以搭积木的方式进行构建。
     麻雀一号开发板预留了烧录接口,可用配套的无线烧录器进行烧录all.bin 固件,烧录all.bin主要是用在开发板的程序异常无法正常通过OTA升级固件的情况下使用,all.bin文件主要由bootloader和app程序组成。在SDK包中“bk7221u_release\tool\beken_packager”目录下将“config_cam_4M.json”文件拖至“beken_packager.bat”文件中,则会生成“all_cam_4M_UART1.20190828.bin”,此二进制文件就是all.bin文件。
生成Bin文件.png
     这里需要说明的是,在生成all_cam_4M_UART1.20190828.bin文件前需要先通过ENV工具编译工程,生成rtthread.bin文件哦,否则会报文件找不到的错误信息。接下来采用无线烧录方式将编译好后的rtthread.rbl文件烧录进开发板中。我们将无线烧录器按照操作手册指引方向与开发板连接,此时再用手机搜索附件WiFi,能看到名叫“BK_Wireless_Programer_f4fd”的WiFi名,此WiFi麻雀一号发射出的热点。
搜索WiFi.jpg
    然后连接该热点,密码默认是12345678,能顺利连上,说明无误。这里我选择在PC端进行无线烧录,因此在PC端的WiFi连接处,选择与“BK_Wireless_Programer_f4fd”相连接,同样的输入密码12345678,建立连接。
连接热点.jpg
连接热点.png
    然后再通过PC的网页浏览器进入烧录界面, 无线烧录器默认的IP是192.168.169.1
进入在线烧录界面.png
     由于编译器编译出来的应用程序rtthread.bin属于原始固件,并不能用于RT-Thread OTA的升级固件,需要我们使用RT-Thread OTA固件打包器打包生成.rbl后缀名的固件,然后才能进行OTA 升级。将执行scons命令编译后生成的rtthread.bin打包生成rtthread.rbl
打包成功.png
     然后再在PC浏览器网页端选择打包好后的rbl文件
选择打包后的文件.png
     此时网页页面下后显示更新logo信息
更新中.png
     同时开发板的无线模块指示灯会不停闪烁
在线烧录状态.jpg
    在线升级完成后,页面下的logo信息输出如下:
更新完成.png
     但是在串口端并无看到打印信息输出,重启开发板也是一样的,而且屏幕不再点亮。然后进入SDK工程包中,详细了解一下源码。这里需用到Visual Studio Code开发工具,通过https://code.visualstudio.com/官网下载好软件,然后双击安装
安装VSCode.png
     一路选择默认,只是根据用户需要,更改一下安装的目录即可,安装完成后启动Visual Studio Code,界面还是蛮炫酷的。我们需要安装必要的软件包才能正常调试、编译。
安装必要的插件.png
    这里我将所需的基本软件包总结了一下,仅供参考,大家可以在搜索栏中手动输入,并安装。
安装常用插件.png
    安装完这些插件后,重启Visual Studio Code软件,此时会发现变成中文界面,将bk7221u_release工程导入VSCode中,语法高亮显示,界面更炫酷了。此次分享就到这里吧,后续再对该工程包进行详细的梳理,调试部分代码,让麻雀一号飞起来哦。感谢各位坛友的关顾,如有不同见解,欢迎各抒己见,回帖吐槽,谢谢!



使用特权

评论回复
| 2020-5-14 15:39 | 显示全部楼层
感谢您分享帖子,送您1000家园币

我们的工作人员也会联系您,为您寄出小礼物

大大加油,继续更新,帖子完成还有奖励哦!

使用特权

评论回复
| 2020-5-18 11:23 | 显示全部楼层

使用特权

评论回复
| 2020-6-5 11:17 | 显示全部楼层
大大,我看您写的非常专业,您如果完成了作品,千万别忘记按比赛要求,做成文档,上传到论坛

文档模板在咱们参赛群里有,如果没找到,联系大掌柜单独发给您

提交作品以后,大掌柜给您寄礼品

使用特权

评论回复
 楼主 | 2020-6-22 00:49 | 显示全部楼层
    大赛也快接近尾声了,但根据之前对RT-Thread工程的熟悉,感觉代码还是挺复杂的。今天验证了一下MJPEG图像传输功能例程,结果没有顺利地将摄像头采集的图像显示在浏览器上,串口打印店信息如下:
打印IP信息.png
    而此时在PC的浏览器上显示无法连接到指定的IP地址
连接不上画面.png
    显然是开发板这边一调用摄像头就重启了。看了下官方提供的demo工程源码,源码中主要创建vt_event摄像头发送数据帧事件和创建vt_thread摄像头发送数据帧线程,以及创建tcpsrv tcpsever线程,并把mjpeg_test导出msh命令行中。其它功能倒是很正常的,放了几张图片,显示没问题。
11.jpg
22.jpg
33.jpg
     加油吧,尽管大赛在即,上班还得继续呀,明天还需上班,先聊到这儿吧,希望利用端午节的假期完成小功能的调试吧。

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

关闭

热门推荐上一条 /5 下一条

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