• Reads data from the serial EEPROM if appropriate
• Sets up bus configurations
• Transfers control to PCI or USB
At this point the loader kernel enters into an infinite loop, waiting for instructions. Once the PCI or USB device has completed booting the DSP, the device can write an instruction to a pre-defined location
(0x000000 in Data Memory), at which point the DSP will execute any one of a list of supported commands. These supported commands include the following:
• Jump to program memory without returning (to leave the loader kernel and begin user code)
• Read a word from EEPROM
• Enable write mode on EEPROM
• Write a word to EEPROM
• Re-read patch block from EEPROM (if bus configuration may have overwritten locations)
• Enter power-down state
You can also write code to perform these operations during runtime by writing the appropriate value into the pre-defined memory address and then by performing a CALL to address 0x014F00 (a location in the ROM). The loader kernel performs the requested command and then returns control to the user code.
Table 11-9 shows the values and descriptions for the supported functions. For commands that require multiple arguments, the arguments are placed in Data Memory addresses 0x0001, 0x0002, and 0x0003 respectively.
Table 11-9. User-Defined Loader Kernel Function Values
0x0001 |
0x0002 |
0x0003 |
||
Value |
Description |
Argument 1 |
Argument 2 |
Argument 3 |
0x0000 |
nop |
N/A |
N/A |
N/A |
0x0004 |
jump_to_code |
N/A |
dest. address |
N/A |
0x0006 |
eeprom_write_enable |
N/A |
N/A |
N/A |
0x0002 |
eeprom_write_word |
eeprom address |
source address |
source page |
0x0005 |
eeprom_write_imm_data |
eeprom address |
imm. value |
N/A |
0x0001 |
eeprom_read_word |
eeprom address |
dest. address |
dest. page |
0x0003 |
read_patch_block |
eeprom address |
N/A |
N/A |
0x0007 |
powerdown_dsp |
N/A |
N/A |
N/A |
Table 11-10 on page 11-17 shows the state of the processor registers after a reset or a software-forced reboot. The values of any registers not listed are unchanged by a reset or a reboot. The contents of on-chip memory are unchanged after PORST, except for the data-memory-mapped control/status registers, as shown in Table 11-10.
During booting (and rebooting), all interrupts are masked, and autobuffering is disabled. The timers run during a reboot. If a timer interrupt occurs during the reboot, it is masked. Thus, if more than one timer interrupt occurs during the reboot, the processor latches only the first, and a timer overrun can occur.
Table 11-10. ADSP-2192 Register State after Reset or Software Reboot
Register Name |
Value Changed after Reset or Software Reboot? |
New Value |
AX0 |
no |
unchanged |
AX1 |
no |
unchanged |
MX0 |
no |
unchanged |
MX1 |
no |
unchanged |
AY0 |
no |
unchanged |
AY1 |
no |
unchanged |
MY0 |
no |
unchanged |
MY1 |
no |
unchanged |
MR2 |
no |
unchanged |
SR2 |
no |
unchanged |
AR |
no |
unchanged |
SI |
no |
unchanged |
MR1 |
no |
unchanged |
SR1 |
no |
unchanged |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.