5: 2010-04-16 (金) 16:40:32 takaboo ソース 6: 2013-08-21 (水) 17:45:22 takaboo ソース
Line 13: Line 13:
ソースをダウンロードし適宜解凍したら、MAKE_BL.BATを実行します。 ソースをダウンロードし適宜解凍したら、MAKE_BL.BATを実行します。
 ターゲットを大文字で入力(S512,S256,S128,S64,S32,X512,X256,X128):​  ターゲットを大文字で入力(S512,S256,S128,S64,S32,X512,X256,X128):​
-AT91SAM7S256のUSBポートを使用したブートローダをコンパイルするものとするならば、ターゲット名として''S256''と入力しエンターキーを押します。 +AT91SAM7X512のUSBポートを使用したブートローダをコンパイルするものとするならば、ターゲット名として''X512''と入力しエンターキーを押します。 
- ターゲットを大文字で入力(S512,S256,S128,S64,S32,X512,X256,X128):​ S256+ ターゲットを大文字で入力(S512,S256,S128,S64,S32,X512,X256,X128):​ X512
 使用するコミュニケーションポートを大文字で入力(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,X512,X256,X128):​ X512
 使用するコミュニケーションポートを大文字で入力(DBGU,DBGU2,US0,US1,USB): USB  使用するコミュニケーションポートを大文字で入力(DBGU,DBGU2,US0,US1,USB): USB
- TARGET  : AT91SAM7S256+ TARGET  : AT91SAM7X512
 PORT    : USB  PORT    : USB
- SERIES  : SAM7S+ SERIES  : SAM7X
 BOOTCODE: boot_thumb.o  BOOTCODE: boot_thumb.o
- FILENAME: AT91SAM7S256_USB_BOOTLOADER+ FILENAME: AT91SAM7X512_USB_BOOTLOADER
 コンパイル中...  コンパイル中...
 + cdc_enumerate.c: In function 'AT91F_CDC_Enumerate':
 + cdc_enumerate.c:387:16: warning: variable 'oldb' set but not used [-Wunused-but-
 + set-variable]
 + termsam7.c: In function 'main':
 + termsam7.c:1377:14: warning: unused variable 'j' [-Wunused-variable]
 サイズ確認...  サイズ確認...
   text    data    bss    dec    hex filename    text    data    bss    dec    hex filename
-   7870       0    1944   9814   2656 ./out/AT91SAM7S256_USB_BOOTLOADER.elf+   7987       0    1940   9927   26c7 ./out/AT91SAM7X512_USB_BOOTLOADER.elf
         1 個のファイルをコピーしました。          1 個のファイルをコピーしました。
 COMPLIE OK !!!  COMPLIE OK !!!
Line 34: Line 39:
 JTAGにてブートプログラムを書き込みます エンターキーを押して下さい  JTAGにてブートプログラムを書き込みます エンターキーを押して下さい
- Open On-Chip Debugger 0.2.0-in-development (2009-06-19-17:40) svn:2290 + Open On-Chip Debugger 0.8.0-dev-00354-gc658229-dirty (2013-08-01-16:33
- + Licensed under GNU GPL v2 
- + For bug reports, read 
- BUGS? Read http://svn.berlios.de/svnroot/repos/open​ocd/trunk/BUGS +        http://openocd.sourceforge.net/doc/doxygen/bugs.html 
- + Info : only one transport option; autoselect 'jtag' 
- + srst_only srst_pulls_trst srst_gates_jtag srst_open_drain connect_deassert_srst 
- $URL: svn://svn.berlios.de/openocd/trunk/src/openocd.c $ + adapter speed: 32 kHz 
- OLD SYNTAX: DEPRECATED - translating to new syntax + Info : clock speed 31 kHz 
- jtag newtap CHIP TAP -irlen 4 -ircapture 0x1 -irvalue 0xf + Info : JTAG tap: sam7.cpu tap/device found: 0x3f0f0f0f (mfg: 0x787, part: 0xf0f0 
- Example: STM32 has 2 taps, the cortexM3(len4) + boundaryscan(len5) + , ver: 0x3) 
- jtag newtap stm32 cortexm3 ....., thus creating the tap: "stm32.cortexm3" + Info : Embedded ICE version 1 
- jtag newtap stm32 boundary ....., and the tap: "stm32.boundary" + Info : sam7.cpu: hardware has 2 breakpoint/watchpoint units 
- And then refer to the taps by the dotted name. + dcc downloads are enabled 
- NEW COMMAND+ Info : JTAG tap: sam7.cpu tap/device found: 0x3f0f0f0f (mfg: 0x787, part: 0xf0f0 
- 1000 kHz + , ver: 0x3) 
- Info : device: 4 + Warn : srst pulls trst - can not reset into halted mode. Issuing halt after rese 
- Info : deviceID: 67330064 + t.
- 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.+
 target state: halted  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 
 + adapter speed: 31 kHz 
 + Warn : NOTE! Severe performance degradation without fast memory access enabled. 
 + Type 'help fast'. 
 + Info : JTAG tap: sam7.cpu tap/device found: 0x3f0f0f0f (mfg: 0x787, part: 0xf0f0 
 + , ver: 0x3) 
 + Warn : srst pulls trst - can not reset into halted mode. Issuing halt after rese 
 + t.
 target state: halted  target state: halted
- target halted in ARM state due to debug-request, current mode: Supervisor cpsr: 0x200000d3 pc: 0x00000000 + target halted in Thumb state due to debug-request, current mode: Supervisor 
- cleared protection for sectors 0 through 7 on flash bank 0 + cpsr: 0x400000f3 pc: 0x001007da 
- cleared protection for sectors 0 through 15 on flash bank 0 + Warn : NOTE! Severe performance degradation without fast memory access enabled. 
- Error: failed setting protection for areas 0 to 31 (-901) + Type 'help fast'. 
- dcc downloads are enabled+ adapter speed: 500 kHz
 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 1 with 1 bytes 
- wrote 7872 byte from file ./out/termsam7.elf in 3.114000s (2.468690 kb/s) + wrote 16384 bytes from file ./out/termsam7.elf in 5.154961s (3.104 KiB/s) 
- verified 7870 bytes in 0.356000s + verified 7987 bytes in 0.424827s (18.360 KiB/s) 
- gpnvm bit '#2' is out of bounds for target AT91SAM7S512 + Error: timeout waiting for SYSCOMP & DBGACK, last DBG_STATUS: 10 
- 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, part: 0xf0f0 
- Warn : srst pulls trst - can not reset into halted mode. Issuing halt after reset.+ , ver: 0x3)
 target state: halted  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 breakpoint, current mode: Undefined instructio 
 + n 
 + cpsr: 0x000000db pc: 0x000000c3 
 + Warn : NOTE! Severe performance degradation without fast memory access enabled. 
 + Type 'help fast'. 
 + shutdown command invoked
 ■■■■■■  ■■■■■■
 成功!!  成功!!
Line 85: Line 97:
***ソース及びコンパイル済みバイナリのダウンロード [#DOWNLOAD] ***ソース及びコンパイル済みバイナリのダウンロード [#DOWNLOAD]
 +#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) #ref(SAM7_BL_2.2.ZIP)
バージョン: 2.2~ バージョン: 2.2~
Line 122: Line 142:
***注意事項 [#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 130: Line 151:
[[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 175: Line 189:
というメッセージを表示してコマンドモードに戻ります。 というメッセージを表示してコマンドモードに戻ります。
-****再起動 'x' [#j761c1f9] +****ソフトリセット 'x' [#j761c1f9] 
-マイコンを再起動します。+マイコンをソフトリセットします。ユーザプログラムが既に書き込まれている場合は、リセットから復帰後ユーザプログラムが実行されます。
****消去 'e' [#p2f443e8] ****消去 'e' [#p2f443e8]
フラッシュROMのユーザプログラムエリアを消去します。 フラッシュROMのユーザプログラムエリアを消去します。
Line 188: Line 202:
  COMPLETED.   COMPLETED.
 >  >
-デバイスのメモリ容量によって消去時間は異なります。+書き込まれているユーザプログラムのサイズやデバイスのメモリ容量によって消去時間は異なります。
****フラッシュステータス 'i' [#k51f464b] ****フラッシュステータス 'i' [#k51f464b]
Line 220: Line 234:
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 229: Line 241:
 >  >
なお、出荷時に本ブートローダが書き込まれているマイコンボードにおいては、全てLOCKEをセットしています。 なお、出荷時に本ブートローダが書き込まれているマイコンボードにおいては、全てLOCKEをセットしています。
- 
-**その他 [#p5a7b3bd] 
-ユーザプログラムにてWDTを使用してシステムをりブートさせると、必ずブートローダのコマンドモードになります。 


トップ   差分 リロード印刷に適した表示   全ページ一覧 単語検索 最新ページの一覧   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom