[86] | 1 | =====================================================================
|
---|
[421] | 2 | LPCXPRESSO-LPC812ターゲット依存部 (ssp-1.3.0対応)
|
---|
[86] | 3 | Last Modified: '15/05/22
|
---|
| 4 | =====================================================================
|
---|
| 5 |
|
---|
[421] | 6 | ○概要
|
---|
[86] | 7 |
|
---|
[421] | 8 | LPCXPRESSO-LPC812ターゲット依存部は,プロセッサにLPC812(Cortex-M0+)を搭載した,
|
---|
| 9 | LPCXpresso LPC812ボードをサポートしている.
|
---|
[86] | 10 |
|
---|
| 11 |
|
---|
[421] | 12 | ○カーネルの使用リソース
|
---|
[86] | 13 |
|
---|
[421] | 14 | カーネルは以下のリソースを使用する.
|
---|
[86] | 15 |
|
---|
[421] | 16 | ・ROM
|
---|
| 17 | コードを配置する.
|
---|
| 18 | 使用量は使用するAPIの数に依存する.
|
---|
[86] | 19 |
|
---|
[421] | 20 | ・RAM
|
---|
| 21 | データを配置する.
|
---|
| 22 | 使用量はオブジェクト数に依存する.
|
---|
[86] | 23 |
|
---|
[421] | 24 | ・SysTick
|
---|
| 25 | カーネル内部のティックの生成に用いる.
|
---|
[86] | 26 |
|
---|
[421] | 27 | ・Universal Synchronous Asynchronous Receiver Transmitter(USART)ポート0
|
---|
| 28 | コンソールの出力に使用.
|
---|
[86] | 29 |
|
---|
| 30 |
|
---|
[421] | 31 | ○他のターゲットへの移植
|
---|
[86] | 32 |
|
---|
[421] | 33 | LPCXPRESSO-LPC812ターゲット依存部で使用するシリアルは,LPC812の内蔵機能のみを使用するため,
|
---|
| 34 | LPC800系のCotex-M0+を用いた環境には容易にポーティングが可能である.
|
---|
| 35 | ポーティングに関しては,以下の初期化ルーチンにターゲット毎の初期化を追加すればよい.
|
---|
[86] | 36 |
|
---|
[421] | 37 | ・target_initialize() : target_config.c
|
---|
| 38 | ターゲット依存部の初期化(C言語)
|
---|
| 39 | ・_hardware_init_hook : target_support.S
|
---|
| 40 | 低レベルのターゲット依存の初期化
|
---|
| 41 | スタートアップモジュールの中で,メモリの初期化の前に呼び出される
|
---|
[86] | 42 |
|
---|
| 43 |
|
---|
[421] | 44 | ○デバッグ環境
|
---|
[86] | 45 |
|
---|
[421] | 46 | デバッグ環境としては,LPCXpresso LPC812に搭載されるSWDデバッガおよび
|
---|
| 47 | 開発およびデバッグの環境として LPCXpresso IDE の使用を前提とする.
|
---|
[86] | 48 |
|
---|
[421] | 49 | LPCXpresso IDEについては、以下のサイトを参照
|
---|
[86] | 50 | http://www.lpcware.com/lpcxpresso/home
|
---|
| 51 |
|
---|
| 52 |
|
---|
[421] | 53 | ○コンパイラ
|
---|
[86] | 54 |
|
---|
[421] | 55 | GCC で動作確認を行った.GCC は,LPCXpresso IDEに同梱されているものを利用した.
|
---|
| 56 | 動作確認に使用したツールのバージョンは以下のとおり.
|
---|
| 57 | ・GCC 4.9.3(LPCXpresso IDE 7.7.2)
|
---|
[86] | 58 |
|
---|
[421] | 59 | GCC については,同等のツールが以下のサイトからも入手することが可能である.
|
---|
[86] | 60 | https://launchpad.net/gcc-arm-embedded/
|
---|
| 61 |
|
---|
[421] | 62 | ○割込み優先度
|
---|
[86] | 63 |
|
---|
[421] | 64 | 割込み優先度として指定可能な範囲は,-3 〜 -1 である.
|
---|
[86] | 65 |
|
---|
[421] | 66 | ○コンソール出力
|
---|
[86] | 67 |
|
---|
[421] | 68 | コンソール出力には,USART0を用いる.LPCXPRESSO-LPC812はRS232Cポートを
|
---|
| 69 | 搭載していないため,ユニバーサル基板などを用いて当該ポートをPCに接続する
|
---|
| 70 | 必要がある.その際,RS-232Cドライバを介する必要がある点も注意すること.
|
---|
| 71 | USART0の送信/受信ピンはSWMの機能により自由に設定が可能であるが,
|
---|
| 72 | 既定ではP0_0(RXD), P0_4(TXD) に設定されている.
|
---|
[86] | 73 |
|
---|
[421] | 74 | 通信フォーマットは以下の通りである.
|
---|
[86] | 75 |
|
---|
[421] | 76 | ・19200bps, Data 8bit, Parity none, Stop 1bit, Flow control none
|
---|
[86] | 77 |
|
---|
[421] | 78 | ○アドレスマッピング
|
---|
[86] | 79 |
|
---|
[421] | 80 | 0x00000000 - 0x00003FFF 内蔵FlashROM 16KB
|
---|
| 81 | ・vectorセクション
|
---|
| 82 | ・textセクション
|
---|
| 83 | ・rodataセクション
|
---|
| 84 | 0x10000000 - 0x10000FFF 内蔵RAM 4KB
|
---|
| 85 | ・dataセクション
|
---|
| 86 | ・bssセクション
|
---|
[86] | 87 |
|
---|
[421] | 88 | ○各種設定の変更
|
---|
[86] | 89 |
|
---|
[421] | 90 | 幾つかのパラメータは変更可能になっている.設定ファイル毎に設定可能項目
|
---|
| 91 | は次のようになっている.
|
---|
[86] | 92 |
|
---|
[421] | 93 | ●Makefile.target の設定項目
|
---|
[86] | 94 |
|
---|
[421] | 95 | ・GCC_TARGET
|
---|
| 96 | GCCの suffix を定義
|
---|
[86] | 97 |
|
---|
[421] | 98 | ・TEXT_START_ADDRESS/DATA_START_ADDRESS
|
---|
| 99 | テキストセクション,データセクションの開始アドレス
|
---|
[86] | 100 |
|
---|
[421] | 101 | ・INCLUDES
|
---|
| 102 | インクルード指定
|
---|
[86] | 103 |
|
---|
[421] | 104 | ・COPTS
|
---|
| 105 | Cコンパイラへのオプション
|
---|
[86] | 106 |
|
---|
[421] | 107 | ・LDFLAGS
|
---|
| 108 | リンカへのオプション
|
---|
[86] | 109 |
|
---|
[421] | 110 | ・USE_CMSIS
|
---|
| 111 | CMSISを利用する場合,trueに設定する.
|
---|
| 112 | デバイス定義ファイルLPC8xx.h を include してデバイスレジスタ定義を利用することが可能となる.
|
---|
| 113 | そのためには,インクルードファイルのサーチディレクトリとして LPC8xx.h の存在するファイルのパスを
|
---|
| 114 | CMSIS_INCLUDE_PATHに指定する (もしくは,LPCXpresso IDE でサーチパスの設定をしても良い)
|
---|
[86] | 115 |
|
---|
[421] | 116 | また,ライブラリファイル(libCMSIS_CORE_LPC8xx.a)の利用は想定していない.
|
---|
| 117 | 少なくともsystem_LPC8xx.c の SystemInit に相当する処理(クロック設定)については
|
---|
| 118 | SSPのシステム起動時に実施しており,基本的に呼び出す必要はない.
|
---|
| 119 | ※ WDTの初期設定はおこなっていないため,必要ならば初期化が必要である.
|
---|
[86] | 120 |
|
---|
[421] | 121 | ・USE_MTB
|
---|
| 122 | LPC800シリーズに搭載されているMTB(Micro Trace Buffer)を利用する場合,trueに設定する
|
---|
| 123 | その場合,バッファのサイズを MTB_BUF_SIZE に,バイト単位で設定する
|
---|
[86] | 124 |
|
---|
[421] | 125 | ●target_config.h の設定項目
|
---|
[86] | 126 |
|
---|
[421] | 127 | ・DEFAULT_ISTKSZ
|
---|
| 128 | デフォルトの非タスクコンテキスト用のスタックサイズ
|
---|
[86] | 129 |
|
---|
[421] | 130 | ・SIL_DLY_TIM1/2 (現時点では未検証)
|
---|
| 131 | 微少時間待ちのための定義
|
---|
[86] | 132 |
|
---|
[421] | 133 | ●target_syssvc.h の設定項目
|
---|
[86] | 134 |
|
---|
[421] | 135 | ・UART_BAUDRATE
|
---|
| 136 | コンソールに使用するポート(USART0)のボーレート
|
---|
[86] | 137 |
|
---|
| 138 |
|
---|
[421] | 139 | ○変更履歴
|
---|
| 140 | ・2015/05/21
|
---|
| 141 | ・ssp-1.3.0対応
|
---|
[86] | 142 |
|
---|
[421] | 143 | ・2013/06/19
|
---|
| 144 | 新規作成
|
---|