• 文字サイズ変更
  • S
  • M
  • L
  • No : 7526
  • 公開日時 : 2021/06/01 16:30
  • 印刷

【NXP:LPC】 LPC546xxのRNG APIについて

ユーザマニュアルにメインAPIのエントリポイントが0x0300 0238、オフセットが0x2Cと記載されており、この内容を基にプログラムを作成し、RNG APIを実行しようすると正常に動作しません。
0x0300 0238の内容を参照するとRAM領域のアドレスですので、記載内容が間違っていると思います。
正しい内容を教えてください。
カテゴリー : 

回答

ユーザーマニュアル UM10912 Rev. 2.4の記載内容が間違っています。
ROMドライバテーブルのベースアドレスのポインタは、0x0300 0200になり、そのポインタが示す先にROM Driver Tableが格納されています。
また、RNG APIのエントリポインタが格納されているOTP Driverは、ROM Driver Tableのオフセット0x38に格納されています。
つまり、次のような手順でRNG APIのrngReadのエントリポイントを取得します。
・0x0300 0200に格納されている32ビット値をROM Driver Tableのポインタアドレスとする
・ROM Driver Tableに0x38を加算したアドレスに格納されている32ビット値をOTP Driverのポインタアドレスとする
・OTP Driverに0x2Cを加算したアドレスに格納されている32ビット値をrngReadのエントリポイントとする
詳細は、ユーザーマニュアル UM10912 Rev. 2.4のFig 182. OTP driver pointer structureを参照ください。
 
次のリンクからダウンロードいただけるSDKに含まれているdriver_examples / rng / randomプロジェクトがありますので、このサンプルを参考にプログラムを作成することを推奨いたします。
 
NXPには、誤記の修正を依頼しています。

アンケート:ご意見をお聞かせください

ご意見・ご感想をお寄せください お問い合わせを入力されましてもご返信はいたしかねます