Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
12.10.2009, 16:59
|
#1
|
Вид на жительство
Регистрация: 13.05.2005
Сообщений: 386
Сказал спасибо: 9
Сказали Спасибо 44 раз(а) в 37 сообщении(ях)
|
Как на Си создать EEPROM segment?
Имеем MEGA16. В EEPROM на этапе первоначальной прошивки надо заложить некие начальные данные.
На АСМе делаем так
.eseg
.org 4
.db 0x15, 0x26
Имеем в EEPROM по адресу 4 число 0x15, по адресу 5 число 0x26.
При компиляции получаем "файл.eep".
Как эту же операцию совершить на Си средствами AVRStudio и Winavr?
Что нужно написать в исходном сишном коде?
|
|
|
|
12.10.2009, 18:10
|
#2
|
Гражданин KAZUS.RU
Регистрация: 13.06.2005
Адрес: РК г.Павлодар
Сообщений: 866
Сказал спасибо: 99
Сказали Спасибо 216 раз(а) в 140 сообщении(ях)
|
Re: Как на Си создать EEPROM segment?
Можно так.
EEMEM char Base[16]={0x01,0x02,....0x10}
__________________
Не ошибается лишь тот, кто ни чего не делает!
|
|
|
|
12.10.2009, 20:11
|
#3
|
Почётный гражданин KAZUS.RU
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
|
Re: Как на Си создать EEPROM segment?
Немножко дополню.
1. #include ‹avr/eeprom.h›
2. Тип нужно указывать, иначе по умолчанию пишет 16 битное слово
uint8_t EEMEM char Base[16]={0x01,0x02,....0x10};
3. Мейк -файл должен формировать .eep файл, пример прилагаю. Поменяйте в нем частоту, тип процессора и название исходного файла (файлов).
|
|
|
|
13.10.2009, 10:47
|
#4
|
Вид на жительство
Регистрация: 13.05.2005
Сообщений: 386
Сказал спасибо: 9
Сказали Спасибо 44 раз(а) в 37 сообщении(ях)
|
Re: Как на Си создать EEPROM segment?
При этом начинает заполняться eeprom с нулевого адреса. А можно ли явно указать стартовый адрес для размещения данных?
|
|
|
|
13.10.2009, 11:19
|
#5
|
Почётный гражданин KAZUS.RU
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
|
Re: Как на Си создать EEPROM segment?
В мейк-файле проще всего
Код:
|
%.eep: %.elf
@echo
@echo $(MSG_EEPROM) $@
-$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \
--change-section-lma .eeprom=0x1a -O $(FORMAT) $‹ $@ |
|
|
|
|
13.10.2009, 11:20
|
#6
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
Re: Как на Си создать EEPROM segment?
Да просто разместите перед этим чепуху любую в еепром.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
13.10.2009, 12:10
|
#7
|
Вид на жительство
Регистрация: 13.05.2005
Сообщений: 386
Сказал спасибо: 9
Сказали Спасибо 44 раз(а) в 37 сообщении(ях)
|
Re: Как на Си создать EEPROM segment?
все понял. начальный адрес в мэйк-файле. А если надо отделить блоки данных, то руками считать смещения и вставлять пустые массивы.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 01:05.
|
|