
The Bootloader Program
10-20
10.7 The Bootloader Program
************************************************************
*
* C40BOOT – TMS320C40 BOOTLOADER PROGRAM
* (C) COPYRIGHT TEXAS INSTRUMENTS INC., 1990
*
* NOTE 1. AFTER THE DEVICE IS RESET, THE PROGRAM IS CHECKING THE INPUT STATUS
* OF IIOF0–3 PINS AND COMMUNICATION PORT INPUT FLAGS TO CONFIGURE ITSELF WHEN
* THE ON–CHIP ROM IS ENABLED (ROMEN=1). THE IIOF0 PIN IS ASSUMED TO BE HIGH.
*
* NOTE 2. THE FUNCTION SELECTION OF IIOF0–3 IS LISTED AS:
*
*
3
2
1
0
*
1
1
0
1
Memory bootloader from 00300000H
*
1
0
1
1
Memory bootloader from 40000000H
*
1
0
0
1
Memory bootloader from 60000000H
*
0
1
1
1
Memory bootloader from 80000000H
*
0
1
0
1
Memory bootloader from A0000000H
*
0
0
1
1
Memory bootloader from C0000000H
*
0
0
0
1
Reserved
*
1
1
1
1
Communication port bootloader
IIOF
IIOF
IIOF
IIOF
FUNCTION
*
* THE PROGRAM ASSUMES THE COMMUNICATION PORT BOOTLOADER IS THE DEFAULT
* FUNCTION. IF NO OTHER FUNCTION IS SELECTED,THE PROGRAM STARTS CHECKING
* THE COMMUNICATION PORT INPUT CHANNELS. IF THERE IS NO INPUT FROM A
* COMMUNICATION PORT, THE PROGRAM RECHECKS THE IIOF(3–0) STATUS AGAIN.
* NOTE 3.MEMORY BOOTLOADER LOADS WORD, HALF–WORD, OR BYTE WIDE PROGRAM TO
* DIFFERENT SPECIFIED LOCATIONS. THE 8 LSBs OF THE FIRST MEMORY SPECIFIES THE
* MEMORY WIDTH. IF THE HALF–WORD OR BYTE WIDE PROGRAM IS SELECTED, THE LSBs
* ARE LOADED FIRST AND THEN THE MSBs. THE NEXT 2 WORDS CONTAIN THE CONTROL
* WORD FOR THE GLOBAL AND LOCAL MEMORY INTERFACE CONTROL REGISTERS. NEXT COME
* THE PROGRAM BLOCKS. THE FIRST TWO WORDS OF EACH PROGRAM BLOCK CONTAIN THE
* BLOCK SIZE AND DESTINATION ADDRESS WHERE THE PROGRAM IS TO BE LOADED. WHEN
* THE ZERO BLOCK SIZE IS READ, THE PROGRAM BLOCK LOADING IS TERMINATED. THE
* NEXT TWO WORDS ARE THE INITIAL VALUES FOR THE IVTP AND TVTP REGISTERS.
* AFTER THE BOOTLOADING IS COMPLETED, THE IACK SIGNAL IS SENT OUT ACCORDING
* TO THE LAST WORD OF THE SOURCE MEMORY, AND THE PROGRAM COUNTER WILL BRANCH
* TO THE STARTING ADDRESS OF THE FIRST PROGRAM BLOCK.
* NOTE 4.IF IIOF(3–0) ARE SET FOR COMMUNICATION PORT BOOTLOADER, THE PROCESSOR
* WAITS FOR THE FIRST INPUT FROM AN INPUT COMMUNICATION CHANNEL AND USE THAT
* CHANNEL TO PERFORM THE DOWNLOAD. THE BEGINNING TWO WORDS SHOULD CONTAIN THE
* GLOBAL AND LOCAL BUS CONTROL WORDS. SIMILAR TO THE MEMORY LOADER, THE
* PROGRAM CAN BE LOADED INTO DIFFERENT MEMORY BLOCKS. THE FIRST TWO WORDS OF
* EACH PROGRAM BLOCK CONTAINS THE BLOCK SIZE AND MEMORY ADDRESS TO BE LOADED
* INTO. WHEN THE ZERO BLOCK SIZE IS READ, THE PROGRAM BLOCK LOADING IS
* TERMINATED. IN OTHER WORDS, TO TERMINATE THE PROGRAM BLOCK LOADING, A
* ZERO HAS TO BE ADDED AT THE END OF PROGRAM BLOCK. THE FOLLOWING TWO WORDS
* ARE THE INITIAL VALUES FOR THE IVTP AND TVTP REGISTERS. AFTER THE BOOT–
* LOADING IS COMPLETED, THE IACK SIGNAL IS SENT OUT ACCORDING TO THE LAST
* WORD OF THE SOURCE MEMORY AND THE PROGRAM COUNTER BRANCHES TO THE STARTING
* ADDRESS OF THE FIRST PROGRAM BLOCK.