|
|
  |
Почему не стартует main? |
|
|
|
Sep 11 2007, 09:21
|
Бывалый
    
Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615

|
Цитата(Vladimir_T @ Sep 11 2007, 12:48)  Использую Keil и JLink, АРМ STR912. Отладчиком благополучно прохожу по шагам StartUp, а к метке main программа не переходит, генерируется Abort, причем - это на программе более 100 кБ, а программы небольшие прекрасно работают и отлаживаются. В чем может быть дело-то?
В startup: IMPORT __main LDR R0, =__main BX R0
Причем, в R0 находится адрес main (проверил по map-файлу)! 1. Проверьте по map, что где находится. 2. По результатм скорретируйте размещение данных и памяти программ.
|
|
|
|
|
Sep 11 2007, 11:56
|
Знающий
   
Группа: Свой
Сообщений: 517
Регистрация: 7-02-06
Пользователь №: 14 073

|
Цитата(aaarrr @ Sep 11 2007, 14:02)  Тогда смотрите адрес и причину Abort'а. Может быть, scatter влезает куда не следует. А как он работает - этот scatter? И откуда он берется? Все адресные поля установлены корректно. Не трассируется программа уже после: BX R0 Почему-то не включается режим записи трассировки (в Кейле), потому что куда-то забегает программа, (вместо того чтобы идти к main) после чего вылетает сюда: DAbtHandler B DAbtHandler
|
|
|
|
|
Sep 11 2007, 12:24
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Vladimir_T @ Sep 11 2007, 15:56)  А как он работает - этот scatter? И откуда он берется? Scatter копирует код и данные из загрузочной области в рабочие. Подключается линкером. Цитата(Vladimir_T @ Sep 11 2007, 15:56)  Почему-то не включается режим записи трассировки (в Кейле), потому что куда-то забегает программа, (вместо того чтобы идти к main) после чего вылетает сюда: DAbtHandler B DAbtHandler Вот и посмотрите, откуда он туда попадает (R14 - 0x08 для Data Abort).
|
|
|
|
|
Sep 11 2007, 15:52
|

Участник

Группа: Новичок
Сообщений: 32
Регистрация: 29-08-07
Пользователь №: 30 125

|
Цитата(aaarrr @ Sep 11 2007, 16:24)  Scatter копирует код и данные из загрузочной области в рабочие. Подключается линкером. Вот и посмотрите, откуда он туда попадает (R14 - 0x08 для Data Abort). я правильно понимаю соответствие Вашего высказывания "копирует код и данные из загрузочной области в рабочие" тому , что в описании трактуется как regions in load view and regions in executed View ? Спасибо
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|