Nat*_*ate 8 c embedded microcontroller pointers function-pointers
我想知道嵌入式领域的开发人员是否知道任何有趣的技巧来帮助减轻堆栈空间非常有限的微控制器开发的痛苦.我最近为8位UC(Microchip PIC18F系列,31字节堆栈)编写了一些固件,因此我不得不压缩程序并减少传递给函数的参数数量.我也试图最小化我对较大局部变量的依赖.扁平化旨在将更少的东西放在堆栈上,减少局部变量有助于节省RAM中"自动变量"程序部分(psect)中的空间.我知道,哈佛建筑并不好玩,但这正是我正在处理的问题.我注意到从ISR深入调用多个函数的问题,这可能是我的堆栈窗口受IRQ上下文保存影响的结果.我知道我正在使用限制性架构,但我想知道是否有人有任何减少头痛的技巧.我尽可能使用指针和边界检查,但我确信有一些我没有发现自己的智慧.作为免责声明,我目前正在使用函数指针来促进状态机.我觉得我正在走90线虚空函数和实际使用函数的代码之间走钢丝.m目前正在使用函数指针来方便状态机.我觉得我正在走90线虚空函数和实际使用函数的代码之间走钢丝.m目前正在使用函数指针来方便状态机.我觉得我正在走90线虚空函数和实际使用函数的代码之间走钢丝.
使用register参数和本地变量.当然,根据处理器中可用的寄存器数量和编译器生成的代码质量,这可能完全没有任何好处.static尽可能地声明本地人.这将使它们不被分配到堆栈中.