- 博客(5)
- 收藏
- 关注
原创 Cortex-M3/M4 不可屏蔽硬件异常处理之非法内存访问
那么SCB是什么,SCB_CFS_BFSR、SCB->BFAR又是什么?根据ARM32标准4GB内存空间分配如下,可见SBC为系统控制块其中包含了各个系统控制寄存器。查看程序可以找到Cotex-M4的SBC基地址定义,如下:PRECISERR SCB->BFAR:BB000010,代表在0xBB000010内存地址出现了非法访问,显然0xBB000010不在我们所能访问的内存访问内。-->结论PC值指向出错指令。
2024-08-07 14:49:31
2007
1
原创 【RT-Thread 设备驱动开发】I/O抽象层+总线层+驱动层+硬件层
实际项目开发中,我们往往会进行不同的硬件尝试来看是否满足业务功能需求,如WIFI、FLASH等芯片的更换甚至可能是主控MCU的更换。但由于同一功能不同品牌的硬件之间使用差异性较大,需要查阅用户使用手册进行重新编码实现相关接口,同时应用层业务代码也需要进行接口修改。当你终于更改完了,操蛋的leader说还是换回原有硬件方案吧,但此时你又在此基础上开发了新的业务代码。于是你又要吭哧吭哧的把新硬件平台上的新业务代码拷贝到旧硬件平台上并做一些接口的修改,捣腾两次这种无趣且又需要仔细的工作后,好了你人没了!!!
2024-08-02 19:34:53
3079
原创 【RT-Thread 内核】操作系统+启动流程+内核机制
对象并初始化,然后初始化父类rt_ipc_object对象以及rt_sem相关内容,如flag选项RT_IPC_FLAG_FIFO和RT_IPC_FLAG_PRIO,决定多个线程挂起等待时,优先唤醒谁,一般只选用RT_IPC_FLAG_PRIO保证实时性。F5烧录运行,进入MSH界面,Tab键即可查看,随便选择一个输入执行,如:semaphore_sample,注意这个MSH_CMD_EXPORT导出的函数没有结束,只能手动硬件复位,具体内容大家自行查阅学习吧!RT-Thread是否如此,有待测试。
2024-07-28 23:04:20
2318
原创 【RT-Thread ENV构建剪裁原理】Kconfig+.config+Scons
秉承着Linux可裁剪的传统,RT-Thread除了像FreeRTOS基本的内核功能外,还可以通过配置.config文件来加载编译不同源码和网络上的第三方组件包。与Linux最大的不同在于,其构建工具做了改变,RT-Thread官方不再采取Makefile,而是采用Scons(python脚本)的方式,通过Scons脚本来读取加载.config配置文件生成的对应宏文件rtconfig.h,来进行项目源码编译构建;Linux则是直接通过Makefile来加载读取.config文件,编译构建项目源码生成镜像。
2024-07-25 12:47:06
729
原创 【RT-Thread开发环境搭建】ENV+VSCode+OPENDOCD
RT-Thread常见的开发方式主要有通过RT-Thread Studio和ENV两种方式,本文选用ENV构建方式以通过VSCode打开源码项目进行开发。点击网站下载最新版并解压确保网络正常,双击打开文件夹中的 env.exe or env.bat,首次打开会有如下界面:为方便使用,将env可执行文件注册到环境变量至此我们就可以在系统的任意目录下使用右键打开env了。
2024-07-25 12:41:38
1374
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人