- 博客(4)
- 资源 (2)
- 收藏
- 关注
原创 MMU,cache,裸机嵌入式C编程还有带操作系统的编程
通过CMSIS-utrealos项目中的CTBUG调试,使我对裸机C编程加深了认识。那个BUG调试,现象是出现hard fault,但是fault出现地的汇编指令看着貌似没啥问题,解决一处的fault后,其他处又出现fault了。最后我看到原来是fault出现地的指令中源地址错误了,源地址应该在数据段中,却意外地落到了代码段中。这个现象我忙活了半天才找到。然后通过看那奇怪的源地址,对照它四周的
2013-11-26 15:23:41 1283
原创 armcm3权威指南笔记----arm编程中地址未对齐方面的影响
P152当使用C开发程序时,推荐开启CM3的双字对齐管理机制(在NVIC配置与控制寄存器中,把STKALIGN置位),代码形如:#define NVIC_CCR ((volatile unsigned long *)(0xE000ED14)) *NVIC_CCR = *NVIC_CCR | 0x200; //设置STKALIGN位STKALIGN 的名词解释P306在响应异常的
2013-11-21 15:15:47 2123
转载 嵌入式编程复杂性
搜索关键词:嵌入式编程 无MMU 调试复杂嵌入式往往没有操作系统支撑,或者因为有操作系统支撑,但因为种种的限制,操作系统提供的功能少得可怜。所以,很多代码不能像PC编程那样天马行空,任意驰骋。今天就聊聊内存分配的问题,内存碎片,可能大家都不陌生。然而在嵌入式系统里,最怕的就是内存碎片,也是系统稳定的头号杀手。我曾经做了一个项目,系统中有很多的malloc和free,尺寸不一,从60多个字节
2013-11-18 13:12:27 912
转载 uclinux与linux的不同
题外话:感觉通过比较uclinux与linux的不同,能让我更加深入地理解linux的虚拟内存机制,以及它给应用程序编程带来的极大的便利。可执行程序的加载 在普通的Linux中,虚拟内存技术的使用使我们不必关心一个应用程序是从什么地址开始的。 即使所有的应用程序都使用同一个连接脚本配置。 也就是说,即使它们使用的虚拟地址是重叠的,经过页表和页目录
2013-11-06 16:03:14 985
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人