IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 单片机前后台程序后添加RT-Thread运行异常问题解决 -> 正文阅读

[嵌入式]单片机前后台程序后添加RT-Thread运行异常问题解决

目录

一.开发板有问题

二.移植RT-Thread

三.灵感来了

四.温情提示


一.开发板有问题

很多年前买了一块当年最为先进的mcu开发板----longan(龙眼gd32vf103cxt6),一个月前我才能正常的点亮上边的led,不是我放着吃灰了,是我真的怎么都没办法将他点亮。上个月我下了一个MounRiver Studio编译器我才发现,可能是我遇到奸商了!当时我买的是GD32VF103CBT6,原来他妈的给我发的是GD32VF103C8T6,这个事情我以前也想过,我也看过芯片上的丝印,怎奈何丝印太小了,我根本看不出来B和8有啥区别。反正强烈推荐MounRiver Studio用着舒服,习惯。

能点亮之后我就想用它玩一下比较火的LVGL,学习和移植完毕之后,才想起来我这个东西只有64K的内存,根本放不下LVGL,淦!

后来看到板子上有一个SD卡接口,就想让他成为电子书,但是吧!中文字库我不太懂怎么弄到SD卡里边,用的时候还能快速的调取。那就让他成为一个能解析json的微型控制器吧!SD卡我会驱动,显示屏也好弄,CJson也很简单,根据sd卡里边寸的JSON脚本,就可以执行相对应的逻辑,可以!

程序写完之后呢,运行起来一切正常,都在main函数的while(1)跑。

二.移植RT-Thread

我突然想搞一个菜单界面,还有一个运行时间显示的小title,弄到最顶上,看起来会比较炫酷。这就说明我需要一个RTOS跑几个线程,但是我的芯片上内存真的不够了,我需要一个非常非常小的东西塞进去,不需要花里胡哨的功能,能线程切换,任务调度就OK。我个人很喜欢rt-thread,超级喜欢,国货之光!我就想起来rt-thread nano:

资源占用小:对 RAM 与 ROM 的开销非常小,在支持 semaphore 和 mailbox 特性,并运行两个线程 (main 线程 + idle 线程) 情况下,ROM 和 RAM 依然保持着极小的尺寸,RAM 占用约 1K 左右,ROM 占用 4K 左右。

想想就很合适,然后就开始移植,我这个芯片是RISC-V的,然后我就百度了一下怎么移植,没想到官网就有,很详细!

RT-Thread 文档中心

按照这个做就可以了,出现问题就把工程删了多做几次就能好使。我把源代码改了一个地方,就是

cpuport.h这个文件的include修改一丢丢成下边这个样子,不这么写他就include不到,我也觉得很奇怪。

#include <../../../../RT-Thread/rtconfig.h>

移植OK之后呢,用rt点一个灯,ok!没问题。然后就把我之前的程序弄进去,还是main函数运行,没创建线程。程序就出现了非常奇怪的现象,我的屏幕就不停的闪烁,上一次显示的图片在清空之后,不停的闪烁显示。我没有调试器,我就把rt循环点灯的程序,一点点的向下移,在mian函数最开始的时候显示正常,点亮屏幕之后也没问题,挂载SD卡之后就出现问题!我就思考几个问题:

1.sd卡程序与rt不兼容?rt与芯片不兼容?

2.rt的系统时钟一直打断spi显示程序?

3.rt时钟使用有问题?

4.rt初始化硬件是不是应该放在main函数之前,也就是board.c里边(rt_hw_board_init())?

1这个猜想我觉得不靠谱,就算是不兼容,我也没能力,没时间解决。

2呢?我看了一下源码,应该不会出现,用的是这个中断作为系统时钟:

.weak? eclic_mtip_handler

3.应该不会,毕竟rt做了适配

4.我以前一直把驱动硬件写在线程里,也没有问题过,这个可以排除了

三.灵感来了

这个问题我就搁置了,因为我暂时想不出来,直到前天我用RT-Thread Studio写32的程序,我才看到一个有意思的界面:

对啊!main函数应该是空闲线程啊,线程大侠只有256,程序太大了,就给他弄崩了,原来如此。

?调试一下:#define RT_MAIN_THREAD_STACK_SIZE???? 2048

正常运行,不会再出现问题了。

原来如此,学到了,学到了。

四.温情提示

gd32vf103这个芯片贵的离谱,千万别拿他做产品,用32都别用他!太黑了。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-01-24 11:03:47  更:2022-01-24 11:05:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 12:40:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码