idle man的学习空间

2010年12月18日 #

volatile变量说明

摘要: 一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。 volatile修饰符的主要目的是提示编译器该对象可能在编译器未监测到的情况下被改变,因此不要对引用这些对象的代码做优化处理。关键点:1、在编译器监测范围之外被改变。2、对引用这些对象的代码不做优化处理。实现方法:每次要获取该变量的值时都从内存中获取而不直接读取存储该变量的寄存器。会发生的情况举例:主要是中断等情况,如一个被系统始终更新的变量。中断函数中会改变值的变量。这些情况编译器 阅读全文

posted @ 2010-12-18 20:05 idle_man 阅读(544) 评论(0) 推荐(1) 编辑

|Image$$RO$$Base|解析【转】

摘要: 这篇文章是从网上摘录的,觉得蛮有用的,所以保存下来IMPORT |Image$$RO$$Base| ; Base of ROM codeIMPORT |Image$$RO$$Limit| ; End of ROM code (=start of ROM data)IMPORT |Image$$RW$$Base| ; Base of RAM to initialiseIMPORT |Image$$ZI$$Base| ; Base and limit of areaIMPORT |Image$$ZI$$Limit| ; to zero initialiseIMPORT MMU_SetAsyncBu 阅读全文

posted @ 2010-12-18 20:04 idle_man 阅读(4584) 评论(0) 推荐(1) 编辑

TQ2440启动代码分析(二)

摘要: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; When EINT0 is pressed, Clear SDRAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; check if EIN0 button is pressed;这一段检测EINT0是否被按下,假如EINT0被按 阅读全文

posted @ 2010-12-18 19:59 idle_man 阅读(1405) 评论(0) 推荐(1) 编辑

TQ2440启动代码分析(一)

摘要: 看了好几天的启动代码了,终于把大部分的东西都看懂了,在此整理下自己对TQ2440开发板启动代码的理解(参考了网上找的一些资料),并贴出来供大家看一下,希望对大家有帮助,如果有什么错了的地方,也请大家不吝赐教。;=========================================; NAME: 2440INIT.S; DESC: C start up codes; Configure memory, ISR ,stacks; Initialize C-variables;=========================================启动代码主要是在主程序运行之前 阅读全文

posted @ 2010-12-18 19:57 idle_man 阅读(4043) 评论(0) 推荐(2) 编辑

2440初学杂记

摘要: 前一段时间,拿到了天嵌公司的TQ2440的板子,刚拿到的时候兴奋了半天--我也要开始搞嵌入式了 拿到板子研究了几天之后才发现原来没有那么简单。以前的只有单片机和微机原理的基础,对软件不算了解,对操作系统、bootloader等较底层的东西也是一知半解。原来以为搞嵌入式主要是Linux,驱动什么的,后来在学习的过程中,逛了不少的网站和论坛,似乎大家一致的声调是:要学好ARM和Linux,一定要打好基础,要对体系结构很清晰,不然以后如果做驱动或者底层的东西会很悲剧,所以跑了一段时间的裸奔。 刚开始的时候,主要是照着天嵌提供的测试程序来跑的。照着天嵌的例子走下来,感觉似乎很简单,一下就过去了,可是仔 阅读全文

posted @ 2010-12-18 19:55 idle_man 阅读(811) 评论(1) 推荐(0) 编辑

导航