|
Обновление прошивки STR91X через внешний интерфейс (UART) |
|
|
|
 |
Ответов
|
Aug 16 2010, 09:04
|

Частый гость
 
Группа: Свой
Сообщений: 153
Регистрация: 5-03-05
Из: Москва
Пользователь №: 3 098

|
Да, курсор в дизассемблере встает на 0 адрес. А далее вот что. Вот листинг дизасемблера по шагам: Код 50: LDR PC, Reset_Addr ddr 0x00000000 E59FF018 LDR PC,[PC,#0x0018]
137: SaveContext r0,r3 ; Save the workspace plus the current 138: ; return address lr_ und. 0x00000050 E1A00000 NOP PC,[PC,#0x0018] 140: ldr r0,=Undefined_Handler PC}00080 0x00000054 E1A00000 NOP PC,[PC,#0x0018] 141: ldr lr,=Undefined_Handler_end 0 0x00000058 E1A00000 NOP PC,[PC,#0x0018]
144: Undefined_Handler_end ; Reserved vector 0x0000005C E1A00000 NOP R0,R0,R0000000
148:;**************************************************************************** *** 149:;* Function Name : SWIHandler Save the workspace plus the current 150:;* Description : This function is called when SWI instruction executed. 151:;* Input : none ined_Addr 152:;* Output : none C,[PC,#0x0018] 153:;**************************************************************************** *** 154: 4 E1A00000 NOP PC,[PC,#0x0018] 155: SWIHandler lr,=Undefined_Handler_end 0 0x00000060 E59F0110 LDR R0,[PC,#0x0110] 156: SaveContext r0,r3 ; Save the workspace plus the current 157: ; return address lr_ svc. ssed */ 158: 0x00000064 E59F1110 LDR R1,[PC,#0x0110] 159: ldr r0,=SWI_Handler 0x00000068 E5801034 STR R1,[R0,#0x0034] 160: ldr lr,=SWI_Handler_end 0x0000006C E3A00315 MOV R0,#0x54000000 161: bx r0 ; Branch to SWI_Handler. 162: 163: SWI_Handler_end 0x00000070 E3A01004 MOV R1,#0x00000004 164: RestoreContext r0,r3; Return to the instruction following... 165: ; ...the SWI instruction. 166:;**************************************************************************** *** 167:;* Function Name : PrefetchAbortHandler SWI_Handler 168:;* Description : This function is called when Prefetch Abort 169:; exception is entered 170:;* Input : none 171:;* Output : none 172:;**************************************************************************** *** 173: 174: PrefetchAbortHandler 0x00000074 E5801000 STR R1,[R0] 175: SUB lr,lr,#4 ; Update the link register. 0x00000078 E3A01002 MOV R1,#0x00000002 176: SaveContext r0,r3 ; Save the workspace plus the current .. 177: ; return address lr_abt. 178: 0x0000007C E5801004 STR R1,[R0,#0x0004] 179: ldr r0,=Prefetch_Handler 0x00000080 E3A01000 MOV R1,#0x00000000 180: ldr lr,=Prefetch_Handler_end 0x00000084 E580100C STR R1,[R0,#0x000C] 181: bx r0 ; Branch to Prefetch_Handler. 182: 183: 0x00000088 E3A02802 MOV R2,#0x00020000
0x54000000 00000004 ANDEQ R0,R0,R4 0x54000004 00000002 ANDEQ R0,R0,R2 0x54000008 00000000 ANDEQ R0,R0,R0 и т. д.
|
|
|
|
|
Aug 16 2010, 16:43
|

Частый гость
 
Группа: Свой
Сообщений: 153
Регистрация: 5-03-05
Из: Москва
Пользователь №: 3 098

|
Цитата(aaarrr @ Aug 16 2010, 20:12)  Лучше посмотрите не дизассемблер, а содержимое памяти с нулевого адреса. И сопоставьте с тем, что туда записывается. Есть подозрение, что пишете на самом деле не то. Я уже говорил, что запускал записанное приложение, меняя бит "CSx Mapping" в конфигурационном регистре через Seggerовскую утилиту. Приложение запускается и работает. Также считывал память из 0 банка и сравнивал с заливаемым бинарником (правда сравнил содержимое по 0му и последнему адресу). Все было ОК. Эти два факта могут говорить о том, что код правильный? Может быть приложение надо как-то по хитрому конфигурировать? Не знаю. Смотреть листинг в дебагере после ремапинга я тоже не понял, зачем. Ведь фактически должен запускаться стартап приложения пользователя, а не бутлодера. Но Александр попросил, я посмотрел.
|
|
|
|
Сообщений в этой теме
Zandy Обновление прошивки STR91X через внешний интерфейс (UART) Aug 11 2010, 09:57 gregory812 Делал загрузчик для STM32 по USART, все работало. ... Aug 12 2010, 10:40 Zandy Все вопросы свелись к одному единственному вопросу... Aug 14 2010, 16:19  AlexandrY То что должно находится в RAM указывается в файле ... Aug 14 2010, 16:51   Zandy Цитата(AlexandrY @ Aug 14 2010, 20:51) То... Aug 15 2010, 07:18    AlexandrY Цитата(Zandy @ Aug 15 2010, 10:18) К сожа... Aug 15 2010, 07:51 Zandy В .sct строка proc_in_ram.o (+RO) есть. Так что на... Aug 16 2010, 08:04 AlexandrY Цитата(Zandy @ Aug 16 2010, 11:04) В .sct... Aug 16 2010, 08:20 AlexandrY Странный листинг.
Ассемблерные строки и фактическ... Aug 16 2010, 09:55
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|