Автор |
Съобщение |
iss
Ранг: Новодошъл
Регистриран на: Съб Фев 06, 2016 7:29 pm Мнения: 167
|
Re: Новото проектче :)
За gcc опциите ' -nostdlib' и '-nodefaultlibs' ти дават възможност компилираното да не включва нищо по подразбиране (за да сме съвсем коректни те влияят само на линкера). За други компилатори трябва да има подобни опции също. За викането на ф-ции от юзерски код, мисля че беше обсъждано тук подобен проблем. "Стандартен" начин е на фиксирано място в паметта се слага таблица с пойнтери към функциите, който са "експортнати" от фирмуера. Потенциален проблем е предаване на параметри към тези функции, но и това се решава лесно - пак на фиксиран адрес се отделя място за буфер. Варианти има много, кой е най-добрият зависи от конкретното приложение и най-вече от вкуса на тоя дето го оценява .
|
Пон Мар 01, 2021 9:57 pm |
|
|
gicho
Ранг: Форумен бог
Регистриран на: Пон Мар 13, 2006 12:59 pm Мнения: 3855 Местоположение: Габрово
|
Re: Новото проектче :)
Доколкото съм ровил по темата, contiki имаха най-смислена концепция (или поне най-разбираема за мързеливия ми мозък). Викат му "elf-loader" - ползват леко "подобрен" (оптимизиран) elf формат (за да спестят по някой байт), но като цяло са гонили съвместимост с цялата армада инструменти. Тук е репото: https://github.com/contiki-os/contiki/tree/master/core/loaderАма те почнали и нова версия "contiki-ng", и нещо не откривам pdf-ите, които четох навремето. Но имаха разписани идеята и, по-важното, как да постигнат тия неща с gnu инструментите. Другата добра идея е на nuttx (той май имаше порт за pic32) - там май беше по-специален форматът на файловете, но пак има идеята. Предполагам че ти трябва нещо далеч по-просто - нордик имат подобна реализация за техния softdevice и app. По-отдавна, luminary micro имаха функции в РОМ-а на чипа и даваха линкерски файл, в който бяха описани функциите в РОМ-а с техните адреси (като символи) - при билд можеше да ликнваш с тях, или да си ги включиш в твоя апп (ако примерно искаш да бъгфикснеш нещо, или просто да го промениш). При смяна на версия на РОМ-а си трябва нова версия на този символен файл, но то за тях не е голям проблем. При теб може би ще се случва доста по-често (предвид това че не си ограничен да е в РОМ). От една страна можеш да пазиш обратна съвместимост в новите версии на "биос"-а, от друга можеш да си адаптираш процеса на билдване първо да разбира коя версия е bios-а и тогава да линква коректно - ако имаш инструмент за зареждане/билдване, това цялото може да е скрито - чете се версия на биоса, намира си по версията верния линкер скрипт и билдва/линква. И двете имат предимства и недостатъци, както всяко нещо.
|
Вто Мар 02, 2021 8:57 pm |
|
|
syscop
Ранг: Форумен бог
Регистриран на: Пет Юни 03, 2005 8:39 pm Мнения: 1954
|
Re: Новото проектче :)
Защо не си направиш call-151
_________________ Определянето стойността на дадена величина се нарича ИЗМЕРВАНЕ!
|
Вто Мар 02, 2021 9:07 pm |
|
|
Н'бабане Гт'муан'га
Ранг: Форумен бог
Регистриран на: Сря Яну 25, 2012 8:14 am Мнения: 4577 Местоположение: Новата земя на племето Мутум'ба
|
Re: Новото проектче :)
Да, точно концепцията на луминари ми трябва. Имам ром с функциите и хедър който ги описва, който закачам към юзърска програма. Проблемът ми е как да направя тоя хедър файл. Иначе изглежда ще успея да излъжа ХС32 да компилира юзърските програми, а аз после ще ги зареждам и пускам с мой лоудър И какво да прави?
_________________ 'просто' е технически синоним на 'красиво'
|
Вто Мар 02, 2021 9:49 pm |
|
|
gicho
Ранг: Форумен бог
Регистриран на: Пон Мар 13, 2006 12:59 pm Мнения: 3855 Местоположение: Габрово
|
Re: Новото проектче :)
За директен начин незнам, но там инструменти бол - readelf, objdump, objcopy - все ще можеш да си извадиш нужната информация. В краен случай и от един map файл можеш да го генерираш. Бях правил нещо подобно навремето, но беше някакъв питонски модул, дето парсираше елф и търсех нещо вътре.
|
Вто Мар 02, 2021 10:11 pm |
|
|
stefan63
Ранг: Форумен бог
Регистриран на: Вто Фев 07, 2012 10:22 pm Мнения: 3074
|
Re: Новото проектче :)
Имаш възможност да обявиш именован код сегмент и да му зададеш адрес. После всички биосовски функции се задават да са в този сегмент. Или пък -имаш възможност да задаваш абсолютен адрес на функция - така поне го разбрах в описанието на XC32. Тогава на юзерската програма и трябва само тоя адрес и няколко инструкции на асемблер, ако не се намери друго решение.
От тая материя имам спомени от ДОСа, повечето функции се викат през едно прекъсване, с различни стойности на AX регистъра. Доколкото прочетох и ПИК32 има 1-2 софтуерни прекъсвания.
Или съм много далече от 32битовите и въпросът е съвсем друг?
|
Вто Мар 02, 2021 10:33 pm |
|
|
syscop
Ранг: Форумен бог
Регистриран на: Пет Юни 03, 2005 8:39 pm Мнения: 1954
|
Re: Новото проектче :)
Имаш входна/ни точк(а|и) на определен(и) адрес(и). Правиш стартъп за програмите на потребителите + файл за линкера да ги намести на правилния адрес. Подобно нещо се случва след reset. Разликата е, че няма нужда от инициализация на памети, периферия и т.н., и адресът, от който ще тръгват е различен. Човечето иска да мига светодиод, пише си програмата свързва я с твоя стартъп и/или евентуално други библиотеки. Качва си програмата чрез твоя "биос, loader" на определен адрес и я стартира (или ти автоматично я стартираш). Даваш му header/source с описание на входната/те точк(а|и), за да може да ползва функции, които ти му предоставяш. Ако няма да му разрешаваш да ползва твои функции отпада необходимостта от входна/ни точк(а|и).
_________________ Определянето стойността на дадена величина се нарича ИЗМЕРВАНЕ!
|
Вто Мар 02, 2021 10:48 pm |
|
|
Н'бабане Гт'муан'га
Ранг: Форумен бог
Регистриран на: Сря Яну 25, 2012 8:14 am Мнения: 4577 Местоположение: Новата земя на племето Мутум'ба
|
Re: Новото проектче :)
Аха, разбирам какво имаш предвид, ама това не е каквото call-151 прави
_________________ 'просто' е технически синоним на 'красиво'
|
Сря Мар 03, 2021 3:49 pm |
|
|
Н'бабане Гт'муан'га
Ранг: Форумен бог
Регистриран на: Сря Яну 25, 2012 8:14 am Мнения: 4577 Местоположение: Новата земя на племето Мутум'ба
|
Re: Новото проектче :)
Току що рилийснах първата завършена версия: ello.cc
_________________ 'просто' е технически синоним на 'красиво'
|
Вто Мар 16, 2021 4:02 pm |
|
|
ike
Ранг: Форумен бог
Регистриран на: Пет Фев 04, 2005 8:59 pm Мнения: 6019 Местоположение: София
|
Re: Новото проектче :)
Като за начинаещ бива. Надявам се сега като си по-спокоен и си видиш грешките, да пуснеш и подобрената версия. Нека тези първоначални спънки не те откажат от мечтата ти, някой ден да разработиш свестен демонстрационен компютър.
_________________ Warriors of the Night, ASSEMBLER!!!
|
Съб Мар 20, 2021 3:43 am |
|
|
Zdrav
Ранг: Форумен бог
Регистриран на: Сря Яну 26, 2005 1:01 pm Мнения: 1952 Местоположение: Варна
|
Re: Новото проектче :)
Ха Да не би...?!? Да казваш, че царят е гол?
_________________ Най-опасният враг на истината и свободата е мнозинството.
|
Съб Мар 20, 2021 8:07 am |
|
|
Н'бабане Гт'муан'га
Ранг: Форумен бог
Регистриран на: Сря Яну 25, 2012 8:14 am Мнения: 4577 Местоположение: Новата земя на племето Мутум'ба
|
Re: Новото проектче :)
Благодаря. Ще продължавам да боря и се надявам като порасна някой ден да стигна до твоето напреднало ниво. Ще ми е също от голяма полза да покажеш нещо твое за да мога да се уча оттам
_________________ 'просто' е технически синоним на 'красиво'
|
Съб Мар 20, 2021 12:00 pm |
|
|
Zdrav
Ранг: Форумен бог
Регистриран на: Сря Яну 26, 2005 1:01 pm Мнения: 1952 Местоположение: Варна
|
Re: Новото проектче :)
Никой, нищо ново, не може да те научи, за това как се правят "чесалки за егото" на Н'бабане Гт'муан'га.
_________________ Най-опасният враг на истината и свободата е мнозинството.
|
Нед Мар 21, 2021 3:22 pm |
|
|
Н'бабане Гт'муан'га
Ранг: Форумен бог
Регистриран на: Сря Яну 25, 2012 8:14 am Мнения: 4577 Местоположение: Новата земя на племето Мутум'ба
|
Re: Новото проектче :)
Ако това те тормози, не е мой проблем. Намери си начин да се чешеш сам, аз нямам интерес...
_________________ 'просто' е технически синоним на 'красиво'
|
Нед Мар 21, 2021 3:51 pm |
|
|
ike
Ранг: Форумен бог
Регистриран на: Пет Фев 04, 2005 8:59 pm Мнения: 6019 Местоположение: София
|
Re: Новото проектче :)
1. Хареса ми това че си избрал да направиш лесен компютър за хората, които сега навлизат в електрониката. Само с няколко елемента могат да направят нещо работещо и от там могат да тръгнат да правят експерименти. 2. Хареса ми и това че си избрал С, а не BASIC, защото BASIC уврежда повече мозъка отколкото С. Нека първо започнем с две картинки. Едната е с размер 85 531 байта, а другата е с размер 61 168 байта. На тебе лично коя снимка ти харесва повече - по-голямата или по-малката? JPG: GIF:
_________________ Warriors of the Night, ASSEMBLER!!!
|
Нед Мар 21, 2021 11:47 pm |
|
|