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