ENGLISH 简体中文 日本語 한국어  



   
 
キーワードまたは型番を入力    




アプリケーションノート 3013

Boot Loader Instruction Sets for the TINI Platform

Abstract: This application note documents the command sets for the common boot loaders found on the microcontrollers of the TINI® Platform, the DS80C390 and DS80C400. Note that the boot loader for the DS80C400 is burned into ROM, and thus will never change, but the boot loader for the DS80C390 is part of the flash, and is thus reprogrammable. This application note describes the boot loaders found on the DS80C400, the TINI 1.12 boot loader of the DS80C390, and the 05–15 boot loader of the DS80C390. It is likely that the documentation here will also apply to any older, deprecated TINI boot loader that may be found.

The 05-15 Boot Loader

The 05-15 boot loader is named after the date printed in the loader banner, which looks like this:
TINI Loader 05-15-00 17:45
Copyright (C) 2000 Dallas Semiconductor. All rights reserved.
>
The 05-15 loader will only be found on the DS80C390's that carry the 1.0x TINI firmware revisions (or possible a DS80C390 that does not have the TINI firmware).

The TINI 1.12 Boot Loader

The TINI 1.12 Boot Loader is installed on a DS80C390 as part of the 1.12 firmware installation. The boot loader must be reinstalled on every TINI firmware 1.1x installation. The TINI 1.12 boot loader's banner looks like this:
TINI Software - Copyright (C) 1999-2003 Maxim Integrated Products
Detailed product information available at http://www.maxim-ic.com
Welcome to the TINI Boot Loader 1.12.
>
As TINI firmware updates are released, the loader banner and version number of this loader will change to reflect the firmware update (for instance, the TINI 1.13 boot loader). However, the documentation in this application note should still apply to subsequent 1.1x boot loaders.

The DS80C400 Boot Loader

The boot loader of the DS80C400 microcontroller is part of the ROM of that chip, which also contains functionality that can be called from a C or an assembly program. Since it is in ROM, it will never be changed without a new revision of the micro being released. The loader banner for the DS80C400 looks like this:
DS80C400 Silicon Software - Copyright (C) 2002 Maxim Integrated Products
Detailed product information available at http://www.maxim-ic.com
Welcome to the TINI DS80C400 Auto Boot Loader 1.0.1
>

The Commands

Commands are listed alphabetically and with a note about which boot loaders support the command.

Note that all numerical arguments should be in hexadecimal. Also, only the significant portion of an input need be specified. For example, to CRC over the address range starting at 5 and ending at 9, you only need enter C 5 9, and not C 0005 0009.

Control-C - Reprint Loader Banner (05-15, 1.12, DS80C400)

Usage: ^C

Reprints the loader banner.

? - Print Help Message (05-15)

Usage: ?

Prints revision information for the loader and lists the current active bank. Also prints the same help message that the H command produces. Note that this command behaves differently on the 1.12 and DS80C400 loaders.

? - Print Help Message (1.12, DS80C400)

Usage: ?

Prints copyright information, version information for the loader, and the current active bank. On the 1.12 and DS80C400 loaders, this is the same operation as the H command.

B - Select Active Bank (05-15, 1.12, DS80C400)

Usage: B XX, where XX is a hex number representing the active bank to use.

Selects the active bank to be used for operations such as Dump, Fill, and CRC. The selected bank number actually becomes the high 8 bits of the address used in these operations.

C - CRC Memory in Active Bank (05-15, 1.12, DS80C400)

Usage: C [XXXX [YYYY]], where XXXX is the address to start calculating a CRC at, and YYYY is the inclusive address to stop calculating the CRC at. XXXX and YYYY are optional parameters. If unspecified, XXXX is assumed to be 0, and YYYY is assumed to be 0FFFFh. Therefore, no arguments specifies that the entire active bank (64kilobytes) should be CRC'd.

Calculates a CRC16 value from a specified starting memory address to a specified ending address (inclusive). The resulting CRC value is printed in hex back to the serial port.

D - Dump Memory in Active Bank (05-15, 1.12, DS80C400)

Usage: D [XXXX [YYYY]], where XXXX is the address to start dumping data from, and YYYY is the inclusive address to stop dumping data. XXXX and YYYY are optional parameters. If unspecified, XXXX is assumed to be 0, and YYYY is assumed to be 0FFFFh. Therefore, no arguments specifies that the entire active bank (64kilobytes) should be dumped.

Dumps the values in memory out to the serial port, starting at a specified memory address until the specified ending memory address (inclusive). The memory is dumped in Intel Hex format. For a detailed discussion of this format please see Intel HEX File Format.

E - Exit the Loader (05-15)

Usage: E

Places the DS80C390 in 24-bit contiguous mode, and unconditionally jumps to address 10000h. This is typically where the TINI firmware lives and begins execution. Note that this command behaves differently on the 1.12 and DS80C400 loaders.

E - Exit the Loader (1.12, DS80C400)

Usage: E

Makes sure the processor is in 24-bit contiguous mode, and searches for an executable segment. An executable segment has the pattern 'T,' 'I,' 'N,' 'I,' and then bank number starting at address 2 of a bank. This can be accomplished with the following assembly code:
org 400000h
start:
sjmp over tag
db 'T', 'I', 'N', 'I'
db 40h
over_tag:
;
; Continue executing application...
;
The bank number is included in the tag to make sure that a copy of the code in an unintended bank or a mirror of the code is not executed. The loader searches starting and bank 0C0h, and continues down the banks until it finds an executable segment.

F - Fill Memory in Active Bank (05-15, 1.12, DS80C400)

Usage: F ZZ [XXXX [YYYY]], where ZZ is the value to write from address XXXX until address YYYY (inclusive). XXXX and YYYY are optional parameters. If unspecified, XXXX is assumed to be 0, and YYYY is assumed to be 0FFFFh. Therefore, the command F 0 specifies that the entire active bank (64kilobytes) should be filled with zeros.

Fills the contents of memory with the specified value, from a starting address to an inclusive ending address. A direct memory write (MOVX) is used to write the data, therefore this command has no effect on flash memory.

G - Execute Active Segment (05-15, 1.12, DS80C400)

Usage: G

Unconditionally jumps to address 0 of the currently selected (active) bank, leaving the loader and transferring execution to whatever code may live there.

H - Print Help Message (05-15)

Usage: H

Prints a help message with the basic format string and a small note on the function of each loader command in the 05-15 loader. Note that this command behaves differently on the 1.12 and DS80C400 loaders.

H - Print Help Message (1.12, DS80C400)

Usage: H

Prints copyright information, version information for the loader, and the current active bank. On the 1.12 and DS80C400 loaders, this is the same operation as the ? command.

L - Load Hex Record (05-15, 1.12, DS80C400)

Usage: L, end-of-line, followed by contents of an Intel Hex File

Loads the contents of the hex file into external memory (flash or RAM). Hex Record loading terminates with a Control-C character or an Intel Hex End-Of-File record. Note that unerased flash contents may not be properly programmed. If the flash is not properly programmed, this function gives no failure indication.

All three loaders support HEX record types 0 (data record), 1 (end-of-file record), and 4 (extended linear address record).

M - Move (Copy) Contents of the Loader to the Active Bank (05-15)

Usage: M

Copies the contents of the boot loader to the active bank, last selected with the B command.

N - Netboot (DS80C400)

Usage: N

Starts the netboot algorithm. See the High-Speed Microcontroller User's Guide: Network Microcontroller Supplement for details on Netboot.

Q - Jump to Start of Boot Loader (05-15, 1.12, DS80C400)

Usage: Q

Jumps to the start of the boot loader, ready to accept more commands.

S - Set Double Baud Rate (05-15)

Usage: S

Sets the serial port reload value to twice its original value.

T1 - Binary Load/Verify (05-15, 1.12, DS80C400)

Usage: T1 X YYYY <CR>, [binary data], where X is 0 for binary load without echo, 1 for binary load with echo, 2 for binary verify without echo, 3 for binary verify with echo. YYYY is the starting offset to load data to.

Loads or verifies binary data from an input stream to the specified address in the current bank. If the value at the target location does not match the value just written, an error message is printed to the serial port and the processor waits for a reset. Data is loaded or verified until a reset. On the 05-15 and 1.12 boot loaders, data cannot be loaded to bank 0 unless bank 0 protection is disabled using the T3 command.

T3 - Disable Bank 0 Protection (05-15, 1.12)

Usage: T3

Disables bank 0 protection so that bank 0 can be written to.

T6 - Execute at Address 10000H (1.12)

Usage: T6

Places the DS80C390 in 24-bit contiguous mode, and unconditionally jumps to address 10000h. This is typically where the TINI firmware lives and begins execution. Note that this command is the same as the E command on the 05-15 boot loader.

T7 - COPY to Bank 0 (1.12)

Usage: T7 BB Copies the contents of bank BB to bank 0 (for 64k worth of data). The copy operation will only take place if the first instruction in the bank to be copied is an sjmp or an ljmp.

V - Verify Hex Record (05-15, 1.12, DS80C400)

Usage: V, end-of-line, followed by contents of an Intel Hex File

Verifies the contents of the hex file against the contents of external memory (flash or RAM). Hex Record verification terminates with a Control-C character or an Intel Hex End-Of-File record. If a record fails to verify, an error message is printed to the serial port.

X - Execute at Target Address (05-15, 1.12, DS80C400)

Usage: X AAAA, where AAAA is a 16-bit hex address.

Unconditionally jumps into the current bank at the specified address. Note that if no address is specified, execution starts at the start (address 0) of the current bank.

Z - Zap Flash Bank (05-15, 1.12)

Usage: Z BB, where BB is the flash bank number to erase. If BB == 0AAh, banks 1 through 7 are erased. If BB == 0AFh, banks 0 through 7 are erased.

Erases the 64k flash block at the specified bank. Note that if the specified bank does not exist or is not flash, a reset may be required to communicate with the loader again. The specified bank (except for the special cases of 0AAh and 0AFh) must be less than 010h, or the loader takes no action.

Z - Zap Flash Bank (DS80C400)

Usage: Z BB, where BB is the flash bank number to erase.

Erases the 64k flash block at the specified bank. Note that if the specified bank does not exist or is not flash, a reset may be required to communicate with the loader again. Note that any bank number is considered valid for the DS80C400's Zap operation.

Additional Information:



TINI is a registered trademark of Maxim Integrated Products, Inc.


関連製品  APP 3013: Feb 09, 2004
DS80C390 デュアルCAN高速マイクロプロセッサ フルデータシート
(PDF, 1.8MB)
無料
サンプル
DS80C400 ネットワークマイクロコントローラ フルデータシート
(PDF, 1.8MB)
無料
サンプル
DSTINIM400 ネットワークマイクロコントローラの評価基板 フルデータシート
(PDF, 876kB)
DSTINIS400 DSTINIs400/DSTINIs-00xソケットの評価ボード フルデータシート
(PDF, 496kB)

自動アップデート
お客様が関心のある分野でアプリケーションノートが新規に掲載された際に自動通知Eメールの受信を希望する場合は、EE-Mail™にご登録ください。


We Want Your Feedback!



フィードバックをお寄せください。
内容に満足されましたか、あるいは満足されていませんか?もっと良いページにできると思いますか?あるいは、単なるコメントでも結構です。フィードバックをお待ちしています。—マキシムはお客様からいただく訂正、提案を元に改善していきます。 このページを評価し、フィードバックを送信する。

 

ダウンロード、PDFフォーマットダウンロード、PDFフォーマット(28kB)
 AN3013, AN 3013, APP3013, Appnote3013, Appnote 3013

        •         •         •     プライバシーポリシー     •     法的お知らせ

    Copyright © 2009 by Maxim Integrated Products