|
Самопрограммирование AVR, Помогите определить причину ошибки |
|
|
|
May 14 2008, 12:42
|
Участник

Группа: Новичок
Сообщений: 50
Регистрация: 5-12-07
Пользователь №: 32 986

|
Помогите, please! Программирую в IARe! Возникла такая ошибка
Fatal Error[e38]: Option -H must not be defined more than once: -H1895 Никак не могу её исправить! Если кто-нибудь сталкивался, подскажите что бы это могло быть?
|
|
|
|
|
 |
Ответов
|
May 22 2008, 14:13
|
Участник

Группа: Новичок
Сообщений: 50
Регистрация: 5-12-07
Пользователь №: 32 986

|
DoSpm //*************fill temp bufer*************
PUSH R31 PUSH R30
ldi r18,96// load data from mem ldi r19,0 st Z,R18 std Z+1,R19
ldi R26, low(flash_data) ldi R27, high(flash_data) ldi R23,0x32 fill_temp: LD R0,X+ LD R1,X+ ST Z, R0 STD Z+1,R1 wait_spm: IN R18,0x37 MOV R19,R18 SBRC R19, 0 RJMP wait_spm
LDI R18, 1 LDI R30, flash_data LD R20, Z LDD R21,Z+1 mov R30, R17 LDI R31,0 MOVW R1:R0,R21:R20 OUT 0x37,R18 SPM
LDI R16,1 OUT SPMCR,R16 SPM
dec R23 dec R23 cpi R23,0 brne fill_temp
//***************************************** //******* save data to programm memory***** LDI R16,low(flash_adr)//load address in prog.mem. LDI R17,high(flash_adr) MOVW R31:R30,R17:R16
LDI R16,5 OUT SPMCR,R16 SPM POP R30 POP R31
//***************************************** RET END DoSpm Вот накалякала вот такую штуку.В результате записывается один байт, во второй просто нули и всё
Сообщение отредактировал Len_OK - May 22 2008, 14:28
|
|
|
|
|
May 22 2008, 20:57
|

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

|
Цитата Len_OK  У меня к вам вопрос (точнее два вопроса). 1. Если вы не собираетесь писать программу на "C" тогда зачем пользоваться убогим иаровским ассемблером? avrasm2 в AVR-Studio гораздо более удобен и правилен "как асм". 2. Напротив, если собираетесь писать на "C", то неужели одной DoSpm( addr, data, code) недостаточно? имея одну функцию "заправки" требуемых регистров и вызова SPM, все остальное можно оформить на C примерно в таком виде: Код DoSpm( page_addr, 0x0, CODE_ERASE); // <--- стререть страницу DoSpm( page_addr, 0x0, CODE_REENABLE_RWW); // <--- разлочить RWW секцию если работаем из boot секции for( i = 0; i < PAGE_SIZE; i++) { // fill temp buffer DoSpm( page_addr + i, <слово данных>, CODE_FILL_TEMP_BUF); // <-- заполнить temp буфер } DoSpm( page_addr, 0x0, CODE_DO_PROGRAM ); // <--- зашить темп буфер DoSpm( page_addr, 0x0, CODE_REENABLE_RWW); // разлочить RWW если работаем из boot секции
|
|
|
|
Сообщений в этой теме
Len_OK Самопрограммирование AVR May 14 2008, 12:42 Igor26 Ничего не понял. Поподробней пожалуйста.
P.S. Вы... May 14 2008, 13:01 Len_OK Цитата(Igor26 @ May 14 2008, 16:01) P.S. ... May 14 2008, 13:05 Igor26 Вектора прерываний на область загрузчика переключа... May 14 2008, 13:09 Len_OK Цитата(Igor26 @ May 14 2008, 16:09) Векто... May 14 2008, 13:19  Сергей Борщ Цитата(Len_OK @ May 14 2008, 16:19) Я под... May 14 2008, 14:17   Len_OK Цитата(Сергей Борщ @ May 14 2008, 17:17) ... May 14 2008, 14:23 Len_OK Вот ещё ошибочка
Error[e46]: Undefined external ... May 15 2008, 06:42 Igor26 А подключен к проекту хидер inavr.h или intrinsics... May 15 2008, 06:49 Len_OK Цитата(Igor26 @ May 15 2008, 09:49) А под... May 15 2008, 06:50 Igor26 Что удалось найти. Функция __AddrToZByteToSPMCR_SP... May 15 2008, 07:41 Len_OK Обратите внимание на регистр SPMCR. В Tiny2313 он ... May 15 2008, 07:47 Len_OK никто никогда не использовал spm для Tiny? May 15 2008, 13:12 defunct Цитата(Len_OK @ May 15 2008, 16:12) никт... May 15 2008, 13:19 Len_OK ну хоть под Tiny2313?
Цитата(defunct @ May ... May 15 2008, 13:27 defunct Цитата(Len_OK @ May 15 2008, 16:27) а вст... May 15 2008, 13:41 muravei Цитата(Len_OK @ May 15 2008, 17:27) Ассем... May 15 2008, 14:22 Igor26 Я так понял, Вы пользуютесь апнотом от AVR. Те, ко... May 15 2008, 18:07 Len_OK Цитата(Igor26 @ May 15 2008, 21:07) Попро... May 16 2008, 07:57  defunct Цитата(Len_OK @ May 16 2008, 10:57) Вроде... May 16 2008, 09:38   Len_OK Цитата(defunct @ May 16 2008, 12:38) А вы... May 16 2008, 09:48    defunct Цитата(Len_OK @ May 16 2008, 12:48) а есл... May 16 2008, 09:55     Len_OK Цитата(defunct @ May 16 2008, 12:55) Кака... May 16 2008, 10:17      defunct Цитата(Len_OK @ May 16 2008, 13:17) IAR4.... May 16 2008, 10:21      Len_OK [quote name='Len_OK' post='412200... May 16 2008, 10:23       defunct Цитата(Len_OK @ May 16 2008, 13:23) Может... May 16 2008, 10:24        Len_OK Решилась проблемка с записью во флешку ! Тепер... May 20 2008, 09:26 defunct Использовать intrinsics для tiny у меня не получил... May 15 2008, 21:32 Len_OK есть ли разница между расширениями х.s90 и х.s?
Я... May 16 2008, 10:39 Len_OK Помогите разобраться почему не пишутся данные во ф... May 22 2008, 10:29 _Pasha Цитата(Len_OK @ May 22 2008, 13:29) Помог... May 22 2008, 11:20 defunct Заполнить надо весь temp буфер.
После этого писать... May 22 2008, 11:23 Len_OK Как заполнить всю страницу данными, например при в... May 22 2008, 12:37 =GM= Цитата(Len_OK @ May 22 2008, 11:37) Как з... May 22 2008, 13:22  Len_OK Цитата(defunct @ May 22 2008, 23:57) У ... May 23 2008, 07:32   defunct Цитата(Len_OK @ May 23 2008, 10:32) Я кон... May 23 2008, 10:02    Len_OK [quote name='defunct' date='May 23 200... May 23 2008, 11:46 defunct Цитатаразмер страницы указываю 32(а должно быть 16... May 23 2008, 15:09 Len_OK Цитата(defunct @ May 23 2008, 18:09) Если... May 26 2008, 06:21 defunct Асм функция используемая вами - рабочая. Полагаю ч... Jun 1 2008, 22:27 Len_OK Цитата(defunct @ Jun 2 2008, 01:27) см ат... Jun 2 2008, 06:08
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|