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

 
 
> bootloader в IARe 3,10, Помогите разобраться как сделать
arttab
сообщение Jul 5 2006, 08:16
Сообщение #1


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

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



Необходимо иметь возможность обновлять микрокод мк через последовательный интерфейс. Для экономии места в мк (МЕГА8) хочу сделать так: функции отвечающие за протокол связи должны находиться в области загрузчика как и вектора прерываний.
За размещение векторов в области загрузчика отвечает fuse. Это понятно. За размер загрузчика др. fusы.
Как указать IARу новое место расположения векторов?
Было так:
#pragma vector=USART_TXC_vect
__interrupt void my_USART_TXC_vect(void)
{ ....
Должно быть так:
#pragma vector=0xС1A
__interrupt void my_interrupt_handler(void)
{....
или как то еще можно задать?

Далее. Надо указать место размещения некоторых функций в области загрузчика.
#pragma location="MYSEGMENT"
void f() @ "MYSEGMENT";
void g() @ "MYSEGMENT"
{
}
Так? MYSEGMENT=FLASH_END-BOOT_LOADER_SIZE , Где BOOT_LOADER_SIZE размер загрезчика в словах?

И как на Си будут выглядеть команды стирания страниц и загрузки буфера?


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
arttab
сообщение Jul 14 2006, 09:08
Сообщение #2


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

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



или я чего туплю или как....
не понимаю как ими воспользоваться.
__AddrToZByteToSPMCR_SPM((void __flash*)(Addr), 0x03)
сдесь понятно: номер страници и вперед
А я ковырялся с
/* SPM */

/*
__DataToR0ByteToSPMCR_SPM, pseudo code.
MOV R0,data
OUT SPMCR,byte
SPM
*/
__intrinsic void __DataToR0ByteToSPMCR_SPM(unsigned char data,
unsigned char byte);

и не всегда мог понять для чего они.
Получается надо смотреть, то что начинается с #define:

_SPM_LOCKBITS(Data) // где data 1 байт. установить биты защиты
_SPM_ERASE(Addr) // Addr 2 Байта 11-5 биты. стереть страницу
_SPM_FILLTEMP(Addr,Word) //Addr 2 Байта (4-0 биты), word 2 Байта. слово в буфер
_SPM_PAGEWRITE(Addr) //Addr 2 Байта 11-5 биты. запись страници
unsigned char t = _SPM_GET_LOCKBITS() //чтение байта защиты
unsigned char t =_SPM_GET_FUSEBITS() // чтение байта конфигурации

А вот что за эти команды:
#define _SPM_24_ERASE(Addr) и т.д. с цифрой 24?
Нехватает команды очиски буфера и макроса ожидания выпоkytybz операции.
Ладно, носом ткнули, буду еще смотреть аплек109. Спасибо


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jul 17 2006, 07:59
Сообщение #3


Гуру
******

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



Цитата(arttab @ Jul 14 2006, 12:08) *
или я чего туплю или как....
не понимаю как ими воспользоваться.

__intrinsic void __DataToR0ByteToSPMCR_SPM(unsigned char data, unsigned char byte);

и не всегда мог понять для чего они.

а... Я-то думал вы сначала даташит про bootloader прочитали...
Setting the Boot Loader Lock Bits by SPM To set the Boot Loader Lock Bits, write the desired data to R0, write “X0001001” to SPMCR and execute SPM within four clock cycles after writing SPMCR.
Интересно, что же может делать функция с загадочным названием __DataToR0ByteToSPMCR_SPM?
Цитата
А вот что за эти команды:
#define _SPM_24_ERASE(Addr) и т.д. с цифрой 24?
Не пользовался, но могу предположить что для процессоров с более 64К памяти, т.е. с адресом в 24 бита?
Цитата
Нехватает команды очиски буфера и макроса ожидания выпоkytybz операции.
Ну нет в функциях команды SPM очистки буфера The temporary buffer will auto-erase after a page write operation or by writing the RWWSRE bit in SPMCR. А макрос может выглядеть так: while(SPMCR & (1<<SPMEN));



Цитата(arttab @ Jul 15 2006, 14:42) *
2. В main #include "flash.h".
Библиотеку flash.h найти в папках IAR не удалось.
Согласно правилам языка высокого уровня С если имя файла в директиве #include указано в двойных кавычках то компилятор ищет его в текущей директории, т.е. в папке проекта. Если же в угловых - то в папках указанных компилятору в опциях как include path. Поэтому flash.h искать в папках IAR не имело смысла - он должен быть в исходниках от "аплекухи 910".


--------------------
На любой вопрос даю любой ответ
"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

Сообщений в этой теме
- arttab   bootloader в IARe 3,10   Jul 5 2006, 08:16
- - Faradey   посмотрите в примере от Atmel. Там не совсем то чт...   Jul 5 2006, 15:18
|- - arttab   Цитата(Faradey @ Jul 5 2006, 22:18) посмо...   Jul 6 2006, 08:57
- - arttab   Это приложение к ан109. уже взял, уже ковыряю.... ...   Jul 6 2006, 01:42
- - arttab   Что означает __C_task void loader(void)? Я только ...   Jul 6 2006, 03:15
- - arttab   Если я правильно понял, то: _C - указывает что нуж...   Jul 6 2006, 04:11
|- - IgorKossak   Цитата(arttab @ Jul 6 2006, 07:11) Если я...   Jul 6 2006, 07:08
- - arttab   Еще вопрос по адресам прерываний: В табл 18 и 19 а...   Jul 6 2006, 04:49
- - arttab   Спасибо! Хоть один не отсылает к докам по IARу...   Jul 6 2006, 08:22
|- - IgorKossak   Цитата(arttab @ Jul 6 2006, 11:22) Если я...   Jul 6 2006, 12:46
- - arttab   Ограниченость памяти меги8 и наталкивает на совмес...   Jul 7 2006, 02:32
|- - Old1   Цитата(arttab @ Jul 7 2006, 05:32) Ограни...   Jul 7 2006, 07:23
|- - Сергей Борщ   Цитата(arttab @ Jul 7 2006, 05:32) Вопрос...   Jul 7 2006, 07:24
- - arttab   Есть вообще возможность разместить 2 таблици векто...   Jul 7 2006, 07:16
- - IgorKossak   arttab, Вы взяли для модифицирования не тот конфиг...   Jul 7 2006, 07:32
- - arttab   Спасибо всем. разбираюсь... А что значит: Цитатасд...   Jul 7 2006, 08:00
|- - IgorKossak   Цитата(arttab @ Jul 7 2006, 11:00) Спасиб...   Jul 7 2006, 08:16
- - arttab   Сергей Борщ, в указаном Вами файле RSEG LOADER...   Jul 7 2006, 08:27
|- - Сергей Борщ   Цитата(arttab @ Jul 7 2006, 11:27) Сергей...   Jul 7 2006, 09:37
- - arttab   Начал делать отдельно Bootloader. В проекте опред...   Jul 9 2006, 05:46
|- - IgorKossak   Цитата(arttab @ Jul 9 2006, 08:46) Начал ...   Jul 10 2006, 06:53
- - arttab   Спасибо за подсказку. В my_lnkm8s.xcl переправил т...   Jul 10 2006, 14:15
|- - Сергей Борщ   Цитата(arttab @ Jul 10 2006, 17:15) Код в...   Jul 10 2006, 17:59
- - arttab   ЦитатаОбрати внимание на строчку .xcl: -H1895 -h(C...   Jul 11 2006, 02:05
- - arttab   Сергей Борщ? А где лежит файл intrinsics.h? не наш...   Jul 11 2006, 03:03
|- - Сергей Борщ   Цитата(arttab @ Jul 11 2006, 06:03) Серге...   Jul 11 2006, 09:00
- - arttab   ЦитатаНе знаю что считать старшей версией Имел в в...   Jul 11 2006, 09:36
|- - Сергей Борщ   Цитата(arttab @ Jul 11 2006, 12:36) Цитат...   Jul 11 2006, 14:15
- - arttab   Уф, переполз на 4.12А. с трудом. intrinsics.h нужн...   Jul 12 2006, 09:02
- - arttab   Сергей Борщ, не моглибы Вы прокоментировать мои из...   Jul 13 2006, 07:33
|- - Сергей Борщ   Цитата(arttab @ Jul 13 2006, 10:33) Серге...   Jul 13 2006, 08:20
- - arttab   Спасибо. Просто я не понял как ими воспользоваться...   Jul 13 2006, 09:28
- - arttab   Люди, подскажите - есть ли в IAR функции для самоп...   Jul 14 2006, 06:57
|- - IgorKossak   Цитата(arttab @ Jul 14 2006, 09:57) Люди,...   Jul 14 2006, 08:24
|- - Сергей Борщ   Цитата(arttab @ Jul 14 2006, 09:57) Люди,...   Jul 14 2006, 08:32
- - arttab   Бывае говоришь о чем то со спецом, все он говорить...   Jul 15 2006, 11:42
- - arttab   ЦитатаСогласно правилам языка высокого уровня С ес...   Jul 17 2006, 08:10
- - arttab   Новая проблема: пытаюсь сгенерить hex а IAR ругает...   Jul 17 2006, 09:47
|- - Сергей Борщ   Цитата(arttab @ Jul 17 2006, 12:47) Новая...   Jul 17 2006, 10:26
|- - osnwt   Рекомендую посмотреть на мой проект Crypto-Boot (т...   Jul 17 2006, 15:16
- - arttab   Нашел разницу в дебугере и релайсе: general option...   Jul 18 2006, 01:40
|- - IgorKossak   Цитата(arttab @ Jul 18 2006, 04:40) ...Мо...   Jul 18 2006, 06:21
- - arttab   Лучше конечносделать как надо, но для small 1040 б...   Jul 18 2006, 07:02
|- - Сергей Борщ   Цитата(arttab @ Jul 18 2006, 10:02) Лучше...   Jul 18 2006, 07:37
|- - prottoss   Цитата(Сергей Борщ @ Jul 18 2006, 15:37) ...   Jul 18 2006, 08:27
- - arttab   Так до меня и не дошли все команды для самопрогамм...   Jul 18 2006, 09:43
|- - prottoss   Цитата(arttab @ Jul 18 2006, 17:43) Так д...   Jul 18 2006, 10:03
- - arttab   Рекомендую читать вопрос и весь топик, а не часть...   Jul 19 2006, 02:30
|- - osnwt   Цитата(arttab @ Jul 19 2006, 05:30) Вопро...   Jul 19 2006, 06:40
- - arttab   уже сделал. оптимизация не мешает - функции специф...   Jul 19 2006, 09:27
- - arttab   Получается менять код. Есть тонкости: по аплекейше...   Jul 25 2006, 02:07
- - arttab   вот моя апликуха по написанию загрузчика по итогом...   Aug 2 2006, 08:47
|- - Сергей Борщ   Цитата(arttab @ Aug 2 2006, 11:47) вот мо...   Aug 2 2006, 09:41
- - arttab   спасибо! коечто поправлю, что то добавлю. По п...   Aug 3 2006, 02:43
|- - Сергей Борщ   Цитата(arttab @ Aug 3 2006, 05:43) спасиб...   Aug 3 2006, 07:56
- - arttab   над циклом подумаю. файл прикладываю здесь - не см...   Aug 3 2006, 08:50
- - arttab   Выкладываю подправленую версию. Сергей Борщ, если ...   Aug 18 2006, 02:04
- - arttab   Модератор или кто статьями занимается - может в ст...   Sep 4 2006, 09:22
- - IgorKossak   Если люди умеют пользоваться поиском по форуму и в...   Sep 4 2006, 12:12
- - _Alfred_   Хочу все же вернуться к вопросу о "принудител...   Aug 12 2007, 18:14
- - arttab   Если не хотите искать на форуме и посмотреть приме...   Aug 13 2007, 02:16
- - _Alfred_   Цитата(arttab @ Aug 13 2007, 05:16) посмо...   Aug 13 2007, 13:42
- - _Alfred_   Все, разобрался. Дело было как обычно в мельницах....   Aug 13 2007, 22:03
- - Len_OK   тут столько всего написано...Про функции самопрогр...   Dec 6 2007, 11:40
|- - _Alfred_   Цитата(Len_OK @ Dec 6 2007, 15:40) тут ст...   Dec 6 2007, 15:52
- - Len_OK   Я уже могу писать, но почему-то только в конце заг...   Dec 7 2007, 07:36
|- - sergik_vrn   Цитата(Len_OK @ Dec 7 2007, 10:36) Я уже ...   Dec 7 2007, 14:37
- - _Alfred_   sergik_vrn Наверное под "концом загрузчика...   Dec 7 2007, 23:22
- - Len_OK   всё никак не получается пишу Options->Linker-...   Dec 10 2007, 10:52
|- - IgorKossak   Цитата(Len_OK @ Dec 10 2007, 12:52) всё н...   Dec 10 2007, 13:02
- - Len_OK   извините конечно!!! Но что это за ошиб...   Dec 10 2007, 13:26
|- - Сергей Борщ   Цитата(Len_OK @ Dec 10 2007, 15:26) извин...   Dec 10 2007, 15:40
- - Len_OK   спасибо, я уже разобралась.Невнимательна немного...   Dec 10 2007, 15:53
- - alux   Пытаюсь использовать функции записи во флеш из апн...   Jan 16 2008, 20:08
|- - Сергей Борщ   Я думаю, ему не понравилось FARCODE. Поаробуйте пр...   Jan 16 2008, 21:15
||- - alux   Цитата(Сергей Борщ @ Jan 17 2008, 01:15) ...   Jan 17 2008, 06:14
||- - Сергей Борщ   Цитата(alux @ Jan 17 2008, 08:14) Прошу п...   Jan 17 2008, 09:27
||- - alux   Цитата(Сергей Борщ @ Jan 17 2008, 13:27) ...   Jan 17 2008, 13:51
||- - Сергей Борщ   Цитата(alux @ Jan 17 2008, 15:51) Если не...   Jan 17 2008, 14:11
||- - Baser   Цитата(alux @ Jan 17 2008, 15:51) Еще раз...   Jan 17 2008, 16:57
|- - Baser   Сразу возник вопрос: вы это пытаетесь добавлять в ...   Jan 17 2008, 09:41
- - alux   Код/* - lnkm324s.xcl - * XLINK command fi...   Jan 17 2008, 14:37
|- - Сергей Борщ   Цитата(alux @ Jan 17 2008, 16:37) Не вижу...   Jan 17 2008, 15:03
- - alux   Откровенно говоря у меня нет острой необходимости ...   Jan 17 2008, 15:37
- - arttab   я поимел большие проблемы в установлении причины п...   Jan 18 2008, 02:02
|- - alux   Цитата(arttab @ Jan 18 2008, 06:02) я пои...   Jan 18 2008, 11:16
|- - Baser   Цитата(alux @ Jan 18 2008, 13:16) To Base...   Jan 18 2008, 16:29
- - Breese   Возникла такая проблема - не работает АЕS бутлоаде...   Jan 20 2008, 18:02
|- - Сергей Борщ   Цитата(Breese @ Jan 20 2008, 20:02) дошел...   Jan 20 2008, 18:43
- - Breese   Эмм ошибка в пустой функции??? Кстати в АврСтудио ...   Jan 20 2008, 19:27
|- - aesok   Цитата(Breese @ Jan 20 2008, 22:27) Может...   Jan 20 2008, 19:52
|- - Breese   Цитата(aesok @ Jan 20 2008, 22:52) А что ...   Jan 20 2008, 20:08
- - arttab   Breese были приколы с "пустой функции main(vo...   Jan 22 2008, 01:29
- - YWAS   вот и у меня пришло время писать boot loader, начи...   Aug 22 2009, 18:52
|- - Сергей Борщ   Цитата(YWAS @ Aug 22 2009, 21:52) такое в...   Aug 22 2009, 21:01
- - YWAS   Сергей спасибо за подсказки... Все оказалось триви...   Aug 23 2009, 08:42
|- - Сергей Борщ   Цитата(YWAS @ Aug 23 2009, 11:42) после в...   Aug 23 2009, 09:16
- - YWAS   типа того, ошибся немного, было так MCUCR = temp|(...   Aug 23 2009, 09:46
2 страниц V   1 2 >


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

 


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


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