Tag: 嵌入了

IAR为自定义数据定义内存区域

我想在STM32 micro中定义一个特定的内存区域来存储一些字符串。 我正在使用IAR编译器,但我找不到一个简单的例子,它可以帮助我使用icf文件以正确的方式创建区域。 如何创建区域并在代码中使用此区域? 谢谢

如何将具有数组的宏字符串化为#define a_macro {5,7,7,97}?

请仔细检查。 #define _VERSION_ 1.4 #define DEFAULT_NETWORK_TOKEN_KEY { 3, 6, 5, 100} //我无法更改上面的宏但在下面 #define STR_VALUE(arg) #arg #define FUNCTION_NAME(name) STR_VALUE(name\r) #define TEST_FUNC #AP started v _VERSION_ #define TEST_FUNC_NAME FUNCTION_NAME(TEST_FUNC) #define QUOTE_X(t)#t #define QUOTE(t)QUOTE_X(t) #define ABC 100 //{ 3, 6, 5, 100} #define MYSTR “The value of ABC is” const uint8 startMsg[] = MYSTR ” ” QUOTE(ABC); 结果: […]

GCC – 如何阻止malloc被链接?

我正在努力将我的代码缩小到最小的裸骨大小! 我使用的STM32F0只有32k闪存,需要大部分闪存用于数据存储。 我的代码已经有大约20k的闪存大小! 其中一些原因是由于使用了STM32 HALfunction,我可以根据需要对其进行解释和优化。 但是,我最大的flash消费者是所有隐含的库例程。 我似乎无法删除这些function。 它们不会在我的代码或任何HAL代码中的任何位置调用。 诸如_malloc_r(1.3k字节)和__vfiprintf_r(3kB)以及许多其他function正在使用我的闪存的很大一部分。 我认为这些都是libc函数。 我不使用这些并希望它们消失! 有谁知道如何删除这些? 我尝试了不同的优化级别和链接器选项但到目前为止没有运气。 我试过-nostdlib和–specs = nosys.specs没有变化。 如果我删除我的文件与_exit等函数的定义我得到一个链接器错误,表明该库仍然包含在内,需要这些。 链接器映射也确认存在许多不需要的function! 有什么建议?