4: 2010-03-07 (日) 00:39:31 takaboo | 現: 2018-03-11 (日) 10:56:28 takaboo | ||
---|---|---|---|
Line 11: | Line 11: | ||
弊社提供の[[GCC Developer Lite]]最新版のインストール先に「C:\Program Files\BestTech」フォルダを指定し、インストールコンポーネントとして「AT91SAM7Sシリーズでのみ使用」または「AT91SAM7Xシリーズでのみ使用」、もしくは「フルインストール」が選択されている必要があります。 | 弊社提供の[[GCC Developer Lite]]最新版のインストール先に「C:\Program Files\BestTech」フォルダを指定し、インストールコンポーネントとして「AT91SAM7Sシリーズでのみ使用」または「AT91SAM7Xシリーズでのみ使用」、もしくは「フルインストール」が選択されている必要があります。 | ||
- | ソースをダウンロードし適宜解凍したら、MAKE_BL.BATを実行します。 | + | ソースをダウンロードし適宜解凍したら、MAKE_AND_WRITEL.BATを実行します。 |
- | ターゲットを大文字で入力(S512,S256,S128,S64,S32,X512,X256,X128): | + | ターゲットを大文字で入力(S512,S256,S128,S64,S32,SE512,SE256,SE32,X512,X256,X128): |
AT91SAM7S256のUSBポートを使用したブートローダをコンパイルするものとするならば、ターゲット名として''S256''と入力しエンターキーを押します。 | AT91SAM7S256のUSBポートを使用したブートローダをコンパイルするものとするならば、ターゲット名として''S256''と入力しエンターキーを押します。 | ||
- | ターゲットを大文字で入力(S512,S256,S128,S64,S32,X512,X256,X128): S256 | + | ターゲットを大文字で入力(S512,S256,S128,S64,S32,SE512,SE256,SE32,X512,X256,X128): S256 |
使用するコミュニケーションポートを大文字で入力(DBGU,DBGU2,US0,US1,USB): | 使用するコミュニケーションポートを大文字で入力(DBGU,DBGU2,US0,US1,USB): | ||
次に、使用するコンソールポートに応じてポート名を入力します。USBポートを使用しますので、''USB''と入力しエンターキーを押します。 | 次に、使用するコンソールポートに応じてポート名を入力します。USBポートを使用しますので、''USB''と入力しエンターキーを押します。 | ||
- | ターゲットを大文字で入力(S512,S256,S128,S64,S32,X512,X256,X128): S256 | + | ターゲットを大文字で入力(S512,S256,S128,S64,S32,SE512,SE256,SE32,X512,X256,X128): S256 |
使用するコミュニケーションポートを大文字で入力(DBGU,DBGU2,US0,US1,USB): USB | 使用するコミュニケーションポートを大文字で入力(DBGU,DBGU2,US0,US1,USB): USB | ||
TARGET : AT91SAM7S256 | TARGET : AT91SAM7S256 | ||
Line 27: | Line 27: | ||
サイズ確認... | サイズ確認... | ||
text data bss dec hex filename | text data bss dec hex filename | ||
- | 7870 0 1944 9814 2656 ./out/AT91SAM7S256_USB_BOOTLOADER.elf | + | 8005 0 6612 14617 3919 ./out/AT91SAM7S256_USB_BOOTLOADER.elf |
1 個のファイルをコピーしました。 | 1 個のファイルをコピーしました。 | ||
COMPLIE OK !!! | COMPLIE OK !!! | ||
Line 34: | Line 34: | ||
JTAGにてブートプログラムを書き込みます エンターキーを押して下さい | JTAGにてブートプログラムを書き込みます エンターキーを押して下さい | ||
- | Open On-Chip Debugger 0.2.0-in-development (2009-06-19-17:40) svn:2290 | + | Open On-Chip Debugger 0.10.0-dev-00363-ga7984ee (2016-08-14-16:38) |
- | + | Licensed under GNU GPL v2 | |
- | + | For bug reports, read | |
- | BUGS? Read http://svn.berlios.de/svnroot/repos/openocd/trunk/BUGS | + | http://openocd.org/doc/doxygen/bugs.html |
- | + | adapter speed: 1000 kHz | |
- | + | Info : only one transport option; autoselect 'jtag' | |
- | $URL: svn://svn.berlios.de/openocd/trunk/src/openocd.c $ | + | srst_only srst_pulls_trst srst_gates_jtag srst_open_drain connect_deassert_srst |
- | OLD SYNTAX: DEPRECATED - translating to new syntax | + | Warn : Using DEPRECATED interface driver 'ft2232' |
- | jtag newtap CHIP TAP -irlen 4 -ircapture 0x1 -irvalue 0xf | + | Info : Consider using the 'ftdi' interface driver, with configuration files in interface/ftdi/... |
- | Example: STM32 has 2 taps, the cortexM3(len4) + boundaryscan(len5) | + | Info : clock speed 1000 kHz |
- | jtag newtap stm32 cortexm3 ....., thus creating the tap: "stm32.cortexm3" | + | Info : JTAG tap: sam7.cpu tap/device found: 0x3f0f0f0f (mfg: 0x787 (<unknown>), part: 0xf0f0, ver: 0x3) |
- | jtag newtap stm32 boundary ....., and the tap: "stm32.boundary" | + | Info : Embedded ICE version 1 |
- | And then refer to the taps by the dotted name. | + | Info : sam7.cpu: hardware has 2 breakpoint/watchpoint units |
- | NEW COMMAND: | + | adapter speed: 31 kHz |
- | 1000 kHz | + | dcc downloads are enabled |
- | Info : device: 4 | + | fast memory access is enabled |
- | Info : deviceID: 67330064 | + | Info : JTAG tap: sam7.cpu tap/device found: 0x3f0f0f0f (mfg: 0x787 (<unknown>), part: 0xf0f0, ver: 0x3) |
- | Info : SerialNumber: 12345678A | + | |
- | Info : Description: TINY JTAG-ICE A | + | |
- | Info : JTAG tap: chip0.tap0 tap/device found: 0x3f0f0f0f (mfg: 0x787, part: 0xf0f0, ver: 0x3) | + | |
- | Info : JTAG tap: chip0.tap0 tap/device found: 0x3f0f0f0f (mfg: 0x787, part: 0xf0f0, ver: 0x3) | + | |
Warn : srst pulls trst - can not reset into halted mode. Issuing halt after reset. | Warn : srst pulls trst - can not reset into halted mode. Issuing halt after reset. | ||
- | target state: halted | + | sam7.cpu: target state: halted |
- | target halted in ARM state due to debug-request, current mode: Supervisor cpsr: 0x20000093 pc: 0x000000a4 | + | target halted in ARM state due to debug-request, current mode: Supervisor |
- | requesting target halt and executing a soft reset | + | cpsr: 0x200000d3 pc: 0x00000000 |
- | target state: halted | + | adapter speed: 31 kHz |
- | target halted in ARM state due to debug-request, current mode: Supervisor cpsr: 0x200000d3 pc: 0x00000000 | + | adapter speed: 1000 kHz |
- | cleared protection for sectors 0 through 7 on flash bank 0 | + | |
- | cleared protection for sectors 0 through 15 on flash bank 0 | + | |
- | Error: failed setting protection for areas 0 to 31 (-901) | + | |
- | dcc downloads are enabled | + | |
auto erase enabled | auto erase enabled | ||
- | Info : Padding image section 0 with 0 bytes | + | auto unlock enabled |
- | Info : Padding image section 1 with 2 bytes | + | Info : Padding image section 0 with 12 bytes |
- | wrote 7872 byte from file ./out/termsam7.elf in 3.114000s (2.468690 kb/s) | + | Info : Padding image section 1 with 3 bytes |
- | verified 7870 bytes in 0.356000s | + | wrote 16384 bytes from file ./out/termsam7.elf in 3.319574s (4.820 KiB/s) |
- | gpnvm bit '#2' is out of bounds for target AT91SAM7S512 | + | verified 8005 bytes in 0.179060s (43.658 KiB/s) |
- | Info : JTAG tap: chip0.tap0 tap/device found: 0x3f0f0f0f (mfg: 0x787, part: 0xf0f0, ver: 0x3) | + | Info : JTAG tap: sam7.cpu tap/device found: 0x3f0f0f0f (mfg: 0x787 (<unknown>), part: 0xf0f0, ver: 0x3) |
Warn : srst pulls trst - can not reset into halted mode. Issuing halt after reset. | Warn : srst pulls trst - can not reset into halted mode. Issuing halt after reset. | ||
- | target state: halted | + | sam7.cpu: target state: halted |
- | target halted in ARM state due to debug-request, current mode: Supervisor cpsr: 0x400000d3 pc: 0x00000000 | + | target halted in ARM state due to debug-request, current mode: Supervisor |
+ | cpsr: 0x000000d3 pc: 0x00000000 | ||
+ | adapter speed: 31 kHz | ||
+ | Info : JTAG tap: sam7.cpu tap/device found: 0x3f0f0f0f (mfg: 0x787 (<unknown>), part: 0xf0f0, ver: 0x3) | ||
+ | shutdown command invoked | ||
■■■■■■ | ■■■■■■ | ||
成功!! | 成功!! | ||
Line 80: | Line 76: | ||
続行するには何かキーを押してください . . . | 続行するには何かキーを押してください . . . | ||
- | JTAGで接続する環境が無い場合は、マイコンボードをSAM-BAモードにしFLASH WRITERを使用してoutフォルダから手動でコンパイル済みファイルを選択して書き込みます。 | + | JTAGで接続する環境が無い場合は、マイコンボードをSAM-BAモードにしFLASH WRITERやATMEL社の[[SAM-BA>http://www.microchip.com/DevelopmentTools/ProductDetails.aspx?PartNO=Atmel%20SAM-BA%20In-system%20Programmer]]を使用してoutフォルダから手動でコンパイル済みファイルを選択して書き込みます。 |
#ref(fw_sambamode.png,100%) | #ref(fw_sambamode.png,100%) | ||
コンパイル済みのファイルは、AT91SAM7[選択したターゲット]_[選択したポート]_BOOTLOADER.bin という名称で作られ、例えばAT91SAM7S256マイコンボードをUSBで使用する場合は AT91SAM7S256_USB_BOOTLOADER.bin を選択します。 | コンパイル済みのファイルは、AT91SAM7[選択したターゲット]_[選択したポート]_BOOTLOADER.bin という名称で作られ、例えばAT91SAM7S256マイコンボードをUSBで使用する場合は AT91SAM7S256_USB_BOOTLOADER.bin を選択します。 | ||
***ソース及びコンパイル済みバイナリのダウンロード [#DOWNLOAD] | ***ソース及びコンパイル済みバイナリのダウンロード [#DOWNLOAD] | ||
+ | #ref(SAM7_BL_2.7.ZIP) | ||
+ | バージョン: 2.7~ | ||
+ | 公開日: 2016/8/24~ | ||
+ | 更新内容:未リリース版GCC Developer Liteにてコンパイルできるよう調整~ | ||
+ | USB選択時にXMODEME-1Kが正常動作しない不具合を修正~ | ||
+ | RTTを使用した時間待ちルーチンが挙動が不安定なのでPITのインターバル割り込みで代用~ | ||
+ | ターゲットとしてSAM7SE追加 | ||
+ | |||
+ | #ref(SAM7_BL_2.5.ZIP) | ||
+ | バージョン: 2.5~ | ||
+ | 公開日: 2013/8/21~ | ||
+ | 更新内容:GCC Developer Lite Ver.2.5.1.0にてコンパイルできるよう調整~ | ||
+ | USB接続時の仮想COMポートのOPEN/CLOSE判定を中止~ | ||
+ | コマンドモードへのエントリーをハードリセット信号(リセットボタン)に変更~ | ||
+ | DUMPコマンド追加 | ||
+ | |||
+ | #ref(SAM7_BL_2.2.ZIP) | ||
+ | バージョン: 2.2~ | ||
+ | 公開日: 2010/4/16~ | ||
+ | 更新内容:GCC Developer Lite Ver.2.3.2.0リリース版にてコンパイルできるよう調整~ | ||
+ | RTTによるウェイト処理が時折おかしくなる様なので処理方法を変更 | ||
+ | |||
#ref(SAM7_BL_2.11.ZIP) | #ref(SAM7_BL_2.11.ZIP) | ||
バージョン: 2.11~ | バージョン: 2.11~ | ||
公開日: 2010/3/7~ | 公開日: 2010/3/7~ | ||
- | 注意事項:GCC 4.3.3においてフラッシュが512kバイトのターゲットを構築すると想定サイズを超えてしまうため、一部マクロを調整 | + | 更新内容:GCC 4.3.3においてフラッシュが512kバイトのターゲットを構築すると想定サイズを超えてしまうため、一部マクロを調整 |
#ref(SAM7_BL_2.1.ZIP) | #ref(SAM7_BL_2.1.ZIP) | ||
バージョン: 2.1~ | バージョン: 2.1~ | ||
公開日: 2010/2/16~ | 公開日: 2010/2/16~ | ||
- | 注意事項:GCC Developer Lite Ver2.3.2.0以降で再構築可能 | + | 更新内容:GCC Developer Lite Ver2.3.2.0以降で再構築可能 |
#ref(SAM7_BL_2.0.ZIP) | #ref(SAM7_BL_2.0.ZIP) | ||
Line 116: | Line 134: | ||
***注意事項 [#yd5c9d45] | ***注意事項 [#yd5c9d45] | ||
-ブートローダ自身は単純なローダに過ぎませんので、GDB等のデバッガとの接続は考慮されていません。 | -ブートローダ自身は単純なローダに過ぎませんので、GDB等のデバッガとの接続は考慮されていません。 | ||
+ | -Ver2.5よりも前とそれ以後ではコマンドモードへの入り方が異なります。 | ||
-2009年6月以降に出荷されるAT91SAM7S256, AT91SAM7S512, AT91SAM7X512マイコンボードにおいては、USB接続のブートローダが書き込まれます。 | -2009年6月以降に出荷されるAT91SAM7S256, AT91SAM7S512, AT91SAM7X512マイコンボードにおいては、USB接続のブートローダが書き込まれます。 | ||
-2009年6月以降に出荷されるAT91SAM7S32マイコンボードにおいては、DBGU接続(RS232C)のブートローダが書き込まれます。 | -2009年6月以降に出荷されるAT91SAM7S32マイコンボードにおいては、DBGU接続(RS232C)のブートローダが書き込まれます。 | ||
Line 124: | Line 143: | ||
[[SIMPLE TERM>GDL#STERM]]からのキー入力にて各種機能を実行します。 | [[SIMPLE TERM>GDL#STERM]]からのキー入力にて各種機能を実行します。 | ||
***ブートローダの動作フロー [#BOOTFLOW] | ***ブートローダの動作フロー [#BOOTFLOW] | ||
- | ブートローダをコンパイルした際に選択したコンソールポートにより、動作が異なってきます。~ | + | #ref(SAM7BL_BOOT_FLOW.png,100%) |
- | -USBを選択 | + | ユーザプログラムへ実行が遷移するか、ブートローダがコマンドモードになるかの2つの状態に動作が分岐します。~ |
- | #ref(SAM7SBL_UART_BOOT_FLOW.png,100%) | + | ユーザプログラムへ実行が遷移する前にユーザ自らの操作でコマンドモードに遷移させる場合は、ハードリセット(リセットボタンの押下)を行います。ユーザプログラムが書き込まれていなければ、常にコマンドモードとなります。~ |
- | マイコンがリセットされるとユーザプログラムへ実行が遷移するか、ブートローダがコマンドモードになるかの2つの状態に動作が分岐します。~ | + | また、ハードリセット以外の条件(WDTやソフトリセット等)でリセットされた場合は、再度ユーザプログラムへ実行が遷移します。 |
- | ユーザプログラムへ実行が遷移する前にユーザ自らの操作でコマンドモードに遷移させる場合は、リセット直後にPCとマイコンボードをUSBケーブルで接続し、PC側でUSB仮想シリアルドライバを活性化させる必要があります。ユーザプログラムが書き込まれていなければ、常にコマンドモードとなります。~ | + | |
- | マイコンボードをUSBのバスパワーで駆動させている状態であれば、ユーザプログラムの状態に関わらずマイコンをリセットした直後にコマンドモードになります。 | + | |
- | -DBGU, US0, US1を選択 | + | |
- | #ref(SAM7SBL_USB_BOOT_FLOW.png,100%) | + | |
- | マイコンがリセットされるとユーザプログラムへ実行が遷移するか、ブートローダがコマンドモードになるかの2つの状態に動作が分岐します。~ | + | |
- | ユーザプログラムへ実行が遷移する前にユーザ自らの操作でコマンドモードに遷移させる場合は、リセット直後に'!'を素早く3回入力する必要があります。ユーザプログラムが書き込まれていなければ、常にコマンドモードとなります。 | + | |
***コマンド [#sb3ccc22] | ***コマンド [#sb3ccc22] | ||
****ヘルプ '?' [#w7b1ad65] | ****ヘルプ '?' [#w7b1ad65] | ||
コマンドのリストを表示します。 | コマンドのリストを表示します。 | ||
>? | >? | ||
- | --< TIMSAM7 Ver2.0 by BestTechnology >-- | + | --< TIMSAM7 USB Ver.2.5 by BestTechnology >-- |
- | [w]:UPLOAD [g]:BOOT [x]:REBOOT | + | [w]UPLOAD [g]BOOT [x]REBOOT [d]DUMP |
- | [i]:FLASH INFO [e]:ERASE [n]:SET NVM BIT [c]:CLER NVM BIT | + | [i]FLASH INFO [e]ERASE [n]SET NVM BIT [c]CLER NVM BIT |
- | [l]:SET LOCK BIT [u]:CLEAR LOCK BIT | + | [l]SET LOCK BIT [u]CLEAR LOCK BIT |
> | > | ||
Line 169: | Line 181: | ||
というメッセージを表示してコマンドモードに戻ります。 | というメッセージを表示してコマンドモードに戻ります。 | ||
- | ****再起動 'x' [#j761c1f9] | + | ****ソフトリセット 'x' [#j761c1f9] |
- | マイコンを再起動します。 | + | マイコンをソフトリセットします。ユーザプログラムが既に書き込まれている場合は、リセットから復帰後ユーザプログラムが実行されます。 |
+ | ****メモリダンプ 'd' [#bddd3f34] | ||
+ | メモリを16進数でダンプ表示します。スタートアドレスを入力せずにエンターキーのみを押すと、ブートローダ内で想定しているユーザープログラムが保存されているアドレスの先頭を指定したと見なします。 | ||
+ | >d | ||
+ | START ADDRESS:$00102000 | ||
+ | 00102000:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ | ||
+ | 00102010:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ | ||
+ | 00102020:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ | ||
+ | 00102030:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ | ||
+ | 00102040:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ | ||
+ | 00102050:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ | ||
+ | 00102060:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ | ||
+ | 00102070:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ | ||
+ | 00102080:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ | ||
+ | 00102090:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ | ||
+ | 001020A0:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ | ||
+ | 001020B0:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ | ||
+ | 001020C0:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ | ||
+ | 001020D0:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ | ||
+ | 001020E0:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ | ||
+ | 001020F0:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ | ||
+ | ---([u]up [d]down [ESC]exit)--- | ||
****消去 'e' [#p2f443e8] | ****消去 'e' [#p2f443e8] | ||
フラッシュROMのユーザプログラムエリアを消去します。 | フラッシュROMのユーザプログラムエリアを消去します。 | ||
Line 182: | Line 216: | ||
COMPLETED. | COMPLETED. | ||
> | > | ||
- | デバイスのメモリ容量によって消去時間は異なります。 | + | 書き込まれているユーザプログラムのサイズやデバイスのメモリ容量によって消去時間は異なります。 |
****フラッシュステータス 'i' [#k51f464b] | ****フラッシュステータス 'i' [#k51f464b] | ||
Line 214: | Line 248: | ||
GPNVMのビット0~2をクリアします。 | GPNVMのビット0~2をクリアします。 | ||
****ロックビットセット 'S' [#hb1d7978] | ****ロックビットセット 'S' [#hb1d7978] | ||
- | ※本コマンドはメモリサイズの都合によりVer.2.1より不活性化されました。 | ||
- | |||
表示されるメニューには無いコマンドです。大文字の'S'でLOCKEビットをセットします。LOCKEビットがセットされているとJTAGからのアクセスとTST端子によるSAM-BAモードへの移行が抑止されます。~ | 表示されるメニューには無いコマンドです。大文字の'S'でLOCKEビットをセットします。LOCKEビットがセットされているとJTAGからのアクセスとTST端子によるSAM-BAモードへの移行が抑止されます。~ | ||
LOCKEビットはマイコンのERASE端子を使用する他にクリアする方法は無く、同時に内蔵フラッシュROMの情報やNVMの設定もデバイスの出荷時状態に初期化されます。 | LOCKEビットはマイコンのERASE端子を使用する他にクリアする方法は無く、同時に内蔵フラッシュROMの情報やNVMの設定もデバイスの出荷時状態に初期化されます。 | ||
Line 222: | Line 254: | ||
ARE YOU SURE? (Y/N) y | ARE YOU SURE? (Y/N) y | ||
> | > | ||
- | なお、出荷時に本ブートローダが書き込まれているマイコンボードにおいては、全てLOCKEをセットしています。 | ||
- | |||
- | **その他 [#p5a7b3bd] | ||
- | ユーザプログラムにてWDTを使用してシステムをりブートさせると、必ずブートローダのコマンドモードになります。 |