
- •Модуль 13 : Загрузочное ПЗУ C28x
- •Карта памяти TMS320F2812
- •Сброс – Первоначальный загрузчик
- •Опции загрузчика
- •Последовательность выполнения
- •Карта памяти загрузочного ПЗУ
- •Таблица векторов загрузочного ПЗУ
- •Структура потока данных загрузчика
- •Пример потока данных загрузчика
- •Алгоритм чтения загрузчиком C28x
- •Инициализация загрузки C28x
- •Загрузка C28xx через SCI
- •Алгоритм загрузки C28xx через SCI
- •Параллельная загрузка C28x (GPIO)
- •Алгоритм загрузки C28x через GPIO
- •Алгоритм загрузки через GPIO
- •Загрузка C28x через SPI
- •Поток данных для загрузки C28x через SPI
- •Алгоритм загрузки C28x через SPI
- •Алгоритм загрузки C28x через SPI

Модуль 13 : Загрузочное ПЗУ C28x
Цифровой сигнальный контроллер TMS320F2812
Texas Instruments Incorporated

Карта памяти TMS320F2812
|
|
Данных | Программ |
|
|
Данных ||Программ |
||
0x00 0000 |
| |
|
|
|
|
|
|
|
MO SARAM (1K) |
|
|
|
|||
0x00 0400 |
|
M1 SARAM (1K) |
|
|
зарезервировано |
||
0x00 0800 |
|
PF 0 (2K) |
зарезерв. |
|
|
||
0x00 0D00 |
|
PIE вектор |
зарезерв. |
|
|
|
|
|
|
(256) |
|
|
|
||
|
|
ENPIE=1 |
|
|
|
|
|
|
|
|
|
|
|
XINT Зона 0 (8K) |
|
0x00 1000 |
|
зарезервировано |
|
|
|||
|
|
|
XINT Зона 1 (8K) |
||||
0x00 6000 |
|
PF 2 (4K) |
зарезерв. |
|
|
||
0x00 7000 |
|
PF 1 (4K) |
зарезерв. |
|
|
зарезервировано |
|
0x00 8000 |
|
LO SARAM (4K) |
|
|
|||
0x00 9000 |
|
|
( |
) |
|
|
|
|
L1 SARAM (4K) |
|
|
|
|||
|
|
|
XINT Зона 2 (0.5M) |
||||
0x00 A000 |
|
|
( |
) |
|
|
|
|
зарезервировано |
|
|
|
|||
|
|
|
XINT Зона 6 (0.5M) |
||||
0x3D 7800 |
|
OTP (1K) |
|
|
|
||
|
|
|
|
|
|||
0x3D 7C00 |
|
( |
) |
|
|
|
|
|
зарезервировано |
|
|
|
|||
0x3D 8000 |
|
FLASH (128K) |
|
|
|
||
|
|
( |
|
) |
|
|
зарезервировано |
0x3F 8000 |
|
128--битный пароль |
|
|
|||
|
HO SARAM (8K) |
|
|
|
|||
0x3F A000 |
|
зарезервировано |
|
|
|
||
0x3F F000 |
|
Загруз. ПЗУ(4K) |
|
|
XINT Зона 7 (16K) |
||
|
|
MP/MC=0 |
|
|
|
MP/MC=1 |
|
0x3F FFC0 |
|
Табл. векторов ПЗУ(32) |
|
|
XINT вектор-ОЗУ(32) |
||
|
|
MP/MC=0 ENPIE=0 |
|
|
MP/MC=1 ENPIE=0 |
0x00 2000
0x00 4000
0x08 0000
0x10 0000
0x18 0000
0x3F C000
CSM::LO,,L1
OTP,,FLASH
13 - 2

Сброс – Первоначальный загрузчик
|
|
|
|
XMPNMC=1 |
||
Сброс |
||||||
|
|
(режим микропроцессора) |
|
|||
|
|
Вектор сброса |
|
|||
OBJMODE=0 |
AMODE=0 |
|
|
из XINTF зона 7 |
|
|
|
|
|
||||
ENPIE=0 |
VMAP=1 |
|
|
0x3F FFC0 |
|
|
M0M1MAP=1 |
|
|
|
|
||
|
|
|
|
|||
|
|
|
|
|
|
|
XMPNMC=0 |
|
|
|
|
|
(режим микрокомпьютера) |
|
|
|
|
|
Вектор сброса |
|
|
Загрузка определяется |
|
|
из загрузочного ПЗУ |
|
|
по состоянию |
|
|
|
|
|
||
|
0x3F FFC0 |
|
|
выводов GPIO |
|
|
|
|
|
|
|
Замечания:: |
|
|
|
|
|||
F2810 XMPNMC связан в устройстве с |
Точка входа |
Процедуры |
|
||||
исполнения |
загрузки |
|
|||||
низким уровнем |
|
||||||
XMPNMC соотносится с входным сигналом |
FLASH |
SPI |
|
||||
MP/MC – бит статуса из регистра |
H0 SARAM |
SCI-A |
|
||||
|
|
/ |
|
|
|
|
|
XINTFCNF2 |
OTP |
Параллел. |
|
||||
|
I |
|
|
|
|
||
XMPNMC используется только после |
|
|
|
||||
|
|
|
|||||
сброса |
|
13 - 3 |
|||||
|
|
|
|
|
|

Опции загрузчика
выводы GPIO |
|
|
|
|
|||
F4 |
F12 |
F3 |
F2 |
|
|
|
|
|
|
|
|
|
|
|
|
1 |
x |
x |
x |
переход в FLASH по адресу 0x3F 7FF6 |
* |
|
|
0 |
0 |
1 |
0 |
переход в H0 SARAM по адресу 0x3F 8000 |
* |
|
|
0 |
0 |
0 |
1 |
переход в OTP по адресу 0x3D 7800 |
* |
|
|
|
|
|
|
|
|||
0 |
1 |
x |
x загрузка кода с внешней EEPROM в память через SPI пор |
||||
0 |
0 |
1 |
1 |
загрузка кода в память через SCI-A порт |
|
|
|
0 |
0 |
0 |
0 |
загрузка кода в память через GPIO port B (параллельно) |
|||
|
|
|
|
|
|
|
|
*Программа загрузки из ПЗУ конфигурирует устройство
врежим C28x перед переходом
13 - 4

Последовательность выполнения
кода после сброса
0x3D 7800 |
|
|
|
|
|
OTP (2K) |
|
||
|
|
|
||
0x3D 8000 |
|
|
|
|
|
|
|
|
|
|
FLASH (128K) |
|
||
|
|
|
||
0x3F 8000 |
|
0x3F 7FF6 |
|
|
|
H0 SARAM (8K) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Переход на точку, |
|
||
|
0x3F F000 Загруз. ПЗУ (4K) |
|
||||||||||||||||||||||||||||||
|
|
|
|
определенную |
|
|
||||||||||||||||||||||||||
|
|
|
Код загрузчика |
|
|
|
выводами GPIO |
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
0x3F FC00 |
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
0x3F FFC0 |
|
Вектор. ПЗУ(32) |
|
|
|
|
|
|
|
||||||||||||||||||||||
СБРОС |
|
|
|
|
|
0x3F FC00 |
|
|
|
|
|
|
Процедуры |
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
загрузки |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(SPI, SCI-A, |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
I, I |
, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Параллельная |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
загрузка) |
13 - 5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

Карта памяти загрузочного ПЗУ
TMS320F2812
Диапазон адресов |
|
Пространство программ и данных |
|
|
|
SIN/COS; 641 x 32(Q30) |
|
0x3F F000 – 0x3F F501 |
|||
0x3F F502 – 0x3F F711 |
|
Инверсия; 264 x 32(Q29) |
|
|
|
|
|
0x3F F712 – 0x3F F833 |
|
Корень квадрат.;145 x32(Q30) |
|
|
|
Арктангенс; 218 x32(Q30) |
|
0x3F F834 – 0x3F F9E7 |
|||
|
|
|
|
0x3F F9E8 – 0x3F FB4F |
|
Округ./Нас.; 180 x 32(Q30) |
|
0x3F FB50 – 0x3F FBFF |
|
зарезервировано |
|
0x3F FC00 – 0x3F FFBF |
|
Загрузчик ; 960 x 16 |
|
0x3F FFC0 – 0x3F FFC1 |
|
Вектор сброса; 2 x 16 |
|
0x3F FFC2 – 0x3F FFFF |
|
Таблица векторов; 62 x 16 |
|
13 - 6

Таблица векторов загрузочного ПЗУ
C28x
Вектор |
Адрес |
Содержимое |
Вектор |
Адрес |
Содержимое |
|
RESET |
0x3F FFC0 |
0x3F FC00 |
RTOSINT |
0x3F FFE0 |
0x00 0060 |
|
INT1 |
0x3F FFC2 |
0x00 0042 |
Зарезер. |
0x3F FFE2 |
0x00 0062 |
|
INT2 |
0x3F FFC4 |
0x00 |
0044 |
NMI |
0x3F FFE4 |
0x00 0064 |
INT3 |
0x3F FFC6 |
0x00 0046 |
ILLEGAL |
0x3F FFE6 |
0x00 0066 |
|
INT4 |
0x3F FFC8 |
0x00 0048 |
USER 1 |
0x3F FFE8 |
0x00 0068 |
|
INT5 |
0x3F FFCA |
0x00 |
004A |
USER 2 |
0x3F FFEA |
0x00 006A |
INT6 |
0x3F FFCC |
0x00 004C |
USER 3 |
|
0x00 006C |
|
INT7 |
0x3F FFCE |
0x00 004E |
USER 4 |
|
0x00 006E |
|
INT8 |
0x3F FFD0 |
0x00 0050 |
USER 5 |
|
0x00 0070 |
|
INT9 |
0x3F FFD2 |
0x00 0052 |
USER 6 |
0x3F FFF2 |
0x00 0072 |
|
INT10 |
0x3F FFD4 |
0x00 0054 |
USER 7 |
0x3F FFF4 |
0x00 0074 |
|
INT11 |
0x3F FFD6 |
0x00 0056 |
USER 8 |
0x3F FFF6 |
0x00 0076 |
|
INT12 |
0x3F FFD8 |
0x00 0058 |
USER 9 |
0x3F FFF8 |
0x00 0078 |
|
INT13 |
0x3F FFDA |
0x00 005A |
USER 10 |
0x3F FFFA |
0x00 007A |
|
INT14 |
0x3F FFDC |
0x00 005C |
USER 11 |
0x3F FFFC |
0x00 007C |
|
DLOGINT |
0x3F FFDE |
0x00 005E |
USER 12 |
0x3F FFFE |
0x00 007E |
13 - 7

Структура потока данных загрузчика
13 - 8

Пример потока данных загрузчика
10AA ; ключ для 16 битного потока памяти
0000 0000 0000 0000 0000 0000 0000 0000
003F ; PC – стартовая точка, после загрузки: 0x3F
8000
8000
0005 ; 5 слов в блоке 1
003F
9010 ; Первый блок загружается по адресу 0x3F 9010
0001 ; первое слово данных
0002 0003 0004
0005 ; последнее данное
0002 ; Второй блок состоит из двух слов
003F ; второй блок загружается по адресу 0x3F 8000
8000
7700 ; первое данное
7625 ; последнее данное
0000 ; следующий блок нулевой длины = конец передачи
13 - 9

Алгоритм чтения загрузчиком C28x
Чтение первого слова(W1)
W1 == Нет 0x10AA?
Да
Чтение второго слова младших 8 бит
Размер данных: 16 бит
Чтение точки входа
W2:W1 == Нет |
Ошибка |
0x08AA? |
формата |
|
|
Да
|
|
|
|
|
|
|
|
Размер данных 8 бит |
|
|||
|
Чтение размера блока(R) |
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Передача R слов из |
|||||
|
|
|
|
|
|
|
|
|
||||
|
R = 0? |
Нет |
|
|
|
|
источника в приемник |
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Да |
|
|
|
|
|
Чтение адреса блока |
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Выход и переход |
|
|
|
|
|
|
|
|
|
|
|
|
на точку входа |
|
13 - 10 |