Отговори на тема  [ 5 мнения ] 
Tiny Bootloader за PIC18F... и конфигурационни битове 
Автор Съобщение
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Съб Май 27, 2006 12:37 pm
Мнения: 647
Местоположение: с. Згалево
Мнение Tiny Bootloader за PIC18F... и конфигурационни битове
Здравейте!
И на мене ми се наложи вече да ползвам някакъв bootloader. Избрах Tiny и по принцип всичко си заработи нормално - поне за сега. Имам обаче две неясноти по въпроса:
1. Основната е с конфигурационните битове. Не мога да разбера какво става с тия конфигурационни битове, когато ползвам bootloader. Тоест - кога какви са валидни. До колкото разбирам - bootloaderа може да препрограмира конфигурационните битове. До тук добре - ама гледам, че и в програмата на bootloaderа има конфигурационни битове /с какъв кварц и т.н./ и те могат да бъдат различни от тия на основната ми програма. Ако bootloaderа препрограмира конфигурационните битове с тези от моята програма, то при следващия рестарт вече би трябвало да са валидни тези от основната програма. В такъв случай се губи съдържанието на конфигурационните битове на bootloaderа. С други думи - не ми е съвсем ясно дали bootloaderа наистина препрограмира битовете - и изобщо каква точно е концепцията. Тоест питам дали може - bootloaderа да си е винаги един и същ- да кажем с вътрешен кварц и на определена честота - а след това основната програма да си има собствена конфигурация в различните устройства.
2. Другата неяснота е - какво трябва да направя в компилатора - HI-TECH PICC-18 - за да обясня, че ще ползвам bootloader. Аз правя само едно нещо - резервирам място в ROM паметта - така, че основната ми програма да не ползва мястото където е записан bootloaderа. Правя го така: --ROM=default,-FF00-FFFF. Всичко си работи. Имам съмнение обаче, че по този начин при стартиране на процесора - би трябвало да ми се стартира направо моята програма - а не bootloaderа, щото компилатора не знае, че при ресет трябва да скочи към bootloaderа. Въпреки това обаче - тръгва bootloaderа и всичко си работи. Да не би той сам - по времето когато записва програмата да пренасочва стартовата и точка???

Те това са ми неяснотите - от типа: "Работи - ама що работи...?" :D
Ако някой ме светне - ще има почерпка...


Чет Фев 14, 2008 1:23 pm
Профил WWW
Ранг: Минаващ
Ранг: Минаващ
Аватар

Регистриран на: Нед Яну 15, 2006 3:01 am
Мнения: 15
Мнение 
1. Ако си билднал боот лоадера да работи с вътрешния осцилатор, а в начлото на твоята програма си конфигурираш пик-а да работи с външен кварц трябва да стане. Ама не съм ползвал до сега такава конфигурация.

2. Когато отвориш хекс-а с терминала на боот лоадера в началото му се добая инструкции за преход към боот лодера. С две думи не ти триабва да казваш на компилатора, че имаш боот лоадер. Само трябва да заделиш място в края на програмната памет, както си направил вече. :)


Пет Фев 15, 2008 12:41 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение 
Чесотата на кварца оказва влияние на baudrate-а на RS-a, но tiny твърди че има ауто бауд рате, така че това не би трябвало да е проблем за него. На втория въпрос отговора е следния : в началото на твоята програма трябва да имаш :
org 0x0000
goto programa
-- вектори на прекъсване
org 0x000C (примерно)
programa....
....

това е така защото бутлоадера записва на адрес 0x0000 гото към него си а това гото дето ти го слагаш го записва някъде в себе си. Какво става : когато пуснеш пикчето то първо отива на лоадера, той чака няколко микросекунди за единици постъпващи на кома, ако ги има си задейства лоадера, ако ги нема ползва твойто гото за да го запрати там да копа.
В другите фузове трябва да не е забранено писане във флаш-а щото не получается.
goaman, не се пише такова гото ако лоадера е в началото на флаш-а. Повечето дето аз съм срещал са в края на флаша и на тях им трябва задължително това гото. Обаче повечето компилатори си го правят автоматично това (някой като им се каже, други по подразбиране).
За лоадер има един друг вариант (виждал съм го по компилаторите на Microelektronika) дето лоадера се компилира заедно с програмата. Ама кво става ако забие някъде докато се пише - не знам.


Пет Фев 15, 2008 5:28 pm
Профил ICQ
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Съб Май 27, 2006 12:37 pm
Мнения: 647
Местоположение: с. Згалево
Мнение 
Здравейте!
Сега копам по един друг буутлоадер - на HI-TECH от samples директорията. Пише че работил на 18ки - ама за сега нямам кой знае какъв успех. В общи линии обаче от него се разбират всички "хитрини" нужни за създаването на подобно отроче - та съм се захванал сериозно - че ми трябва за една работа. Мисля да направя буутлоадера да изглежда като част от основната програма. Тоест пускам си основната програма -и извиквам функция от менюто - която прехвърля управлението към буутлоадер заврян някъде по краищата на паметта. При изход от буу-а - естественно рестарт - и пак в основната програма. И всичкото това щото ми се иска да имам някаква индикация за това какво става по време на смяната на програмата - ще си ползвм дисплейчето и т.н. Та сега се боря - с не много голям успех де - с една 18Ф452-ка, щото това май ми е единственния вариант с читав UART порт. Тия новите са големи лайна и не стават за мойта работа... :x


Пет Фев 15, 2008 9:20 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение 
juzisound - преди седмица пуснах тука един лоадер (MCLoader) дето аз го ползвам и съм доволен от него. Е няма такива индикации, ама пък досега не се е дънил.


Съб Фев 16, 2008 1:00 pm
Профил ICQ
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 5 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 3 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни