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

 
 
> WinAVR (sd+atmega16), вопрос по компиляции
VaaG
сообщение Feb 21 2009, 20:05
Сообщение #1





Группа: Новичок
Сообщений: 13
Регистрация: 21-02-09
Из: Москва
Пользователь №: 45 189



Всем Доброго Времени суток!!!

Пытаюсь подключить SD карту canon 32мб к ATmega16

ЦЕЛЬ: Инициализация SD, запись, чтение на МК

Решил рациональнее действовать и использовать "проверенные" источники
В коде используется библиотека EFSL


Алгоритм запуска тест-программы:

(библиотеку я скомпилировал!!!)
1. Make sure that your directory contains both the example from above called
avrtest.c and the library libefsl.a .


2. Compile the program:
• On Linux (with avr-gcc): avr-gcc -I/home/user/efsl/inc/ -I/home/user/efsl/conf
-ffreestanding -mmcu=atmega128 -Os -o avrtest.o avrtest.c -L./ -lefsl
• On Windows (with WinAVR): avr-gcc -Ic:\efsl\inc -Ic:\efsl\conf -
ffreestanding -mmcu=atmega128 -Os -o avrtest.o avrtest.c -L.\ -lefsl
3. Generate a hexfile (avr-objcopy -j .text -j .data -O ihex avrtest.o avrtest.hex)


(Проблема всплыла здесь...не могу понять что делать с подчёркнутой директивой)


Далее всё просто и понятно!

4. Connect an SD-card to your Atmega128 with a file called orig.txt on it.
5. Flash the hex file into your μC.
• On Linux: avrdude -P /dev/ttyUSB0 -c stk500 -p m128 -Uflash:w:avrtest.hex
• On Windows: use Atmel AVR-Studio
6. Reset your μC and wait some time (depending on how big the file orig.txt
is).
7. Disconnect the SD-card, so you can put it in your card reader and find
out if the file orig.txt is copied to copy.txt .


Помогите разобраться с созданием (hex) по этой директиве (выше)...
Если эта тест-программа заработает, то дальше точно сам разберусь!!!!

С Уважением
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Petka
сообщение Feb 21 2009, 21:24
Сообщение #2


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

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(VaaG @ Feb 21 2009, 23:05) *
Всем Доброго Времени суток!!!
...
3. Generate a hexfile (avr-objcopy -j .text -j .data -O ihex avrtest.o avrtest.hex)

(Проблема всплыла здесь...не могу понять что делать с подчёркнутой директивой)
....

А чего тут непонятного ? подчёркнутую строку (без скобок, само-собой) копируете в командную строку и запускаете.
Go to the top of the page
 
+Quote Post
VaaG
сообщение Feb 22 2009, 08:57
Сообщение #3





Группа: Новичок
Сообщений: 13
Регистрация: 21-02-09
Из: Москва
Пользователь №: 45 189



Цитата(Petka @ Feb 22 2009, 00:24) *
...копируете в командную строку и запускаете.


Создал, директорию, поместил туда libefsl.a и avrtest.c (сама программа)
Через командную стороку зашёл в эту директорию и запустил команду компиляции
avr-gcc -Ic:\efsl\inc -Ic:\efsl\conf -ffreestanding -mmcu=atmega128 -Os -o avrtest.o avrtest.c -L.\ -lefsl

В итоге ошибка...
Прикрепленное изображение



Вот содержимое avrtest.c
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#include <efs.h>

void hang(void);

void main(void)
{
EmbeddedFileSystem efs;
EmbeddedFile file_r, file_w;
unsigned short i,e;
char buf[512];

debug_init();

DBG((TXT("Hello :-)")));

if(efs_init(&efs,0)!=0){
hang();
}

if(file_fopen(&file_r,&efs.myFs,"orig.txt",'r')!=0){
hang();
}

if(file_fopen(&file_w,&efs.myFs,"copy.txt",'w')!=0){
hang();
}

while(e=file_read(&file_r,512,buf)){
file_write(&file_w,e,buf);
}

file_fclose(&file_r);
file_fclose(&file_w);

fs_umount(&efs.myFs);

hang();
}

void hang(void)
{
while((1))
_NOP();
}
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Как я понял, компилятор не видит какие-то дополнительные библиотеки, ресурсы...
efs.h ???

В чем я ошибся?
Go to the top of the page
 
+Quote Post



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

 


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


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