ARM cpu 系の soft 開発において gcc で compile した場合, GPL の関係で -nostdlib を指定して標準 library を link しない様にした時に mul や div 系が undefine でエラーになる。その時は以下を compile し link すれば良い
https://github.com/bobbl/libaeabi-cortexm0
今回 ArmBootloader の kinetis 系の bootloader は NXP (旧 Freescale) のものをそのまま利用をする事にした. (以前は binary size を小くする事を考え独自作成を考えたが、互換性など担保するのが大変なのと、すでに存在する物を新たに作成するのはもったいないので変更). その中で掛け算、割り算が使われている為に起こる. 以前は独自実装の ldiv などを使用していたが折角なので使用させていただくことに. License は何か主流なのを持ってきた物ではないが MIT license に近いのではないかと思われる. とりあえず notice 系をちゃんと残しておけば良く, その他の file への license 感染はない.
また、gcc の optimize option に -Os があるが、これを指定すると
"undefined references to `__gnu_thumb1_case_uqi' " が出る、if -- else if -- 方から関数 pointer の配列型にするっぽいが、此れに対しては
https://chromium.googlesource.com/chromiumos/platform/ec/+/v1.9.0/core/cortex-m0
を使用させていただく事にした. file 中に License 事項が書いてあるが BSD style だと言う事だ.
他にも色々あると思われるが, ググって最初の方に出てきたので, そのまま使用する