IAR定義変数をレジスタに「_regvar」


今日ata 5790をコンパイルするプログラムはmtk 600ほど順調ではありません.もちろんそれは順調ではありません.悲劇的です.はっきり言って、IARというコンパイラに感心した五体投地です.
 
普通の強さではなく、普通の複雑さではなく、普通の使いにくいものではありません.
 
さあ、さあ、本題に戻ります.
 
コンパイルエラーは次のとおりです.
Error[Pa043]: the keyword "__regvar"is not available with the current settings. Registers must be locked with --lock_regs before __regvar can be used C:\Users\pang123hui\Desktop\PKE_ata 5790\main.c 154
 
拡張キーワードを簡単に調べました_regvarは変数をレジスタに定義し、IARコンパイラ内部では一部のワークレジスタが使用され、ユーザに残されたのはR 4-R 15のみで12個のレジスタがユーザに使用され、ワークレジスタを使用するにはエンジニアリングオプションでロックオプションを開かなければならない.
 
プロジェクトオプションでロックオプションを開いていないため、コンパイルエラーが発生しました.
 
例:
 
/* Variable to load the Device type from EEPROM */
__regvar __no_init static UINT8 glDeviceType @5;

/* Flag to indicate the challenge length */
__regvar __no_init static UINT8 glDivChallengeLength @6;

 
この場合、次の図に示すように、Project——>Option——>C/C++Compiler——>Codeで設定します.