コードジェネレータに /* Start user code があり、ここでカスタムコードを使用できるのですが、
/*Start user code 部分以外にカスタムコードを挿入したいのです。
/* Start user code 部分以外に挿入しても、「コード生成」で消えてしまうので
生成部分に手をいれて自動で出力するようにできないか?という希望がありました。
e2Studio を調べてみたら、 e2Studioのインストールフォルダ下、eclipse\pluginsに
jarファイルがあり、jarファイルの中に出力するコードのひな形(?)があり、これを修正することでほぼ
目的の出力が得られるようにはなりました。
ただ、このjarファイルはバージョンでファイルが分かれていて、e2Studioが何をもとに
バージョンを選択しているのか分かりません。
ファイルの日付?バージョンの新しいもの?
scfgファイルを見ると、コンポーネントのバージョンが記載されていたので、試しにこれを直接修正してみましたが、
e2StudioのスマートコンフィグレータUIの「概要」に示されるバージョン番号は変わらず。
(これが変更できれぱ、該当のバージョンを使用できるのかも)
jarファイルの中には、plugin.xml ファイルがあり、ここにバージョンがありましたので、こちらもscfgに合わせたバージョンに修正してみました。
このような修正(が出来たとして)は当然サポート外の修正となるのは承知していますが、
CGのコンポーネントバージョン(修正方法)とバージョンに対応するjarファイルの選択の仕組みをご存じの方が見えましたら、情報をお願いします。
実際にそれで動けているならそういう仕組みなんでしょうけど、私ならもう一つ別にスマートコンフィグレータなしプロジェクトを作って、生成されたコードをWinMergeなりで取り込むと思います。その方が分かり易いし安全なので。... って、前に同じこと言ってましたね。(参考) スマートコンフィグで出力されるコードのパスを変更したいhttps://japan.renesasrulz.com/cafe_rene/f/forum5/7832/thread/40862#40862
コード生成で自作の typedef を許していないのでしょうか。https://japan.renesasrulz.com/cafe_rene/f/forum21/7946/typedef/41378#41378
ka.makiharaさん、こんにちは。NoMaYです。すみません、本件そのものについては、私も知らなくて、回答が出来ませんけれども、ちなみに、どのコンポーネントのどの部分に関してなのでしょうか?私が認識していることでは、以下のような点がありますけれども。* #pragma interrupt部分での多重割り込み許可* 割り込みエントリ関数の最初の部分と最後の部分でμITRON(NORTi等)対応のコードを入れたい* 割り込み関数を全体的に書き換えたい(例えば通信系CGコンポーネントでのリングバッファ対応とかスレーブモード処理とか)* 割り込み処理の起動処理(例えば送受信開始処理など)を全体的に書き換えたい)* コンポーネントの初期化処理で独自の初期化処理を追加したい(XXXX_UserInit()ではタイミング的にスッキリしない)* スタートアップ時のコンポーネントの一連の初期化処理と同じタイミングで独自の初期化処理を追加したい* インクルードファイルの順序問題や相互依存問題でテンプレートでのユーザ記述箇所以外に#includeを記述したい
ほやさん、NoMaYさんこんにちは。
ほやさんに教えていただいた、別プロジェクトでやる方法と
以前 NoMay さんが試していた、スマートコンフィグレータでLibを作る方法、を合わせてやってみようかと思っています。
・まずやりたいのは、NORTi の割込み対応コードを入れ込みたい。
・きっかけは、RSPIとI2Cのコンポーネントで、user関数で定義された割込みハンドラに /* start user code がなかったため
ビルド(コード生成)毎に入れ込みたいコードが消えてしまう。
・mispoさんからは、ハンドラ内でauto変数も使用できない、と言われているので、RSPIの割込みハンドラ内の変数をグローバル変数とする。
FITコンポーネントは一度ファイルが生成されると、消去でもしない限り、上書きされない(ヘッダーは変わる)ので
入れ込んだのですが、CGはクリーンビルドでも更新されて消えてしまうので。
消えてしまっても、ビルドエラーにならないので、間違ってリリースしてしまう危険性があり、
何とか自動で入れ込みたいのです。
> CGはクリーンビルドでも更新されて消えてしまうので。これについては .project ファイルから、SCContentBuilder と ScannerConfigBuilder のブロックを外し、Project Nature からも ScannerConfigNature を外してしまえば回避できると思います。↑ 「SmartConfiguratorなしでプロジェクトを作った時の .project と同じにする」という意味です。次にコードを生成する時だけ戻せばOK。
ka.makiharaさん、こんにちは。NoMaYです。ところで、RSPIとI2Cに関してはFITでは駄目だから、という判断なのだと思われるのですが、どういうところが駄目なのでしょう?ちなみに、ライブラリ化うんぬんの件は、たぶん、手助けにならないと思います。それよりは、私が以前に別スレッドにリプライした内容なのですけれども、そちらの方がまだ幾らか手助けになるかもと思うのです。スマート・コンフィグレータ SCIの割り込みjapan.renesasrulz.com/cafe_rene/f/forum21/5875/sci/32854#32854他方、思うに、発端となったミスポさんのNORTiの課題に関しては、割り込みベクタをフックしてCG(やFIT)の割り込みを横取りして事前に(及び事後に)しかるべきNORTiの割り込み管理関数呼び出しを実行出来るようにするフレームワーク的な仕組みを実装する、みたいなやり方が正統的(?)やり方のような気がします。箇条書きにしても意味が伝わらない可能性が高いですが、、、(気分が高揚した時があれば作ってみますが、、、)* 本来のベクタテーブルに加えてフック用ベクタテーブルを用意する* RXマイコンの割り込みベクタテーブルレジスタはフック用ベクタテーブルを指すように値を変更する* フック用ベクタテーブルに登録する処理は以下のようなルーチンです* OS管理外割り込みとするかOS管理割り込みとするか手作業でテーブル(Cソース、もしくは、アセンブラソース)を書き換えて指定するOS管理外割り込み* 本来のベクタテーブルが指す割り込み関数へジャンプするOS管理割り込み* NORTiの割り込み管理関数(入口用)を呼ぶ* PSWと戻り番地をスタックに積んで本来のベクタテーブルが指す割り込み関数へジャンプする(積む理由は割り込み関数の最後がRTE命令だから)* 割り込み関数側でRTE命令が実行されたら此処へ戻ってくる* NORTiの割り込み管理関数(出口用)を呼ぶ* RTE命令(割り込みが発生した時のアドレスへ戻る)あと、まだコードの断片しかありませんが、裏技的に(標準C言語の文法とCC-RXのC言語拡張文法の頓知的バランスの上で)以下のようなコードが利用出来そうな気がします。(変なコンパイルワーニングを我慢すればですけれども。)
/* Start user code for global. Do not edit comment generated here */#define r_Config_RSPI0_transmit_interrupt(...) r_Config_RSPI0_transmit_interrupt(save)/* End user code. Do not edit comment generated here */
#if FAST_INTERRUPT_VECTOR == VECT_RSPI0_SPTI0#pragma interrupt r_Config_RSPI0_transmit_interrupt(vect=VECT(RSPI0,SPTI0),fint)#else#pragma interrupt r_Config_RSPI0_transmit_interrupt(vect=VECT(RSPI0,SPTI0))#endifW0521051: Standard requires that parameter "save" be given a type by a subsequent declaration ("int" assumed)static void r_Config_RSPI0_transmit_interrupt(void){ 略}
/* Start user code for adding. Do not edit comment generated here */#pragma interrupt __r_Config_RSPI0_transmit_interrupt(vect=VECT(RSPI0,SPTI0))#pragma inline_asm _r_Config_RSPI0_transmit_interruptvoid _r_Config_RSPI0_transmit_interrupt(void){ // TODO: PSWと戻り番地をスタックに積む bra.w __$r_Config_RSPI0_transmit_interrupt}void __r_Config_RSPI0_transmit_interrupt(void){ // TODO: NORTiの割り込み管理関数(入口用)を呼ぶ _r_Config_RSPI0_transmit_interrupt(); // TODO: NORTiの割り込み管理関数(出口用)を呼ぶ}/* End user code. Do not edit comment generated here */
以下、TODOが未コーディングの状態での生成コードです。(CC-RX V3.04 標準最適化)
___r_Config_RSPI0_transmit_interrupt: .STACK ___r_Config_RSPI0_transmit_interrupt=36 .RVECTOR 39,___r_Config_RSPI0_transmit_interrupt PUSHM R14-R15 PUSHM R1-R5 ._LINE_TOP inline_asm bra.w __$r_Config_RSPI0_transmit_interrupt ._LINE_END inline_asm POPM R1-R5 POPM R14-R15 RTE
ka.makiharaさん、ほや さん、こんにちは。NoMaYです。> ↑ 「SmartConfiguratorなしでプロジェクトを作った時の .project と同じにする」という意味です。私の経験では、.projectをそのようにしても(少なくともe2 studio 2022-01では)何かの拍子に削除したものが復活してしまい、よろしく無かったです。以下のスレッドに投稿した設定の方が(e2 studio 2022-04でも)具合が良いようです。壊れてしまったAmazon FreeRTOS Renesas RX OTA e2 studioプロジェクトを直してみるスレッドjapan.renesasrulz.com/cafe_rene/f/forum21/8192/amazon-freertos-renesas-rx-ota-e2-studio/42292#42292
NoMaYさん、こんにちは。
残念な話なのですが、FITがダメというわけではなく、最初にこの機能を作成した人がたまたまCGを利用したというだけでして、テストも終わっているので、今からFITに置き換えたくない。という理由なのです。。。
このような小細工(?)をするぐらいなら、さっさとFITに置き換えてもいいんじゃないかと思うのですが。
e2Studioの仕組みを知る亊もできるので、調べつつ(お尋ねしつつ)やっています。
ライブラリ化は、おっしゃる通りなのですが、一度固まってしまえば、exeプロジェクトよりビルドする頻度は大きく減るので、上書きの頻度も下がる、という程度です。
フレームワークを作るのが一番正しそうな気はするのですが、これも残念な理由から、すぐには対処できなさそうなのです。
フレームワークの件で少し質問なのですが、
NORTiの割込み管理関数はハンドラ(Cコード)の入り口、出口に入れますが、
この場合、アセンブラコードを示して頂いたように、PUSHM R14-R15 PUSHM R1-R5 の後に管理関数が入ってきます。
フレームワークの手順の場合、PUSHM の前に管理関数が入ってくる事になりますか?
今回、ミスポさんからは、スマートコンフィグレーターで生成したハンドラ用ということで
管理関数を頂いていまして、#pragma interrupt を使用したハンドラに使用してください、と言われています。
管理関数もアセンブラで記述されていまして、アセンブラに詳しくなくて、
PUSHM との順番が変わってもよいものかどうか、判断しかねています。
裏技、良い手ですね、実はこれが一番現実的なのかもしれない・・・です。
ka.makiharaさん、こんにちは。NoMaYです。> フレームワークの手順の場合、PUSHM の前に管理関数が入ってくる事になりますか?作り方次第ですけれども、NORTiを使う前提でのものですので、今の管理関数がそのまま使えるようにフレームワークを作るようにすれば良いと思ってます。あくまでイメージ的なものですが、以下のようにフックすれば良いと思ってます。OS管理割り込み
PUSHM R14-R15 PUSHM R1-R5 // TODO: NORTiの割り込み管理関数(入口用)を呼ぶ // TODO: PSWと戻り番地をスタックに積んで本来のベクタテーブルが指す割り込み関数へジャンプする(積む理由は割り込み関数の最後がRTE命令だから) // ざっくり書いてますが、やり方は利便性/難易度/小ささの組み合わせでピンキリ(は大げさかも)のレベルの実装がある、だろうなぁ、と思ってます。 // なお、ベクタテーブルを介さず直接ジャンプすることは出来ません。なぜなら、FITもCGもCC-RX版は割り込み関数がstatic宣言になっていますので。 // TODO: NORTiの割り込み管理関数(出口用)を呼ぶ POPM R1-R5 POPM R14-R15 RTE
> ライブラリ化は、おっしゃる通りなのですが、一度固まってしまえば、exeプロジェクトよりビルドする頻度は大きく減るので、上書きの頻度も下がる、という程度です。それから、こちらは、そういう意図でしたか。納得がいきました。[追記]OS管理外割り込みも、1バイト/1クロックでも無駄な命令は削る、という考えをしなければ以下もありと思います、、、(どのみち、ベクタテーブルを介してジャンプする、というコードで何本かはレジスタを使うでしょうし、、、)OS管理外割り込み
PUSHM R14-R15 PUSHM R1-R5 // TODO: PSWと戻り番地をスタックに積んで本来のベクタテーブルが指す割り込み関数へジャンプする(積む理由は割り込み関数の最後がRTE命令だから) POPM R1-R5 POPM R14-R15 RTE
ka.makiharaさん、こんにちは。NoMaYです。フレームワーク的なものですが、コードが思い浮かんで来たので、動きそうかどうか少し試作してみようかと思います。
ka.makiharaさん、こんにちは。NoMaYです。NORTiを所持していない/購入していないので私の方では最終確認は出来ないのですが、たぶん動くのではないかなと思うのです。アセンブラコードは技巧的ですが、サイズ的にはコンパクト(2Kバイトちょっと)になっているかなと思います。CC-RXのインラインアセンブラで記述してあります。RXv1/RXv2/RXv3のアーキテクチャバージョンには依存していません。[追記] 2Kバイトはコンパクトなのか?と突っ込まれるとよくよく考えてみるとそうでも無い気も、、、[ここまで追記]以下、CS+でデバッグ中の画面コピーと肝心な部分のソースです。(肝心な部分は他にはありません。)NORTi_interrupt.c
/* * NORTi_interrupt.c * * Created on: Jun 24, 2022 * Author: NoMaY * License: MIT */ #include "NORTi_interrupt.h" #include <machine.h> static void (* const Int_Hook_Vectors[])(void); void NORTi_INT_HOOK_init(void) { set_intb((void *)Int_Hook_Vectors); } #pragma inline_asm INT_COMMON_nonOS static void INT_COMMON_nonOS(void) { XCHG [SP], R15 ADD #(- (__$hook_entry___0 + 3) + TOPOF C$VECT), R15 // 3 = size of BSR.W MOV.L [R15], R15 XCHG [SP], R15 RTS // i.e. JMP [SP+] } #pragma inline_asm INT_COMMON_NORTi static void INT_COMMON_NORTi(void) { XCHG [SP], R15 PUSH.L R14 PUSHM R1-R5 BSR.W _NORTi_INT_enter PUSHC PSW MOV.L #?+, R14 PUSH.L R14 ADD #(- (__$hook_entry___0 + 3) + TOPOF C$VECT), R15 // 3 = size of BSR.W MOV.L [R15], R15 JMP R15 ?: BSR.W _NORTi_INT_exit POPM R1-R5 POPM R14-R15 RTE } extern void NORTi_INT_enter(void); extern void NORTi_INT_exit(void); static void INT_COMMON_nonOS(void); static void INT_COMMON_NORTi(void); // To prevent the section name symbol `C$VECT` from being optimized out. void * const dummy_VECTTBL = (void *)__sectop("C$VECT"); // To prevent the symbol from being optimized out. void * const dummy_NORTi_INT_enter = (void *)NORTi_INT_enter; void * const dummy_NORTi_INT_exit = (void *)NORTi_INT_exit; void * const dummy_INT_COMMON_nonOS = (void *)INT_COMMON_nonOS; void * const dummy_INT_COMMON_NORTi = (void *)INT_COMMON_NORTi; //#pragma inline_asm hook_entry____ #pragma inline_asm hook_entry___0 #pragma inline_asm hook_entry___1 #pragma inline_asm hook_entry___2 #pragma inline_asm hook_entry___3 #pragma inline_asm hook_entry___4 #pragma inline_asm hook_entry___5 #pragma inline_asm hook_entry___6 #pragma inline_asm hook_entry___7 #pragma inline_asm hook_entry___8 #pragma inline_asm hook_entry___9 #pragma inline_asm hook_entry__10 #pragma inline_asm hook_entry__11 #pragma inline_asm hook_entry__12 #pragma inline_asm hook_entry__13 #pragma inline_asm hook_entry__14 #pragma inline_asm hook_entry__15 #pragma inline_asm hook_entry__16 #pragma inline_asm hook_entry__17 #pragma inline_asm hook_entry__18 #pragma inline_asm hook_entry__19 #pragma inline_asm hook_entry__20 #pragma inline_asm hook_entry__21 #pragma inline_asm hook_entry__22 #pragma inline_asm hook_entry__23 #pragma inline_asm hook_entry__24 #pragma inline_asm hook_entry__25 #pragma inline_asm hook_entry__26 #pragma inline_asm hook_entry__27 #pragma inline_asm hook_entry__28 #pragma inline_asm hook_entry__29 #pragma inline_asm hook_entry__30 #pragma inline_asm hook_entry__31 #pragma inline_asm hook_entry__32 #pragma inline_asm hook_entry__33 #pragma inline_asm hook_entry__34 #pragma inline_asm hook_entry__35 #pragma inline_asm hook_entry__36 #pragma inline_asm hook_entry__37 #pragma inline_asm hook_entry__38 #pragma inline_asm hook_entry__39 #pragma inline_asm hook_entry__40 #pragma inline_asm hook_entry__41 #pragma inline_asm hook_entry__42 #pragma inline_asm hook_entry__43 #pragma inline_asm hook_entry__44 #pragma inline_asm hook_entry__45 #pragma inline_asm hook_entry__46 #pragma inline_asm hook_entry__47 #pragma inline_asm hook_entry__48 #pragma inline_asm hook_entry__49 #pragma inline_asm hook_entry__50 #pragma inline_asm hook_entry__51 #pragma inline_asm hook_entry__52 #pragma inline_asm hook_entry__53 #pragma inline_asm hook_entry__54 #pragma inline_asm hook_entry__55 #pragma inline_asm hook_entry__56 #pragma inline_asm hook_entry__57 #pragma inline_asm hook_entry__58 #pragma inline_asm hook_entry__59 #pragma inline_asm hook_entry__60 #pragma inline_asm hook_entry__61 #pragma inline_asm hook_entry__62 #pragma inline_asm hook_entry__63 #pragma inline_asm hook_entry__64 #pragma inline_asm hook_entry__65 #pragma inline_asm hook_entry__66 #pragma inline_asm hook_entry__67 #pragma inline_asm hook_entry__68 #pragma inline_asm hook_entry__69 #pragma inline_asm hook_entry__70 #pragma inline_asm hook_entry__71 #pragma inline_asm hook_entry__72 #pragma inline_asm hook_entry__73 #pragma inline_asm hook_entry__74 #pragma inline_asm hook_entry__75 #pragma inline_asm hook_entry__76 #pragma inline_asm hook_entry__77 #pragma inline_asm hook_entry__78 #pragma inline_asm hook_entry__79 #pragma inline_asm hook_entry__80 #pragma inline_asm hook_entry__81 #pragma inline_asm hook_entry__82 #pragma inline_asm hook_entry__83 #pragma inline_asm hook_entry__84 #pragma inline_asm hook_entry__85 #pragma inline_asm hook_entry__86 #pragma inline_asm hook_entry__87 #pragma inline_asm hook_entry__88 #pragma inline_asm hook_entry__89 #pragma inline_asm hook_entry__90 #pragma inline_asm hook_entry__91 #pragma inline_asm hook_entry__92 #pragma inline_asm hook_entry__93 #pragma inline_asm hook_entry__94 #pragma inline_asm hook_entry__95 #pragma inline_asm hook_entry__96 #pragma inline_asm hook_entry__97 #pragma inline_asm hook_entry__98 #pragma inline_asm hook_entry__99 #pragma inline_asm hook_entry_100 #pragma inline_asm hook_entry_101 #pragma inline_asm hook_entry_102 #pragma inline_asm hook_entry_103 #pragma inline_asm hook_entry_104 #pragma inline_asm hook_entry_105 #pragma inline_asm hook_entry_106 #pragma inline_asm hook_entry_107 #pragma inline_asm hook_entry_108 #pragma inline_asm hook_entry_109 #pragma inline_asm hook_entry_110 #pragma inline_asm hook_entry_111 #pragma inline_asm hook_entry_112 #pragma inline_asm hook_entry_113 #pragma inline_asm hook_entry_114 #pragma inline_asm hook_entry_115 #pragma inline_asm hook_entry_116 #pragma inline_asm hook_entry_117 #pragma inline_asm hook_entry_118 #pragma inline_asm hook_entry_119 #pragma inline_asm hook_entry_120 #pragma inline_asm hook_entry_121 #pragma inline_asm hook_entry_122 #pragma inline_asm hook_entry_123 #pragma inline_asm hook_entry_124 #pragma inline_asm hook_entry_125 #pragma inline_asm hook_entry_126 #pragma inline_asm hook_entry_127 #pragma inline_asm hook_entry_128 #pragma inline_asm hook_entry_129 #pragma inline_asm hook_entry_130 #pragma inline_asm hook_entry_131 #pragma inline_asm hook_entry_132 #pragma inline_asm hook_entry_133 #pragma inline_asm hook_entry_134 #pragma inline_asm hook_entry_135 #pragma inline_asm hook_entry_136 #pragma inline_asm hook_entry_137 #pragma inline_asm hook_entry_138 #pragma inline_asm hook_entry_139 #pragma inline_asm hook_entry_140 #pragma inline_asm hook_entry_141 #pragma inline_asm hook_entry_142 #pragma inline_asm hook_entry_143 #pragma inline_asm hook_entry_144 #pragma inline_asm hook_entry_145 #pragma inline_asm hook_entry_146 #pragma inline_asm hook_entry_147 #pragma inline_asm hook_entry_148 #pragma inline_asm hook_entry_149 #pragma inline_asm hook_entry_150 #pragma inline_asm hook_entry_151 #pragma inline_asm hook_entry_152 #pragma inline_asm hook_entry_153 #pragma inline_asm hook_entry_154 #pragma inline_asm hook_entry_155 #pragma inline_asm hook_entry_156 #pragma inline_asm hook_entry_157 #pragma inline_asm hook_entry_158 #pragma inline_asm hook_entry_159 #pragma inline_asm hook_entry_160 #pragma inline_asm hook_entry_161 #pragma inline_asm hook_entry_162 #pragma inline_asm hook_entry_163 #pragma inline_asm hook_entry_164 #pragma inline_asm hook_entry_165 #pragma inline_asm hook_entry_166 #pragma inline_asm hook_entry_167 #pragma inline_asm hook_entry_168 #pragma inline_asm hook_entry_169 #pragma inline_asm hook_entry_170 #pragma inline_asm hook_entry_171 #pragma inline_asm hook_entry_172 #pragma inline_asm hook_entry_173 #pragma inline_asm hook_entry_174 #pragma inline_asm hook_entry_175 #pragma inline_asm hook_entry_176 #pragma inline_asm hook_entry_177 #pragma inline_asm hook_entry_178 #pragma inline_asm hook_entry_179 #pragma inline_asm hook_entry_180 #pragma inline_asm hook_entry_181 #pragma inline_asm hook_entry_182 #pragma inline_asm hook_entry_183 #pragma inline_asm hook_entry_184 #pragma inline_asm hook_entry_185 #pragma inline_asm hook_entry_186 #pragma inline_asm hook_entry_187 #pragma inline_asm hook_entry_188 #pragma inline_asm hook_entry_189 #pragma inline_asm hook_entry_190 #pragma inline_asm hook_entry_191 #pragma inline_asm hook_entry_192 #pragma inline_asm hook_entry_193 #pragma inline_asm hook_entry_194 #pragma inline_asm hook_entry_195 #pragma inline_asm hook_entry_196 #pragma inline_asm hook_entry_197 #pragma inline_asm hook_entry_198 #pragma inline_asm hook_entry_199 #pragma inline_asm hook_entry_200 #pragma inline_asm hook_entry_201 #pragma inline_asm hook_entry_202 #pragma inline_asm hook_entry_203 #pragma inline_asm hook_entry_204 #pragma inline_asm hook_entry_205 #pragma inline_asm hook_entry_206 #pragma inline_asm hook_entry_207 #pragma inline_asm hook_entry_208 #pragma inline_asm hook_entry_209 #pragma inline_asm hook_entry_210 #pragma inline_asm hook_entry_211 #pragma inline_asm hook_entry_212 #pragma inline_asm hook_entry_213 #pragma inline_asm hook_entry_214 #pragma inline_asm hook_entry_215 #pragma inline_asm hook_entry_216 #pragma inline_asm hook_entry_217 #pragma inline_asm hook_entry_218 #pragma inline_asm hook_entry_219 #pragma inline_asm hook_entry_220 #pragma inline_asm hook_entry_221 #pragma inline_asm hook_entry_222 #pragma inline_asm hook_entry_223 #pragma inline_asm hook_entry_224 #pragma inline_asm hook_entry_225 #pragma inline_asm hook_entry_226 #pragma inline_asm hook_entry_227 #pragma inline_asm hook_entry_228 #pragma inline_asm hook_entry_229 #pragma inline_asm hook_entry_230 #pragma inline_asm hook_entry_231 #pragma inline_asm hook_entry_232 #pragma inline_asm hook_entry_233 #pragma inline_asm hook_entry_234 #pragma inline_asm hook_entry_235 #pragma inline_asm hook_entry_236 #pragma inline_asm hook_entry_237 #pragma inline_asm hook_entry_238 #pragma inline_asm hook_entry_239 #pragma inline_asm hook_entry_240 #pragma inline_asm hook_entry_241 #pragma inline_asm hook_entry_242 #pragma inline_asm hook_entry_243 #pragma inline_asm hook_entry_244 #pragma inline_asm hook_entry_245 #pragma inline_asm hook_entry_246 #pragma inline_asm hook_entry_247 #pragma inline_asm hook_entry_248 #pragma inline_asm hook_entry_249 #pragma inline_asm hook_entry_250 #pragma inline_asm hook_entry_251 #pragma inline_asm hook_entry_252 #pragma inline_asm hook_entry_253 #pragma inline_asm hook_entry_254 #pragma inline_asm hook_entry_255 #define _INT_COMMON(sel) __$INT_COMMON_##sel #define INT_COMMON(sel) _INT_COMMON(sel) // The code size of the following functions is just four bytes. // 00000000 39rrrr W BRA.W __$XXX // 00000003 02 RTS // Not used. static void hook_entry___0(void) { BSR.W INT_COMMON(INTERRUPT___0) } static void hook_entry___1(void) { BSR.W INT_COMMON(INTERRUPT___1) } static void hook_entry___2(void) { BSR.W INT_COMMON(INTERRUPT___2) } static void hook_entry___3(void) { BSR.W INT_COMMON(INTERRUPT___3) } static void hook_entry___4(void) { BSR.W INT_COMMON(INTERRUPT___4) } static void hook_entry___5(void) { BSR.W INT_COMMON(INTERRUPT___5) } static void hook_entry___6(void) { BSR.W INT_COMMON(INTERRUPT___6) } static void hook_entry___7(void) { BSR.W INT_COMMON(INTERRUPT___7) } static void hook_entry___8(void) { BSR.W INT_COMMON(INTERRUPT___8) } static void hook_entry___9(void) { BSR.W INT_COMMON(INTERRUPT___9) } static void hook_entry__10(void) { BSR.W INT_COMMON(INTERRUPT__10) } static void hook_entry__11(void) { BSR.W INT_COMMON(INTERRUPT__11) } static void hook_entry__12(void) { BSR.W INT_COMMON(INTERRUPT__12) } static void hook_entry__13(void) { BSR.W INT_COMMON(INTERRUPT__13) } static void hook_entry__14(void) { BSR.W INT_COMMON(INTERRUPT__14) } static void hook_entry__15(void) { BSR.W INT_COMMON(INTERRUPT__15) } static void hook_entry__16(void) { BSR.W INT_COMMON(INTERRUPT__16) } static void hook_entry__17(void) { BSR.W INT_COMMON(INTERRUPT__17) } static void hook_entry__18(void) { BSR.W INT_COMMON(INTERRUPT__18) } static void hook_entry__19(void) { BSR.W INT_COMMON(INTERRUPT__19) } static void hook_entry__20(void) { BSR.W INT_COMMON(INTERRUPT__20) } static void hook_entry__21(void) { BSR.W INT_COMMON(INTERRUPT__21) } static void hook_entry__22(void) { BSR.W INT_COMMON(INTERRUPT__22) } static void hook_entry__23(void) { BSR.W INT_COMMON(INTERRUPT__23) } static void hook_entry__24(void) { BSR.W INT_COMMON(INTERRUPT__24) } static void hook_entry__25(void) { BSR.W INT_COMMON(INTERRUPT__25) } static void hook_entry__26(void) { BSR.W INT_COMMON(INTERRUPT__26) } static void hook_entry__27(void) { BSR.W INT_COMMON(INTERRUPT__27) } static void hook_entry__28(void) { BSR.W INT_COMMON(INTERRUPT__28) } static void hook_entry__29(void) { BSR.W INT_COMMON(INTERRUPT__29) } static void hook_entry__30(void) { BSR.W INT_COMMON(INTERRUPT__30) } static void hook_entry__31(void) { BSR.W INT_COMMON(INTERRUPT__31) } static void hook_entry__32(void) { BSR.W INT_COMMON(INTERRUPT__32) } static void hook_entry__33(void) { BSR.W INT_COMMON(INTERRUPT__33) } static void hook_entry__34(void) { BSR.W INT_COMMON(INTERRUPT__34) } static void hook_entry__35(void) { BSR.W INT_COMMON(INTERRUPT__35) } static void hook_entry__36(void) { BSR.W INT_COMMON(INTERRUPT__36) } static void hook_entry__37(void) { BSR.W INT_COMMON(INTERRUPT__37) } static void hook_entry__38(void) { BSR.W INT_COMMON(INTERRUPT__38) } static void hook_entry__39(void) { BSR.W INT_COMMON(INTERRUPT__39) } static void hook_entry__40(void) { BSR.W INT_COMMON(INTERRUPT__40) } static void hook_entry__41(void) { BSR.W INT_COMMON(INTERRUPT__41) } static void hook_entry__42(void) { BSR.W INT_COMMON(INTERRUPT__42) } static void hook_entry__43(void) { BSR.W INT_COMMON(INTERRUPT__43) } static void hook_entry__44(void) { BSR.W INT_COMMON(INTERRUPT__44) } static void hook_entry__45(void) { BSR.W INT_COMMON(INTERRUPT__45) } static void hook_entry__46(void) { BSR.W INT_COMMON(INTERRUPT__46) } static void hook_entry__47(void) { BSR.W INT_COMMON(INTERRUPT__47) } static void hook_entry__48(void) { BSR.W INT_COMMON(INTERRUPT__48) } static void hook_entry__49(void) { BSR.W INT_COMMON(INTERRUPT__49) } static void hook_entry__50(void) { BSR.W INT_COMMON(INTERRUPT__50) } static void hook_entry__51(void) { BSR.W INT_COMMON(INTERRUPT__51) } static void hook_entry__52(void) { BSR.W INT_COMMON(INTERRUPT__52) } static void hook_entry__53(void) { BSR.W INT_COMMON(INTERRUPT__53) } static void hook_entry__54(void) { BSR.W INT_COMMON(INTERRUPT__54) } static void hook_entry__55(void) { BSR.W INT_COMMON(INTERRUPT__55) } static void hook_entry__56(void) { BSR.W INT_COMMON(INTERRUPT__56) } static void hook_entry__57(void) { BSR.W INT_COMMON(INTERRUPT__57) } static void hook_entry__58(void) { BSR.W INT_COMMON(INTERRUPT__58) } static void hook_entry__59(void) { BSR.W INT_COMMON(INTERRUPT__59) } static void hook_entry__60(void) { BSR.W INT_COMMON(INTERRUPT__60) } static void hook_entry__61(void) { BSR.W INT_COMMON(INTERRUPT__61) } static void hook_entry__62(void) { BSR.W INT_COMMON(INTERRUPT__62) } static void hook_entry__63(void) { BSR.W INT_COMMON(INTERRUPT__63) } static void hook_entry__64(void) { BSR.W INT_COMMON(INTERRUPT__64) } static void hook_entry__65(void) { BSR.W INT_COMMON(INTERRUPT__65) } static void hook_entry__66(void) { BSR.W INT_COMMON(INTERRUPT__66) } static void hook_entry__67(void) { BSR.W INT_COMMON(INTERRUPT__67) } static void hook_entry__68(void) { BSR.W INT_COMMON(INTERRUPT__68) } static void hook_entry__69(void) { BSR.W INT_COMMON(INTERRUPT__69) } static void hook_entry__70(void) { BSR.W INT_COMMON(INTERRUPT__70) } static void hook_entry__71(void) { BSR.W INT_COMMON(INTERRUPT__71) } static void hook_entry__72(void) { BSR.W INT_COMMON(INTERRUPT__72) } static void hook_entry__73(void) { BSR.W INT_COMMON(INTERRUPT__73) } static void hook_entry__74(void) { BSR.W INT_COMMON(INTERRUPT__74) } static void hook_entry__75(void) { BSR.W INT_COMMON(INTERRUPT__75) } static void hook_entry__76(void) { BSR.W INT_COMMON(INTERRUPT__76) } static void hook_entry__77(void) { BSR.W INT_COMMON(INTERRUPT__77) } static void hook_entry__78(void) { BSR.W INT_COMMON(INTERRUPT__78) } static void hook_entry__79(void) { BSR.W INT_COMMON(INTERRUPT__79) } static void hook_entry__80(void) { BSR.W INT_COMMON(INTERRUPT__80) } static void hook_entry__81(void) { BSR.W INT_COMMON(INTERRUPT__81) } static void hook_entry__82(void) { BSR.W INT_COMMON(INTERRUPT__82) } static void hook_entry__83(void) { BSR.W INT_COMMON(INTERRUPT__83) } static void hook_entry__84(void) { BSR.W INT_COMMON(INTERRUPT__84) } static void hook_entry__85(void) { BSR.W INT_COMMON(INTERRUPT__85) } static void hook_entry__86(void) { BSR.W INT_COMMON(INTERRUPT__86) } static void hook_entry__87(void) { BSR.W INT_COMMON(INTERRUPT__87) } static void hook_entry__88(void) { BSR.W INT_COMMON(INTERRUPT__88) } static void hook_entry__89(void) { BSR.W INT_COMMON(INTERRUPT__89) } static void hook_entry__90(void) { BSR.W INT_COMMON(INTERRUPT__90) } static void hook_entry__91(void) { BSR.W INT_COMMON(INTERRUPT__91) } static void hook_entry__92(void) { BSR.W INT_COMMON(INTERRUPT__92) } static void hook_entry__93(void) { BSR.W INT_COMMON(INTERRUPT__93) } static void hook_entry__94(void) { BSR.W INT_COMMON(INTERRUPT__94) } static void hook_entry__95(void) { BSR.W INT_COMMON(INTERRUPT__95) } static void hook_entry__96(void) { BSR.W INT_COMMON(INTERRUPT__96) } static void hook_entry__97(void) { BSR.W INT_COMMON(INTERRUPT__97) } static void hook_entry__98(void) { BSR.W INT_COMMON(INTERRUPT__98) } static void hook_entry__99(void) { BSR.W INT_COMMON(INTERRUPT__99) } static void hook_entry_100(void) { BSR.W INT_COMMON(INTERRUPT_100) } static void hook_entry_101(void) { BSR.W INT_COMMON(INTERRUPT_101) } static void hook_entry_102(void) { BSR.W INT_COMMON(INTERRUPT_102) } static void hook_entry_103(void) { BSR.W INT_COMMON(INTERRUPT_103) } static void hook_entry_104(void) { BSR.W INT_COMMON(INTERRUPT_104) } static void hook_entry_105(void) { BSR.W INT_COMMON(INTERRUPT_105) } static void hook_entry_106(void) { BSR.W INT_COMMON(INTERRUPT_106) } static void hook_entry_107(void) { BSR.W INT_COMMON(INTERRUPT_107) } static void hook_entry_108(void) { BSR.W INT_COMMON(INTERRUPT_108) } static void hook_entry_109(void) { BSR.W INT_COMMON(INTERRUPT_109) } static void hook_entry_110(void) { BSR.W INT_COMMON(INTERRUPT_110) } static void hook_entry_111(void) { BSR.W INT_COMMON(INTERRUPT_111) } static void hook_entry_112(void) { BSR.W INT_COMMON(INTERRUPT_112) } static void hook_entry_113(void) { BSR.W INT_COMMON(INTERRUPT_113) } static void hook_entry_114(void) { BSR.W INT_COMMON(INTERRUPT_114) } static void hook_entry_115(void) { BSR.W INT_COMMON(INTERRUPT_115) } static void hook_entry_116(void) { BSR.W INT_COMMON(INTERRUPT_116) } static void hook_entry_117(void) { BSR.W INT_COMMON(INTERRUPT_117) } static void hook_entry_118(void) { BSR.W INT_COMMON(INTERRUPT_118) } static void hook_entry_119(void) { BSR.W INT_COMMON(INTERRUPT_119) } static void hook_entry_120(void) { BSR.W INT_COMMON(INTERRUPT_120) } static void hook_entry_121(void) { BSR.W INT_COMMON(INTERRUPT_121) } static void hook_entry_122(void) { BSR.W INT_COMMON(INTERRUPT_122) } static void hook_entry_123(void) { BSR.W INT_COMMON(INTERRUPT_123) } static void hook_entry_124(void) { BSR.W INT_COMMON(INTERRUPT_124) } static void hook_entry_125(void) { BSR.W INT_COMMON(INTERRUPT_125) } static void hook_entry_126(void) { BSR.W INT_COMMON(INTERRUPT_126) } static void hook_entry_127(void) { BSR.W INT_COMMON(INTERRUPT_127) } static void hook_entry_128(void) { BSR.W INT_COMMON(INTERRUPT_128) } static void hook_entry_129(void) { BSR.W INT_COMMON(INTERRUPT_129) } static void hook_entry_130(void) { BSR.W INT_COMMON(INTERRUPT_130) } static void hook_entry_131(void) { BSR.W INT_COMMON(INTERRUPT_131) } static void hook_entry_132(void) { BSR.W INT_COMMON(INTERRUPT_132) } static void hook_entry_133(void) { BSR.W INT_COMMON(INTERRUPT_133) } static void hook_entry_134(void) { BSR.W INT_COMMON(INTERRUPT_134) } static void hook_entry_135(void) { BSR.W INT_COMMON(INTERRUPT_135) } static void hook_entry_136(void) { BSR.W INT_COMMON(INTERRUPT_136) } static void hook_entry_137(void) { BSR.W INT_COMMON(INTERRUPT_137) } static void hook_entry_138(void) { BSR.W INT_COMMON(INTERRUPT_138) } static void hook_entry_139(void) { BSR.W INT_COMMON(INTERRUPT_139) } static void hook_entry_140(void) { BSR.W INT_COMMON(INTERRUPT_140) } static void hook_entry_141(void) { BSR.W INT_COMMON(INTERRUPT_141) } static void hook_entry_142(void) { BSR.W INT_COMMON(INTERRUPT_142) } static void hook_entry_143(void) { BSR.W INT_COMMON(INTERRUPT_143) } static void hook_entry_144(void) { BSR.W INT_COMMON(INTERRUPT_144) } static void hook_entry_145(void) { BSR.W INT_COMMON(INTERRUPT_145) } static void hook_entry_146(void) { BSR.W INT_COMMON(INTERRUPT_146) } static void hook_entry_147(void) { BSR.W INT_COMMON(INTERRUPT_147) } static void hook_entry_148(void) { BSR.W INT_COMMON(INTERRUPT_148) } static void hook_entry_149(void) { BSR.W INT_COMMON(INTERRUPT_149) } static void hook_entry_150(void) { BSR.W INT_COMMON(INTERRUPT_150) } static void hook_entry_151(void) { BSR.W INT_COMMON(INTERRUPT_151) } static void hook_entry_152(void) { BSR.W INT_COMMON(INTERRUPT_152) } static void hook_entry_153(void) { BSR.W INT_COMMON(INTERRUPT_153) } static void hook_entry_154(void) { BSR.W INT_COMMON(INTERRUPT_154) } static void hook_entry_155(void) { BSR.W INT_COMMON(INTERRUPT_155) } static void hook_entry_156(void) { BSR.W INT_COMMON(INTERRUPT_156) } static void hook_entry_157(void) { BSR.W INT_COMMON(INTERRUPT_157) } static void hook_entry_158(void) { BSR.W INT_COMMON(INTERRUPT_158) } static void hook_entry_159(void) { BSR.W INT_COMMON(INTERRUPT_159) } static void hook_entry_160(void) { BSR.W INT_COMMON(INTERRUPT_160) } static void hook_entry_161(void) { BSR.W INT_COMMON(INTERRUPT_161) } static void hook_entry_162(void) { BSR.W INT_COMMON(INTERRUPT_162) } static void hook_entry_163(void) { BSR.W INT_COMMON(INTERRUPT_163) } static void hook_entry_164(void) { BSR.W INT_COMMON(INTERRUPT_164) } static void hook_entry_165(void) { BSR.W INT_COMMON(INTERRUPT_165) } static void hook_entry_166(void) { BSR.W INT_COMMON(INTERRUPT_166) } static void hook_entry_167(void) { BSR.W INT_COMMON(INTERRUPT_167) } static void hook_entry_168(void) { BSR.W INT_COMMON(INTERRUPT_168) } static void hook_entry_169(void) { BSR.W INT_COMMON(INTERRUPT_169) } static void hook_entry_170(void) { BSR.W INT_COMMON(INTERRUPT_170) } static void hook_entry_171(void) { BSR.W INT_COMMON(INTERRUPT_171) } static void hook_entry_172(void) { BSR.W INT_COMMON(INTERRUPT_172) } static void hook_entry_173(void) { BSR.W INT_COMMON(INTERRUPT_173) } static void hook_entry_174(void) { BSR.W INT_COMMON(INTERRUPT_174) } static void hook_entry_175(void) { BSR.W INT_COMMON(INTERRUPT_175) } static void hook_entry_176(void) { BSR.W INT_COMMON(INTERRUPT_176) } static void hook_entry_177(void) { BSR.W INT_COMMON(INTERRUPT_177) } static void hook_entry_178(void) { BSR.W INT_COMMON(INTERRUPT_178) } static void hook_entry_179(void) { BSR.W INT_COMMON(INTERRUPT_179) } static void hook_entry_180(void) { BSR.W INT_COMMON(INTERRUPT_180) } static void hook_entry_181(void) { BSR.W INT_COMMON(INTERRUPT_181) } static void hook_entry_182(void) { BSR.W INT_COMMON(INTERRUPT_182) } static void hook_entry_183(void) { BSR.W INT_COMMON(INTERRUPT_183) } static void hook_entry_184(void) { BSR.W INT_COMMON(INTERRUPT_184) } static void hook_entry_185(void) { BSR.W INT_COMMON(INTERRUPT_185) } static void hook_entry_186(void) { BSR.W INT_COMMON(INTERRUPT_186) } static void hook_entry_187(void) { BSR.W INT_COMMON(INTERRUPT_187) } static void hook_entry_188(void) { BSR.W INT_COMMON(INTERRUPT_188) } static void hook_entry_189(void) { BSR.W INT_COMMON(INTERRUPT_189) } static void hook_entry_190(void) { BSR.W INT_COMMON(INTERRUPT_190) } static void hook_entry_191(void) { BSR.W INT_COMMON(INTERRUPT_191) } static void hook_entry_192(void) { BSR.W INT_COMMON(INTERRUPT_192) } static void hook_entry_193(void) { BSR.W INT_COMMON(INTERRUPT_193) } static void hook_entry_194(void) { BSR.W INT_COMMON(INTERRUPT_194) } static void hook_entry_195(void) { BSR.W INT_COMMON(INTERRUPT_195) } static void hook_entry_196(void) { BSR.W INT_COMMON(INTERRUPT_196) } static void hook_entry_197(void) { BSR.W INT_COMMON(INTERRUPT_197) } static void hook_entry_198(void) { BSR.W INT_COMMON(INTERRUPT_198) } static void hook_entry_199(void) { BSR.W INT_COMMON(INTERRUPT_199) } static void hook_entry_200(void) { BSR.W INT_COMMON(INTERRUPT_200) } static void hook_entry_201(void) { BSR.W INT_COMMON(INTERRUPT_201) } static void hook_entry_202(void) { BSR.W INT_COMMON(INTERRUPT_202) } static void hook_entry_203(void) { BSR.W INT_COMMON(INTERRUPT_203) } static void hook_entry_204(void) { BSR.W INT_COMMON(INTERRUPT_204) } static void hook_entry_205(void) { BSR.W INT_COMMON(INTERRUPT_205) } static void hook_entry_206(void) { BSR.W INT_COMMON(INTERRUPT_206) } static void hook_entry_207(void) { BSR.W INT_COMMON(INTERRUPT_207) } static void hook_entry_208(void) { BSR.W INT_COMMON(INTERRUPT_208) } static void hook_entry_209(void) { BSR.W INT_COMMON(INTERRUPT_209) } static void hook_entry_210(void) { BSR.W INT_COMMON(INTERRUPT_210) } static void hook_entry_211(void) { BSR.W INT_COMMON(INTERRUPT_211) } static void hook_entry_212(void) { BSR.W INT_COMMON(INTERRUPT_212) } static void hook_entry_213(void) { BSR.W INT_COMMON(INTERRUPT_213) } static void hook_entry_214(void) { BSR.W INT_COMMON(INTERRUPT_214) } static void hook_entry_215(void) { BSR.W INT_COMMON(INTERRUPT_215) } static void hook_entry_216(void) { BSR.W INT_COMMON(INTERRUPT_216) } static void hook_entry_217(void) { BSR.W INT_COMMON(INTERRUPT_217) } static void hook_entry_218(void) { BSR.W INT_COMMON(INTERRUPT_218) } static void hook_entry_219(void) { BSR.W INT_COMMON(INTERRUPT_219) } static void hook_entry_220(void) { BSR.W INT_COMMON(INTERRUPT_220) } static void hook_entry_221(void) { BSR.W INT_COMMON(INTERRUPT_221) } static void hook_entry_222(void) { BSR.W INT_COMMON(INTERRUPT_222) } static void hook_entry_223(void) { BSR.W INT_COMMON(INTERRUPT_223) } static void hook_entry_224(void) { BSR.W INT_COMMON(INTERRUPT_224) } static void hook_entry_225(void) { BSR.W INT_COMMON(INTERRUPT_225) } static void hook_entry_226(void) { BSR.W INT_COMMON(INTERRUPT_226) } static void hook_entry_227(void) { BSR.W INT_COMMON(INTERRUPT_227) } static void hook_entry_228(void) { BSR.W INT_COMMON(INTERRUPT_228) } static void hook_entry_229(void) { BSR.W INT_COMMON(INTERRUPT_229) } static void hook_entry_230(void) { BSR.W INT_COMMON(INTERRUPT_230) } static void hook_entry_231(void) { BSR.W INT_COMMON(INTERRUPT_231) } static void hook_entry_232(void) { BSR.W INT_COMMON(INTERRUPT_232) } static void hook_entry_233(void) { BSR.W INT_COMMON(INTERRUPT_233) } static void hook_entry_234(void) { BSR.W INT_COMMON(INTERRUPT_234) } static void hook_entry_235(void) { BSR.W INT_COMMON(INTERRUPT_235) } static void hook_entry_236(void) { BSR.W INT_COMMON(INTERRUPT_236) } static void hook_entry_237(void) { BSR.W INT_COMMON(INTERRUPT_237) } static void hook_entry_238(void) { BSR.W INT_COMMON(INTERRUPT_238) } static void hook_entry_239(void) { BSR.W INT_COMMON(INTERRUPT_239) } static void hook_entry_240(void) { BSR.W INT_COMMON(INTERRUPT_240) } static void hook_entry_241(void) { BSR.W INT_COMMON(INTERRUPT_241) } static void hook_entry_242(void) { BSR.W INT_COMMON(INTERRUPT_242) } static void hook_entry_243(void) { BSR.W INT_COMMON(INTERRUPT_243) } static void hook_entry_244(void) { BSR.W INT_COMMON(INTERRUPT_244) } static void hook_entry_245(void) { BSR.W INT_COMMON(INTERRUPT_245) } static void hook_entry_246(void) { BSR.W INT_COMMON(INTERRUPT_246) } static void hook_entry_247(void) { BSR.W INT_COMMON(INTERRUPT_247) } static void hook_entry_248(void) { BSR.W INT_COMMON(INTERRUPT_248) } static void hook_entry_249(void) { BSR.W INT_COMMON(INTERRUPT_249) } static void hook_entry_250(void) { BSR.W INT_COMMON(INTERRUPT_250) } static void hook_entry_251(void) { BSR.W INT_COMMON(INTERRUPT_251) } static void hook_entry_252(void) { BSR.W INT_COMMON(INTERRUPT_252) } static void hook_entry_253(void) { BSR.W INT_COMMON(INTERRUPT_253) } static void hook_entry_254(void) { BSR.W INT_COMMON(INTERRUPT_254) } static void hook_entry_255(void) { BSR.W INT_COMMON(INTERRUPT_255) } static void (* const Int_Hook_Vectors[])(void) = { (void (*)(void))hook_entry___0, (void (*)(void))hook_entry___1, (void (*)(void))hook_entry___2, (void (*)(void))hook_entry___3, (void (*)(void))hook_entry___4, (void (*)(void))hook_entry___5, (void (*)(void))hook_entry___6, (void (*)(void))hook_entry___7, (void (*)(void))hook_entry___8, (void (*)(void))hook_entry___9, (void (*)(void))hook_entry__10, (void (*)(void))hook_entry__11, (void (*)(void))hook_entry__12, (void (*)(void))hook_entry__13, (void (*)(void))hook_entry__14, (void (*)(void))hook_entry__15, (void (*)(void))hook_entry__16, (void (*)(void))hook_entry__17, (void (*)(void))hook_entry__18, (void (*)(void))hook_entry__19, (void (*)(void))hook_entry__20, (void (*)(void))hook_entry__21, (void (*)(void))hook_entry__22, (void (*)(void))hook_entry__23, (void (*)(void))hook_entry__24, (void (*)(void))hook_entry__25, (void (*)(void))hook_entry__26, (void (*)(void))hook_entry__27, (void (*)(void))hook_entry__28, (void (*)(void))hook_entry__29, (void (*)(void))hook_entry__30, (void (*)(void))hook_entry__31, (void (*)(void))hook_entry__32, (void (*)(void))hook_entry__33, (void (*)(void))hook_entry__34, (void (*)(void))hook_entry__35, (void (*)(void))hook_entry__36, (void (*)(void))hook_entry__37, (void (*)(void))hook_entry__38, (void (*)(void))hook_entry__39, (void (*)(void))hook_entry__40, (void (*)(void))hook_entry__41, (void (*)(void))hook_entry__42, (void (*)(void))hook_entry__43, (void (*)(void))hook_entry__44, (void (*)(void))hook_entry__45, (void (*)(void))hook_entry__46, (void (*)(void))hook_entry__47, (void (*)(void))hook_entry__48, (void (*)(void))hook_entry__49, (void (*)(void))hook_entry__50, (void (*)(void))hook_entry__51, (void (*)(void))hook_entry__52, (void (*)(void))hook_entry__53, (void (*)(void))hook_entry__54, (void (*)(void))hook_entry__55, (void (*)(void))hook_entry__56, (void (*)(void))hook_entry__57, (void (*)(void))hook_entry__58, (void (*)(void))hook_entry__59, (void (*)(void))hook_entry__60, (void (*)(void))hook_entry__61, (void (*)(void))hook_entry__62, (void (*)(void))hook_entry__63, (void (*)(void))hook_entry__64, (void (*)(void))hook_entry__65, (void (*)(void))hook_entry__66, (void (*)(void))hook_entry__67, (void (*)(void))hook_entry__68, (void (*)(void))hook_entry__69, (void (*)(void))hook_entry__70, (void (*)(void))hook_entry__71, (void (*)(void))hook_entry__72, (void (*)(void))hook_entry__73, (void (*)(void))hook_entry__74, (void (*)(void))hook_entry__75, (void (*)(void))hook_entry__76, (void (*)(void))hook_entry__77, (void (*)(void))hook_entry__78, (void (*)(void))hook_entry__79, (void (*)(void))hook_entry__80, (void (*)(void))hook_entry__81, (void (*)(void))hook_entry__82, (void (*)(void))hook_entry__83, (void (*)(void))hook_entry__84, (void (*)(void))hook_entry__85, (void (*)(void))hook_entry__86, (void (*)(void))hook_entry__87, (void (*)(void))hook_entry__88, (void (*)(void))hook_entry__89, (void (*)(void))hook_entry__90, (void (*)(void))hook_entry__91, (void (*)(void))hook_entry__92, (void (*)(void))hook_entry__93, (void (*)(void))hook_entry__94, (void (*)(void))hook_entry__95, (void (*)(void))hook_entry__96, (void (*)(void))hook_entry__97, (void (*)(void))hook_entry__98, (void (*)(void))hook_entry__99, (void (*)(void))hook_entry_100, (void (*)(void))hook_entry_101, (void (*)(void))hook_entry_102, (void (*)(void))hook_entry_103, (void (*)(void))hook_entry_104, (void (*)(void))hook_entry_105, (void (*)(void))hook_entry_106, (void (*)(void))hook_entry_107, (void (*)(void))hook_entry_108, (void (*)(void))hook_entry_109, (void (*)(void))hook_entry_110, (void (*)(void))hook_entry_111, (void (*)(void))hook_entry_112, (void (*)(void))hook_entry_113, (void (*)(void))hook_entry_114, (void (*)(void))hook_entry_115, (void (*)(void))hook_entry_116, (void (*)(void))hook_entry_117, (void (*)(void))hook_entry_118, (void (*)(void))hook_entry_119, (void (*)(void))hook_entry_120, (void (*)(void))hook_entry_121, (void (*)(void))hook_entry_122, (void (*)(void))hook_entry_123, (void (*)(void))hook_entry_124, (void (*)(void))hook_entry_125, (void (*)(void))hook_entry_126, (void (*)(void))hook_entry_127, (void (*)(void))hook_entry_128, (void (*)(void))hook_entry_129, (void (*)(void))hook_entry_130, (void (*)(void))hook_entry_131, (void (*)(void))hook_entry_132, (void (*)(void))hook_entry_133, (void (*)(void))hook_entry_134, (void (*)(void))hook_entry_135, (void (*)(void))hook_entry_136, (void (*)(void))hook_entry_137, (void (*)(void))hook_entry_138, (void (*)(void))hook_entry_139, (void (*)(void))hook_entry_140, (void (*)(void))hook_entry_141, (void (*)(void))hook_entry_142, (void (*)(void))hook_entry_143, (void (*)(void))hook_entry_144, (void (*)(void))hook_entry_145, (void (*)(void))hook_entry_146, (void (*)(void))hook_entry_147, (void (*)(void))hook_entry_148, (void (*)(void))hook_entry_149, (void (*)(void))hook_entry_150, (void (*)(void))hook_entry_151, (void (*)(void))hook_entry_152, (void (*)(void))hook_entry_153, (void (*)(void))hook_entry_154, (void (*)(void))hook_entry_155, (void (*)(void))hook_entry_156, (void (*)(void))hook_entry_157, (void (*)(void))hook_entry_158, (void (*)(void))hook_entry_159, (void (*)(void))hook_entry_160, (void (*)(void))hook_entry_161, (void (*)(void))hook_entry_162, (void (*)(void))hook_entry_163, (void (*)(void))hook_entry_164, (void (*)(void))hook_entry_165, (void (*)(void))hook_entry_166, (void (*)(void))hook_entry_167, (void (*)(void))hook_entry_168, (void (*)(void))hook_entry_169, (void (*)(void))hook_entry_170, (void (*)(void))hook_entry_171, (void (*)(void))hook_entry_172, (void (*)(void))hook_entry_173, (void (*)(void))hook_entry_174, (void (*)(void))hook_entry_175, (void (*)(void))hook_entry_176, (void (*)(void))hook_entry_177, (void (*)(void))hook_entry_178, (void (*)(void))hook_entry_179, (void (*)(void))hook_entry_180, (void (*)(void))hook_entry_181, (void (*)(void))hook_entry_182, (void (*)(void))hook_entry_183, (void (*)(void))hook_entry_184, (void (*)(void))hook_entry_185, (void (*)(void))hook_entry_186, (void (*)(void))hook_entry_187, (void (*)(void))hook_entry_188, (void (*)(void))hook_entry_189, (void (*)(void))hook_entry_190, (void (*)(void))hook_entry_191, (void (*)(void))hook_entry_192, (void (*)(void))hook_entry_193, (void (*)(void))hook_entry_194, (void (*)(void))hook_entry_195, (void (*)(void))hook_entry_196, (void (*)(void))hook_entry_197, (void (*)(void))hook_entry_198, (void (*)(void))hook_entry_199, (void (*)(void))hook_entry_200, (void (*)(void))hook_entry_201, (void (*)(void))hook_entry_202, (void (*)(void))hook_entry_203, (void (*)(void))hook_entry_204, (void (*)(void))hook_entry_205, (void (*)(void))hook_entry_206, (void (*)(void))hook_entry_207, (void (*)(void))hook_entry_208, (void (*)(void))hook_entry_209, (void (*)(void))hook_entry_210, (void (*)(void))hook_entry_211, (void (*)(void))hook_entry_212, (void (*)(void))hook_entry_213, (void (*)(void))hook_entry_214, (void (*)(void))hook_entry_215, (void (*)(void))hook_entry_216, (void (*)(void))hook_entry_217, (void (*)(void))hook_entry_218, (void (*)(void))hook_entry_219, (void (*)(void))hook_entry_220, (void (*)(void))hook_entry_221, (void (*)(void))hook_entry_222, (void (*)(void))hook_entry_223, (void (*)(void))hook_entry_224, (void (*)(void))hook_entry_225, (void (*)(void))hook_entry_226, (void (*)(void))hook_entry_227, (void (*)(void))hook_entry_228, (void (*)(void))hook_entry_229, (void (*)(void))hook_entry_230, (void (*)(void))hook_entry_231, (void (*)(void))hook_entry_232, (void (*)(void))hook_entry_233, (void (*)(void))hook_entry_234, (void (*)(void))hook_entry_235, (void (*)(void))hook_entry_236, (void (*)(void))hook_entry_237, (void (*)(void))hook_entry_238, (void (*)(void))hook_entry_239, (void (*)(void))hook_entry_240, (void (*)(void))hook_entry_241, (void (*)(void))hook_entry_242, (void (*)(void))hook_entry_243, (void (*)(void))hook_entry_244, (void (*)(void))hook_entry_245, (void (*)(void))hook_entry_246, (void (*)(void))hook_entry_247, (void (*)(void))hook_entry_248, (void (*)(void))hook_entry_249, (void (*)(void))hook_entry_250, (void (*)(void))hook_entry_251, (void (*)(void))hook_entry_252, (void (*)(void))hook_entry_253, (void (*)(void))hook_entry_254, (void (*)(void))hook_entry_255 };
/* * NORTi_interrupt.h * * Created on: Jun 24, 2022 * Author: NoMaY * License: MIT */ #ifndef NORTI_INTERRUPT_H_ #define NORTI_INTERRUPT_H_ // 28 _r_Config_CMT0_cmi0_interrupt #define INTERRUPT___0 nonOS #define INTERRUPT___1 nonOS #define INTERRUPT___2 nonOS #define INTERRUPT___3 nonOS #define INTERRUPT___4 nonOS #define INTERRUPT___5 nonOS #define INTERRUPT___6 nonOS #define INTERRUPT___7 nonOS #define INTERRUPT___8 nonOS #define INTERRUPT___9 nonOS #define INTERRUPT__10 nonOS #define INTERRUPT__11 nonOS #define INTERRUPT__12 nonOS #define INTERRUPT__13 nonOS #define INTERRUPT__14 nonOS #define INTERRUPT__15 nonOS #define INTERRUPT__16 nonOS #define INTERRUPT__17 nonOS #define INTERRUPT__18 nonOS #define INTERRUPT__19 nonOS #define INTERRUPT__20 nonOS #define INTERRUPT__21 nonOS #define INTERRUPT__22 nonOS #define INTERRUPT__23 nonOS #define INTERRUPT__24 nonOS #define INTERRUPT__25 nonOS #define INTERRUPT__26 nonOS #define INTERRUPT__27 nonOS #define INTERRUPT__28 NORTi // _r_Config_CMT0_cmi0_interrupt #define INTERRUPT__29 nonOS #define INTERRUPT__30 nonOS #define INTERRUPT__31 nonOS #define INTERRUPT__32 nonOS #define INTERRUPT__33 nonOS #define INTERRUPT__34 nonOS #define INTERRUPT__35 nonOS #define INTERRUPT__36 nonOS #define INTERRUPT__37 nonOS #define INTERRUPT__38 nonOS #define INTERRUPT__39 nonOS #define INTERRUPT__40 nonOS #define INTERRUPT__41 nonOS #define INTERRUPT__42 nonOS #define INTERRUPT__43 nonOS #define INTERRUPT__44 nonOS #define INTERRUPT__45 nonOS #define INTERRUPT__46 nonOS #define INTERRUPT__47 nonOS #define INTERRUPT__48 nonOS #define INTERRUPT__49 nonOS #define INTERRUPT__50 nonOS #define INTERRUPT__51 nonOS #define INTERRUPT__52 nonOS #define INTERRUPT__53 nonOS #define INTERRUPT__54 nonOS #define INTERRUPT__55 nonOS #define INTERRUPT__56 nonOS #define INTERRUPT__57 nonOS #define INTERRUPT__58 nonOS #define INTERRUPT__59 nonOS #define INTERRUPT__60 nonOS #define INTERRUPT__61 nonOS #define INTERRUPT__62 nonOS #define INTERRUPT__63 nonOS #define INTERRUPT__64 nonOS #define INTERRUPT__65 nonOS #define INTERRUPT__66 nonOS #define INTERRUPT__67 nonOS #define INTERRUPT__68 nonOS #define INTERRUPT__69 nonOS #define INTERRUPT__70 nonOS #define INTERRUPT__71 nonOS #define INTERRUPT__72 nonOS #define INTERRUPT__73 nonOS #define INTERRUPT__74 nonOS #define INTERRUPT__75 nonOS #define INTERRUPT__76 nonOS #define INTERRUPT__77 nonOS #define INTERRUPT__78 nonOS #define INTERRUPT__79 nonOS #define INTERRUPT__80 nonOS #define INTERRUPT__81 nonOS #define INTERRUPT__82 nonOS #define INTERRUPT__83 nonOS #define INTERRUPT__84 nonOS #define INTERRUPT__85 nonOS #define INTERRUPT__86 nonOS #define INTERRUPT__87 nonOS #define INTERRUPT__88 nonOS #define INTERRUPT__89 nonOS #define INTERRUPT__90 nonOS #define INTERRUPT__91 nonOS #define INTERRUPT__92 nonOS #define INTERRUPT__93 nonOS #define INTERRUPT__94 nonOS #define INTERRUPT__95 nonOS #define INTERRUPT__96 nonOS #define INTERRUPT__97 nonOS #define INTERRUPT__98 nonOS #define INTERRUPT__99 nonOS #define INTERRUPT_100 nonOS #define INTERRUPT_101 nonOS #define INTERRUPT_102 nonOS #define INTERRUPT_103 nonOS #define INTERRUPT_104 nonOS #define INTERRUPT_105 nonOS #define INTERRUPT_106 nonOS #define INTERRUPT_107 nonOS #define INTERRUPT_108 nonOS #define INTERRUPT_109 nonOS #define INTERRUPT_110 nonOS #define INTERRUPT_111 nonOS #define INTERRUPT_112 nonOS #define INTERRUPT_113 nonOS #define INTERRUPT_114 nonOS #define INTERRUPT_115 nonOS #define INTERRUPT_116 nonOS #define INTERRUPT_117 nonOS #define INTERRUPT_118 nonOS #define INTERRUPT_119 nonOS #define INTERRUPT_120 nonOS #define INTERRUPT_121 nonOS #define INTERRUPT_122 nonOS #define INTERRUPT_123 nonOS #define INTERRUPT_124 nonOS #define INTERRUPT_125 nonOS #define INTERRUPT_126 nonOS #define INTERRUPT_127 nonOS #define INTERRUPT_128 nonOS #define INTERRUPT_129 nonOS #define INTERRUPT_130 nonOS #define INTERRUPT_131 nonOS #define INTERRUPT_132 nonOS #define INTERRUPT_133 nonOS #define INTERRUPT_134 nonOS #define INTERRUPT_135 nonOS #define INTERRUPT_136 nonOS #define INTERRUPT_137 nonOS #define INTERRUPT_138 nonOS #define INTERRUPT_139 nonOS #define INTERRUPT_140 nonOS #define INTERRUPT_141 nonOS #define INTERRUPT_142 nonOS #define INTERRUPT_143 nonOS #define INTERRUPT_144 nonOS #define INTERRUPT_145 nonOS #define INTERRUPT_146 nonOS #define INTERRUPT_147 nonOS #define INTERRUPT_148 nonOS #define INTERRUPT_149 nonOS #define INTERRUPT_150 nonOS #define INTERRUPT_151 nonOS #define INTERRUPT_152 nonOS #define INTERRUPT_153 nonOS #define INTERRUPT_154 nonOS #define INTERRUPT_155 nonOS #define INTERRUPT_156 nonOS #define INTERRUPT_157 nonOS #define INTERRUPT_158 nonOS #define INTERRUPT_159 nonOS #define INTERRUPT_160 nonOS #define INTERRUPT_161 nonOS #define INTERRUPT_162 nonOS #define INTERRUPT_163 nonOS #define INTERRUPT_164 nonOS #define INTERRUPT_165 nonOS #define INTERRUPT_166 nonOS #define INTERRUPT_167 nonOS #define INTERRUPT_168 nonOS #define INTERRUPT_169 nonOS #define INTERRUPT_170 nonOS #define INTERRUPT_171 nonOS #define INTERRUPT_172 nonOS #define INTERRUPT_173 nonOS #define INTERRUPT_174 nonOS #define INTERRUPT_175 nonOS #define INTERRUPT_176 nonOS #define INTERRUPT_177 nonOS #define INTERRUPT_178 nonOS #define INTERRUPT_179 nonOS #define INTERRUPT_180 nonOS #define INTERRUPT_181 nonOS #define INTERRUPT_182 nonOS #define INTERRUPT_183 nonOS #define INTERRUPT_184 nonOS #define INTERRUPT_185 nonOS #define INTERRUPT_186 nonOS #define INTERRUPT_187 nonOS #define INTERRUPT_188 nonOS #define INTERRUPT_189 nonOS #define INTERRUPT_190 nonOS #define INTERRUPT_191 nonOS #define INTERRUPT_192 nonOS #define INTERRUPT_193 nonOS #define INTERRUPT_194 nonOS #define INTERRUPT_195 nonOS #define INTERRUPT_196 nonOS #define INTERRUPT_197 nonOS #define INTERRUPT_198 nonOS #define INTERRUPT_199 nonOS #define INTERRUPT_200 nonOS #define INTERRUPT_201 nonOS #define INTERRUPT_202 nonOS #define INTERRUPT_203 nonOS #define INTERRUPT_204 nonOS #define INTERRUPT_205 nonOS #define INTERRUPT_206 nonOS #define INTERRUPT_207 nonOS #define INTERRUPT_208 nonOS #define INTERRUPT_209 nonOS #define INTERRUPT_210 nonOS #define INTERRUPT_211 nonOS #define INTERRUPT_212 nonOS #define INTERRUPT_213 nonOS #define INTERRUPT_214 nonOS #define INTERRUPT_215 nonOS #define INTERRUPT_216 nonOS #define INTERRUPT_217 nonOS #define INTERRUPT_218 nonOS #define INTERRUPT_219 nonOS #define INTERRUPT_220 nonOS #define INTERRUPT_221 nonOS #define INTERRUPT_222 nonOS #define INTERRUPT_223 nonOS #define INTERRUPT_224 nonOS #define INTERRUPT_225 nonOS #define INTERRUPT_226 nonOS #define INTERRUPT_227 nonOS #define INTERRUPT_228 nonOS #define INTERRUPT_229 nonOS #define INTERRUPT_230 nonOS #define INTERRUPT_231 nonOS #define INTERRUPT_232 nonOS #define INTERRUPT_233 nonOS #define INTERRUPT_234 nonOS #define INTERRUPT_235 nonOS #define INTERRUPT_236 nonOS #define INTERRUPT_237 nonOS #define INTERRUPT_238 nonOS #define INTERRUPT_239 nonOS #define INTERRUPT_240 nonOS #define INTERRUPT_241 nonOS #define INTERRUPT_242 nonOS #define INTERRUPT_243 nonOS #define INTERRUPT_244 nonOS #define INTERRUPT_245 nonOS #define INTERRUPT_246 nonOS #define INTERRUPT_247 nonOS #define INTERRUPT_248 nonOS #define INTERRUPT_249 nonOS #define INTERRUPT_250 nonOS #define INTERRUPT_251 nonOS #define INTERRUPT_252 nonOS #define INTERRUPT_253 nonOS #define INTERRUPT_254 nonOS #define INTERRUPT_255 nonOS #endif /* NORTI_INTERRUPT_H_ */
#include "r_smc_entry.h" #include "tbrx140def.h" void NORTi_INT_HOOK_init(void); void NORTi_INT_enter(void); void NORTi_INT_exit(void); void NORTi_INT_enter(void) { nop(); } void NORTi_INT_exit(void) { nop(); } void main(void); void main(void) { NORTi_INT_HOOK_init(); LED0 = LED_OFF; LED1 = LED_OFF; if (SW1_PUSH == SW1) /*SW1_PUSH = Manual Mode, Other = Auto Mode*/ { R_Config_ICU_IRQ0_Start(); } else { R_Config_CMT0_Start(); } while(1) { ; /* Blink LED0, LED1 Alternately by Interrupt */ } }