реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> bootloader на ATMega48
defunct
сообщение Sep 29 2008, 23:58
Сообщение #16


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(sensor_ua @ Sep 30 2008, 00:20) *
Затолкните сами и мы Вам поаплодируем.

Затолкнул. ровно в 1k под жвак (1024). Аплодируйте. smile.gif

Цитата
АРГУМЕНТ. Сомневаюсь, что где-то нынче ещё платят за переписывание распаковщика протокола при переходе с одного семейства на другое только потому, что кто-то неплохо знает ассемблер (скорее оба ассемблера) или на примерах времён,

ПОжалуй так и есть.

Цитата
когда компиляторы были никакие, пытается доказывать, что ассемблер обязательно приведёт к лучшему результату
Даже с современными мощными компиляторами приведет, особенно в мелких задачах каковым является бутлоадер. Выиграет за счет усечения прологов/эпилогов функций, использования регистров для глобальный переменных, размещения кода в таблице векторов и прочих непозволительных для ЯВУ тонкостей (JMP вместо RET и пр.).

Цитата
(от Вас такого не слышал, но примеры встречаются).

Для крупных проектов asm это зло. Для мелких и не требующих развития - очень полезная штука.
Цитата
А time-to-market, а поддержка? - разработчик должен уважать не только свои умения.

На любом ассемблере bootloader написать отсилы день-два, отладить - еще два-три (worst case).
Сопровождение: кому придет в голову править бутлоадер? и зачем если он свою функцию выполняет.

Цитата
Если нет целесообразности писать на ассемблере, то писать на нём только из "любви к искусству" я себе позволить не могу.

Целесообразность - втиснуться в заданный объем памяти. Экономия места для основной программы. Ведь печально когда 14.5k программа не влазит в МК с 16kb из-за того что съэкономили время на бутлоадере.

Цитата
Если Вам такой загрузчик нужен, то пишите в личку - авось сторгуемсяwink.gif
Мне только затраты времени интересно знать. Т.к. на ASM с нуля 512 слов программы больше 1-2х дней просто не получится писать. Сопостовимы ли будут Ваши затраты?
Go to the top of the page
 
+Quote Post
Rst7
сообщение Sep 30 2008, 04:55
Сообщение #17


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Сопровождение: кому придет в голову править бутлоадер? и зачем если он свою функцию выполняет.


Ооо, каких только занятных дырок не бывает в секурных бутлоадерах smile.gif

Так что бывает и правят.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Sep 30 2008, 05:44
Сообщение #18


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(РоманО @ Sep 29 2008, 14:50) *
цикл стирания памяти вылетает, потому как доходит до странного адреса 0x1c0, если разобрать программу дизассемблером, то по этому адресу лежит инициализация сегмента, в котором лежит бутлодырь. Сам же бутлодырь начинается с адреса 0х800. Вот если бы можно было бы инициализацию сегмента перенести в конец бутлодыря то все было бы просто супер

У Вас загрузчик - отдельный проект или он компилится вместе с приложением ? Похоже, что вместе, поэтому некоторые секции расположились выше стартового адреса приложения, но ниже стартового адреса загрузчика.
Go to the top of the page
 
+Quote Post
sensor_ua
сообщение Sep 30 2008, 06:25
Сообщение #19


Профессионал
*****

Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387



Цитата
Затолкнул. ровно в 1k под жвак (1024). Аплодируйте.

Ассемблерный вариант из AN109 (родной от Атмел) занимал 369 байтwink.gif Сишный - уже почти в 2 раза больше (родной), а потом розросся до примерно 1к плюс-минус трамвайная остановка.
Но я говорил не о загрузчике вообще, а о конкретном - STK500v2-совместимом с XTEA-шифрованием. Апплодировать?
Цитата
кому придет в голову править бутлоадер?

Иногда приходится. Классический случай - способ входа поправить (когда пин сменить, когда Break по UART прописать), кварц, UART и скорость поменять - это хоть и косметика, но править - часть через конфигурацию, а часть ручками.
Цитата
Целесообразность - втиснуться в заданный объем памяти. Экономия места для основной программы.

Абсолютно согласен. Но тут вопрос опять же не "любви к искусству", а конкретной задачи - может оказаться дешевле более жирный проц поставить, а может и на асме бутлоадер с минимумом фич прописать (или имеющийся под камень доточить), а может самопальный протокол нельзя и нужно конкретный верхний уровень использовать - тогда ещё раз нужно посмотреть, что выгоднее.
Цитата
Сопостовимы ли будут Ваши затраты?

Врядли больше. На вариант для ATmega128 ушло сначала пол дня. Потом появились пожелания и их пришлось добивать следующим утром. Тяжело говорить - столько готовых наработок, что говорить о написании с нуля несколько некорректно. Для того же C8051F120 есть практически готовый бутлоадер для F020 из аппликухи от Silabs - его подправить - только функции стирания/записи из другой аппликухи подтянуть - грубо до получаса с глупостями. Но мне он не подходит;( STK500 переделать - только с ограничением адресов снизу разобраться, индейцев кое-где сменить, опять же функции стирания/записи подтянуть, расстановку локов, ну и не забыть getchar/putchar и иниты. Работы, не напрягаясь, на день с перекурами.


--------------------
aka Vit
Go to the top of the page
 
+Quote Post
GSG
сообщение Sep 30 2008, 10:40
Сообщение #20


Участник
*

Группа: Свой
Сообщений: 35
Регистрация: 21-06-05
Пользователь №: 6 178



Если не критично для программы, то поменяйте местами секции загрузчика и основной программы.
Вначале загрузик, а потом основную программу. Типа так.
-Z(CODE)BOOTLOADER=0-87F
-Z(CODE)APLICATION=880-FFD
Работает без проблем.
Go to the top of the page
 
+Quote Post
bodja74
сообщение Oct 1 2008, 14:40
Сообщение #21


Знающий
****

Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984



2PomanO
Короче smile.gif

Здесь лежит готовый загрузчик под 48мегу ( ProgLoader.nm.ru ) вместе с консолью.
Загрузчик хитрый ,он подменяет нулевой адресс переходом на секцию ,а в секции сохраняет и высчитывает переход на начало проги ,так что ваши проблемы с размещением загрузчика в памяти - это только начало ваших проблем biggrin.gif

ЗЫ Прикручивать кодирование к такому камню нереально ,хотя бы потому ,что на саму прогу останется мало памяти smile.gif
Удачи.
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Oct 1 2008, 17:03
Сообщение #22


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(bodja74 @ Oct 1 2008, 14:40) *
Прикручивать кодирование к такому камню нереально ,хотя бы потому ,что на саму прогу останется мало памяти

От чего же, 2k под загрузчик, 2k под прогу - 2k достаточно для очень интересного.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Oct 1 2008, 20:21
Сообщение #23


Гуру
******

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



Цитата(РоманО @ Sep 29 2008, 17:50) *
если разобрать программу дизассемблером, то по этому адресу лежит инициализация сегмента, в котором лежит бутлодырь.
Во-первых, совершенно непонятно, как можно инициализировать сегмент бутлодыря, если сегмент бутлодыря содержит код. Во-вторых, если вы сгенерите .map, вы в конце его обнаружите список всех сегментов с их адресами. По адресам сможете понять, какой именно сегмент линкер расположил по интересующим вас адресам и поправив .xcl положить сегменты куда надо.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 9th July 2025 - 05:12
Рейтинг@Mail.ru


Страница сгенерированна за 0.01429 секунд с 7
ELECTRONIX ©2004-2016