日別アーカイブ: 2014年11月27日

MPLAB C18の最適化

C18のヘルプより

Optimizations will not occur on any function containing inline assembly code. 

関数内にインラインアセンブラを記述すると、関数全体が最適化の対象でなくなるという制限。 nop() なんかは実際はインラインアセンブラのマクロだったりするので、気軽に nop() を挟むと実は最適化されないという罠。nop() を1個追加しただけで “can not fit the section” なるエラーになったので何事かと思った次第。