|
Ищу функции работы с SD картой, написанные для KEIL и SAM7 |
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 14)
|
May 21 2010, 09:24
|

Частый гость
 
Группа: Свой
Сообщений: 130
Регистрация: 8-08-08
Из: Новосибирск
Пользователь №: 39 488

|
Цитата(zheka @ May 21 2010, 16:17)  в проекте есть строка __ramfunc void timer0_c_irq_handler(void); ругается на __ramfunc. Что это я знаю, чем заменить это в KEIL - нигде информации не нашел. Можете подсказать? вы свою ветку давно смотрели?
|
|
|
|
|
May 21 2010, 09:40
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(zheka @ May 21 2010, 13:17)  в проекте есть строка __ramfunc void timer0_c_irq_handler(void); ругается на __ramfunc. Что это я знаю, чем заменить это в KEIL - нигде информации не нашел. Можете подсказать? Если знаете что это, то могу предложить два варианта замены: 1. #define __ramfunc /* Ничего, поживет и во флеши, нам проект пока собрать надо */ 2. Перед timer0_c_irq_handler написать: #pragma arm section code = "ramfunc", после - #pragma arm section code В области RAM scatter-файла добавить запись * (ramfunc) Ну, минут 20 надо на чтение документации, не больше. Цитата(igorenja @ May 21 2010, 13:24)  вы свою ветку давно смотрели? CARM давно упразднили.
|
|
|
|
|
May 21 2010, 09:57
|

Частый гость
 
Группа: Свой
Сообщений: 130
Регистрация: 8-08-08
Из: Новосибирск
Пользователь №: 39 488

|
Цитата(aaarrr @ May 21 2010, 16:40)  CARM давно упразднили. Да... Я просто не читал что там Вот ещё: Цитата Take a look to the on-line file
C:\Keil\ARM\Hlp\RVI.CHM - Embedded Programs - Specific Memory Areas.
Example in: C:\Keil\ARM\Examples\RAM_Function взято отсюда
|
|
|
|
|
May 21 2010, 10:21
|
Гуру
     
Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164

|
Лады, сделал. Ругается на __inline void AT91F_SSC_SetBaudrate ( Ругается так: "lib_AT91SAM7S64.h(52): error: #77-D: this declaration has no storage class or type specifier" кто-то мне наоборот советовал inline заменить на __inline Я сделал так же как с ramfunc. Компилируется. Но чем чревато отключение inline? Вот только думаю, будет ли работать, когда доберусь до отладочной платы. Биботека MMC.c: Код static void power_on (void) { // PORTE &= ~0x80; /* Socket power ON */ // for (Timer1 = 3; Timer1; ); /* Wait for 30ms */ // PORTB = 0b10110101; /* Enable drivers */ // DDRB = 0b11000111; // SPCR = 0b01010000; /* Initialize SPI port (Mode 0) */ // SPSR = 0b00000001; } Скачал с этого форума. Автор утверждает, что код "на ходу".
|
|
|
|
|
May 21 2010, 10:42
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(zheka @ May 21 2010, 14:21)  Ругается на __inline void AT91F_SSC_SetBaudrate ( Сдается мне, что с дефайнами в вашем проекте капитальный бардак. P.S. Я бы советовал вообще выбросить всю lib_BLA-BLA-BLA вместе с ее безмозглым содержимым, но это на будущее. Цитата(zheka @ May 21 2010, 14:21)  Вот только думаю, будет ли работать, когда доберусь до отладочной платы. На то он и код "с интернета", чтобы терзаться подобными сомнениями.
|
|
|
|
|
May 21 2010, 14:11
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(zheka @ May 21 2010, 17:58)  а куда же без lib_bla-bla-bla? Без нее ругается. Ее нехитрое содержимое лучше заменить на написанное руками и головой. Цитата(zheka @ May 21 2010, 17:58)  в общем код - каша! Вот именно. И тут уже никто не поможет.
|
|
|
|
|
May 21 2010, 14:41
|
Гуру
     
Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164

|
Головой... это если с нуля самому. А что делать если в отладочной плате olimex входы card_presence и card_write_protect это 15 и 25 пины, а в поставляемой производителем же библиотеке: Код while(((m_pPio->PIO_PDSR) & BIT15)) { /*put your card present event here*/ } //WP - write protect while(((m_pPio->PIO_PDSR) & BIT16)) { /*put your write protect event here*/ } имея исходные данные, в правильности которых уверен, было бы намного проще работать руками и думать головой.
|
|
|
|
|
May 21 2010, 16:42
|
Гуру
     
Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164

|
Ошибку в olimex'совском примере исправил, предлагаемые функции запичи и чтения блоков работают. Но это не подходит для FatFS... Ковыряюсь дальше... Так, решил еще раз штурмом взять пример c сайта elm. Дошел вот до каких ошибок: Код #ifndef RTC_H_
#include <stdint.h> #include <stdbool.h>
typedef struct { uint16_t year; /* 1..4095 */ uint8_t month; /* 1..12 */ uint8_t mday; /* 1.. 31 */ uint8_t wday; /* 0..6, Sunday = 0*/ uint8_t hour; /* 0..23 */ uint8_t min; /* 0..59 */ uint8_t sec; /* 0..59 */ uint8_t dst; /* 0 Winter, !=0 Summer */ } RTC_t; //* ОШИБКА rtc.h(15): error: #256: invalid redeclaration of type name "RTC_t" (declared at line 15)
int rtc_init(void); bool rtc_gettime (RTC_t*); // ОШИБКА rtc.h(18): error: #147-D: declaration is incompatible with "bool rtc_gettime(RTC_t *)" (declared at line 18) bool rtc_settime (const RTC_t*); // ОШИБКА rtc.h(19): error: #147-D: declaration is incompatible with "bool rtc_settime(const RTC_t *)" (declared at line 19)
#endif Ну помогите же мне, я почти у цели!!
Сообщение отредактировал zheka - May 21 2010, 17:40
|
|
|
|
|
May 21 2010, 18:51
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Цитата(zheka @ May 21 2010, 22:42)  Дошел вот до каких ошибок: "... Саня Дрозд дошел до буквы «И» в слове «передовую»." © Стругацкие, «Понедельник начинается в субботу». Цитата Ну помогите же мне, я почти у цели!! Мне почему-то кажется, что если бы вы не тратили столько времени на написание вопрошающих постов, а просто сели и спокойно подумали, то уже давно бы во всём разобрались.
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
May 21 2010, 18:52
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Когда Вы пишете Код #ifndef RTC_H_ следующей строкой должно быть Код #define RTC_H_ чтобы содержимое данного файла не подключалось к проекту дважды
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|