摘要: 嵌入式笔试题:想让程序跳转到绝对地址0x100000处执行,该如何做? 请详细解释一下所给的答案: 网上看到有如下答案: *((void(*)(void))0x100000)(); 经过在VC++6.0和LINUX gcc4.4.3下测试,均不能通过编译。 VC++6.0报错:error C2100 阅读全文
posted @ 2016-07-06 16:03 不止所见 阅读(2416) 评论(0) 推荐(0)
摘要: 虽然使软件正确是一个工程合乎逻辑的最后一个步骤,但是在嵌入式的系统开发中,情况并不总是这样的。出于对低价产品的需求,硬件的设计者需要提供刚好足够的存储器和完成工作的处理能力。所以在嵌入式软件设计的最后一个阶段则变成了对代码的优化。 现代的C和C++编译器都提供了一定程度上的代码优化。然而,大部分由编 阅读全文
posted @ 2016-07-06 15:30 不止所见 阅读(347) 评论(0) 推荐(0)
摘要: 一般察看函数运行时堆栈的方法是使用GDB(bt命令)之类的外部调试器,但是,有些时候为了分析程序的BUG,(主要针对长时间运行程序的分析),在程序出错时打印出函数的调用堆栈是非常有用的。 在glibc头文件"execinfo.h"中声明了三个函数用于获取当前线程的函数调用堆栈。 int backtr 阅读全文
posted @ 2016-07-06 14:38 不止所见 阅读(3187) 评论(0) 推荐(0)