| |
|
开发:
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运行异常问题解决 |
目录 一.开发板有问题很多年前买了一块当年最为先进的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的,然后我就百度了一下怎么移植,没想到官网就有,很详细! 按照这个做就可以了,出现问题就把工程删了多做几次就能好使。我把源代码改了一个地方,就是 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例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |