7得票3回答
手动分配地址时,编译器会优化掉指向函数的指针

我需要调用地址为0xDD2的函数: // foo.h void foo(void) __at(0xDD2); // foo.c #include "foo.h" void foo(void) { // some code } 这段代码可以正常工作: #include "foo...

7得票3回答
为什么启用 -O2 或更高级别时,这段代码会出现错误?

我试图将美国国家安全局的SPECK实现在一个8位PIC微控制器上。他们免费的编译器版本(基于CLANG)不支持启用优化,因此我遇到了内存不足的问题。我尝试了启用了-O2、-O3和-Os(为大小进行优化)的“试用”版本。使用-Os,它成功地将我的代码适应了2K程序存储空间。以下是代码: #in...