|
Как сделать дырку в коде, EWAVR 5.11B |
|
|
|
 |
Ответов
|
Nov 6 2009, 14:58
|

Частый гость
 
Группа: Свой
Сообщений: 107
Регистрация: 6-09-06
Из: Москва
Пользователь №: 20 118

|
Цитата(zltigo @ Nov 6 2009, 17:41)  Уже устал удивляться неиссякающему потоку не желающих думать и тупо располагать данные по фиксированным адресам  . Ну не нужно это практически никогда. Как максимум нужен один расположенный, например, после таблицы векторов, указатель на эту область данных. Это имено тот случай, когда нужно. По другому сделать я могу, разными способами и без помощи окружающих. Нужно для совместимости с предыдущей разработкой. Лучше подскажите как сделать, чтоб программный код не располагался по определённому адресу, а "огибал его".
|
|
|
|
|
Nov 6 2009, 15:20
|

Частый гость
 
Группа: Свой
Сообщений: 107
Регистрация: 6-09-06
Из: Москва
Пользователь №: 20 118

|
Цитата(zltigo @ Nov 6 2009, 18:07)  Ещё раз по подробнее: Нужно сделать так, чтобы программа не занимала некоторые адреса. Решение мне видится так: 1. Либо положить по этим адресам что-то, для того чтобы линкер не положил туда часть программы. 2. Либо как-то перепрыгнуть эти адреса, желательно без помощи асма, а при помощи директив компилятора, линкера.
|
|
|
|
|
Nov 6 2009, 16:48
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(LessNik @ Nov 6 2009, 18:20)  Решение мне видится так: Это не решение, это желание  Учите опцию -P -P(CODE)CODE=0-BEF,C00-3FFF -Z(CODE)MYSEGMENT=BF0-BFF Но дырочка все равно будет - до байта подгонка невозможна Цитата(Сергей Борщ @ Nov 6 2009, 18:19)  P.S. Писал по памяти, возможно вместо -Z потребуется -P (это тоже по памяти, могу ошибаться). Без -P, не будет категорически, ибо -Z это последовательно одним куском.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|