DpInRock
Feb 16 2009, 21:17
Вот какой вопрос.
Должен ли самодельный бутлоадер уползать с нулевого адреса, куда его загрузит сам-ба или пусть живет? А компилировать программу с какого-нибудь другого адреса старта?
Процессор at91sam9261.
Вроде получается, что можно по-любому. Токо непонятно, как в домах Лондона и Парижа принято?
Или бутлоадер загоняется в кэш, а потом поверх себя пишет? И все довольны?
aaarrr
Feb 16 2009, 21:48
Цитата(DpInRock @ Feb 17 2009, 00:17)

Должен ли самодельный бутлоадер уползать с нулевого адреса, куда его загрузит сам-ба или пусть живет? А компилировать программу с какого-нибудь другого адреса старта?
Я бы оставил в нулевом, с MMU все становится относительно.
Цитата(DpInRock @ Feb 17 2009, 00:17)

Или бутлоадер загоняется в кэш, а потом поверх себя пишет? И все довольны?
Во-первых, даже находясь в кэше, поверх себя загрузчик записать ничего не сможет - придется его класть в SRAM. Во-вторых, это вообще не очень красивый метод.
DpInRock
Feb 16 2009, 22:56
Т.е. в Лондоне люди компилируют программы с учетом размера загрузчика?
В принципе, не жалко обрезка памяти в начале. Можно наверное заставить компилятор что-нибудь там хранить.
--
Просто опыта у меня с загрузчиками почти нет - ровно один загрузчик написал для TMS320-6414. Уместился в 1К байт.
И был перемещаемым. И столько мучений было из-за того, что кэш никак не хотел инвалидатиться полностью.
Нет ли каких-то неприятностей, связанных с компиляцией не с нулевого адреса? Все равно ведь векторы прерываний будут. Хотя они тут у всех одинаковые...
aaarrr
Feb 16 2009, 22:59
Цитата(DpInRock @ Feb 17 2009, 01:56)

Нет ли каких-то неприятностей, связанных с компиляцией не с нулевого адреса? Все равно ведь векторы прерываний будут. Хотя они тут у всех одинаковые...
Решительно никаких неприятностей. Вектора можно и подменить.
DpInRock
Feb 16 2009, 23:33
Да. Вроде как стартап подправить немного. Ну может еще линкерный файл. Сейчас посмотрел. Вроде как ничего особенного.
Но все равно. Как-то хотел избежать этого загрузчика и обойтись самбой.
Я-то обойдусь, а вот те, кто придет после - врядли. Ну почему атмеловцы не загнали в саму самбу возможность писать во флэшку? Ну ведь так просто было б. Вот теперь изобретай колесо. Даже не колесо, а весь лисапед целиком.
aaarrr
Feb 16 2009, 23:47
Цитата(DpInRock @ Feb 17 2009, 02:33)

Ну почему атмеловцы не загнали в саму самбу возможность писать во флэшку?
Параллельную AMD-style? Из корпоративных интересов - пользуйте, люди, DataFlash
DpInRock
Feb 16 2009, 23:59
Так я и говорю про датафлэш!!! С радостью использую. Маленькая, места не занимает. А чтоб программу туда загнать, я должен аж целый скрипт выполнить, загнать туда программу, которая уже чего-то там запишет.
Хотя, можно и так, наверное. Благо хоть систему команд опубликовали... А я всегда полагал, что ихний лоадер содержит команды записи в датафлэш и не парился. А тут взглянул и расстроился маленько. Как будто дел других нет.
aaarrr
Feb 17 2009, 02:55
Цитата(DpInRock @ Feb 17 2009, 02:59)

Так я и говорю про датафлэш!!! С радостью использую. Маленькая, места не занимает.
Только стоит немеряно

Цитата(DpInRock @ Feb 17 2009, 02:59)

А чтоб программу туда загнать, я должен аж целый скрипт выполнить, загнать туда программу, которая уже чего-то там запишет.
Проще сделать свой бут, тем более что далеко не всякая программа ляжет в внутреннюю SRAM.
Harbour
Feb 17 2009, 05:40
как бы получается перебор - samba + bootloader + прога. самбу нафиг, все равно каличная - а где ляжет бутлоадер все равно, по нулевому удобней - не надо париться с прыжками, векторами ...
Цитата(DpInRock @ Feb 17 2009, 00:17)

принято?
просто линукс обычно компилируется в нижние адреса, поэтому можно сделать к в uboot-е откопировать себя в старший мегобайт и запустить linux - недостаток при несиправности SDRAM - у Вас отсутствует какойнибудь функционал на платочке. Лучше конечно чтобы лоадер выполнялся вобще из flash
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.