Цитата(samosad @ Mar 18 2008, 18:35)

Адрес секций тут - это как я понимаю смещение относительно базового адреса по которому записана сама программа, не так ли? Если так, то эта память в RAM и она свободная, т.к. при загрузке по этому же адресу 0x01600000 образа ядра zImage оно запускается и работает. да я и другие адреса пробовал, когда залезаешь на флешку РедБут об этом сообщает...
Позвольте немного базовых замечаний.
Итак смотрим на приведенный фрагмент:
Код
Sections:
Idx Name Size VMA LMA File off Algn
0 .init 00000020 00008000 00008000 00008000 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .text 000024e4 00008020 00008020 00008020 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
Немного утрировано.
Idx и Name, Size - пропускаем.
VMA - Адрес памяти, по которому производится обращение к этой секции.
LMA - Адрес памяти, по которому данная секция загружается в память перед использованием и инициализацией.
File off - Смещение от начала файла, по которому эта секция храниться на внешнем носителе.
В общем случае VMA != LMA. При наличии ОС, или просто при включенном MMU/Paging.
Будем говорить об ОС. Гипотетической, но большинство реальных ОС делают примерно так-же.
Есть часть ОС, которая "запускает программу на исполнение". Действия:
1. Открыть файл, просмотреть секции, определить размер и адреса LMA для загрузки.
2. Найти свободную память. Отобразить через MMU как непрерывный (по крайней мере для в пределах секции) кусок на адрес LMA.
3. Закрузить секции по адресам LMA в память.
4. Выполнить инициализацию секций.
5. Отобразить память с секциями на адреса VMA.
6. Запустить выполнение программы путем выполнения команды перехода по адресу Entry Point секции .text.
Это весьма утрировано, но пока сгодиться.
При отсутствии ОС и выключеном MMU LMA = VMA.
Память может начинаться с произвольного адреса (допустим начинается 256M = 0x10000000). Пограмма размером 1К. Есть только секция .text. Вопрос на засыпку: Какой размер исполняемого файла? Примерно? Конечно 1K. Это потому, что в файле нет нужды размещать секцию по ее адресу. Секция начинается с начала файла. Это и есть File off. Иначе размер файла будет 0x10000400 байтов.
Цитата
я бы с удовольствием делал всё под ОС но под Linux'ом тоже не получается запустить ничего...
Давайте решим, с чем разбираться. А то создается впечатление, что Вы просто шарахаетесь из стороны в сторону.
PS. Лучше не засорять ветку "основами". Если хотите - пишите в личку.
to moderator: прошу не пинать сильно.
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.