|
LPC 213x адрес main / c code, keil, RV |
|
|
|
Nov 30 2007, 07:33
|

Участник

Группа: Новичок
Сообщений: 22
Регистрация: 26-10-07
Пользователь №: 31 745

|
keil, RV, lpc213x
сделал удаленную перепрошивку, и хочу перейти в новую программу, пока приходится тупо искать адрес main ///////////////////////// int main(void) { main_addr = __current_pc(); main_addr = main_addr-4; ///////////////////////// вроде все работает (файл sturtup.s одинаков для всех проектов, вектора прерываний (первые 64 байт новой прошивки)помещены в RAM),
хочется узнать, по какому адресу мне перейти, чтобы гарантированно попасть в main новой прошивки
Сообщение отредактировал Spb_Alex - Nov 30 2007, 07:47
|
|
|
|
|
 |
Ответов
|
Nov 30 2007, 10:41
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(Spb_Alex @ Nov 30 2007, 09:33)  и хочу перейти в новую программу, пока приходится тупо искать адрес main Немного непонятно, а кто же у вас инициализирует глобальные переменные для новой программы, т.е. то, что обычно делает ее cstartup? Цитата(Spb_Alex @ Nov 30 2007, 09:33)  вектора прерываний (первые 64 байт новой прошивки)помещены в RAM ... хочется узнать, по какому адресу мне перейти, чтобы гарантированно попасть в main новой прошивки Сделать ремап (а его все равно надо делать, чтобы эти скопированные вектора начали работать) и перейти на адрес 0. Выполнится cstartup новой прошивки, пройдет вся инициализация и попадете в main() естественным образом.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Nov 30 2007, 12:28
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(aaarrr @ Nov 30 2007, 12:52)  Тогда нужно на _main переходить. Возможно. Не знаю структуру кейловского стартапа. Цитата(aaarrr @ Nov 30 2007, 12:52)  На нулевой адрес следует переходить с известной осторожностью, и лучше при помощи WD или SoftReset'а какого-нибудь. WD или SoftReset отменят ремап. попадем опять в загрузчик. У меня реализован переход на нулевой адрес, главное - чтобы загрузчик периферию не трогал.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
Сообщений в этой теме
Spb_Alex LPC 213x адрес main / c code Nov 30 2007, 07:33 aaarrr Не совсем понял задачу - Вам нужен адрес main в те... Nov 30 2007, 09:47   Spb_Alex Цитата(Сергей Борщ @ Nov 30 2007, 15:28) ... Nov 30 2007, 13:43    Сергей Борщ Цитата(Spb_Alex @ Nov 30 2007, 15:43) заг... Nov 30 2007, 13:55     Alex03 Цитата(Сергей Борщ @ Nov 30 2007, 18:55) ... Dec 4 2007, 06:22      Сергей Борщ Цитата(Alex03 @ Dec 4 2007, 08:22) Немног... Dec 4 2007, 11:42 Spb_Alex Путем жесточайших экспериментов над lpc2138, устан... Nov 30 2007, 14:17 Сергей Борщ Цитата(Spb_Alex @ Nov 30 2007, 16:17) пер... Nov 30 2007, 15:25 aaarrr Цитата(Spb_Alex @ Nov 30 2007, 16:43) дал... Nov 30 2007, 14:54 Spb_Alex Цитата(aaarrr @ Nov 30 2007, 17:54) А апп... Dec 3 2007, 08:00 Сергей Борщ Цитата(Spb_Alex @ Dec 3 2007, 10:00) пото... Dec 3 2007, 09:32  Spb_Alex Цитата(Сергей Борщ @ Dec 3 2007, 12:32) Н... Dec 3 2007, 13:46   Сергей Борщ Цитата(Spb_Alex @ Dec 3 2007, 15:46) толь... Dec 3 2007, 17:37    Spb_Alex Цитата(Сергей Борщ @ Dec 3 2007, 20:37) Т... Dec 4 2007, 10:33
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|