摘要: 一.ARM内核的寄存器 通用寄存器R0-R12:都可以用来保存中间的计算结果。 堆栈寄存器R13:MSP是主堆栈指针,PSP是进程堆栈指针,两个指针可以通过指令来切换使用,两个指针的值可以不一样,可以自己设置。 链接寄存器R14(LR):保存函数的返回地址。函数跳转硬件自动保存PC的下一条指令地址到 阅读全文
posted @ 2024-11-01 11:04 Charles_hui 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 一.What is MMU 1.MMU是一个协处理器,用作内存管理。若应用程序想访问某块物理内存地址,MMU会将虚拟内存映射到物理内存。 2.MMU包括了页表(PT)和块表(TLB),TLB相当于PT的快速缓存。 二.What is it used for? 1.应用程序直接访问物理内存很危险,所以 阅读全文
posted @ 2024-10-29 14:56 Charles_hui 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 一.What is Cache 1. Cache是一个CPU缓存,位于CPU与内存之间的临时存储器,它的容量比内存小但读写速度快。 2. Cache可以分为ICac和DCache 二.What is it used for? 1.CPU做一次乘法运算只需要几个周期,而做一次内存访问可能需要上百个周期 阅读全文
posted @ 2024-10-28 17:17 Charles_hui 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 1.imx6ull的ELCD interface支持的LCD接口分类 8080(MPU)、 DOTCLOCK(TFT+RGB) VSYNC(MPU+VSYNC) 2.寻找LCD驱动: 3.platform_driver要和platform_device挂钩,platform_device可以在代码注 阅读全文
posted @ 2024-10-28 10:38 Charles_hui 阅读(2) 评论(0) 推荐(0) 编辑
摘要: ** Makefile里的一些编译命令 显示所有的警告信息:“-c -Wall” 阅读全文
posted @ 2024-10-26 23:56 Charles_hui 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 一.前言 之前移植过freertos操作系统,涉及到计算机和操作系统的底层,特此详细记录下这些知识点。至于具体的详细步骤,就不给出了,网上有很多参考,这里只分析“重点”。笔者的cpu内核是cotex-M3. 二.3个重点函数 vPortSVCHandler():加载第一个任务的中断处理函数。 xPo 阅读全文
posted @ 2024-10-26 18:07 Charles_hui 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 一.分析JumpToApp函数 点击查看代码 void JumpToApp(uint32_t addr) { __disable_irq();//这个函数调用会禁用中断。在跳转到新的应用程序之前,通常需要确保当前的中断状态不会干扰跳转过程。 uint32_t sp = *((volatile uin 阅读全文
posted @ 2024-10-25 20:46 Charles_hui 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 一.前言 IAP升级在许多场合都会用到,而且涉及到芯片的核心底层,所以特此记录。 二.流程和框架 1.flash分区 将flash分为boot_app区和user_app区 boot_app存放的起始地址为0x00000000,大小为0x00008000(32kb) user_app存放的起始地址为 阅读全文
posted @ 2024-10-25 17:15 Charles_hui 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 一.前言 用好设计模式,可以提高代码水平,所以把学过C++设计模式的做个总结和分类。 二.七大原则 单一职责原则:一般来说,类和函数的颗粒度越小越好。一个函数只有一项功能,一个类只负责一项功能。 开闭原则:对拓展开放、对修改关闭。 依赖倒置原则:高层模块不应该依赖底层模块,应该通过抽象(中间层)来依 阅读全文
posted @ 2024-10-24 18:18 Charles_hui 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 1.删除本体仓库信息 rm -rf .git 2.git初始化 git init 3.后续按照git仓库的创建步骤即可 阅读全文
posted @ 2024-10-22 18:48 Charles_hui 阅读(3) 评论(0) 推荐(0) 编辑