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

 
 
 
Reply to this topicStart new topic
> Помогите адаптировать для KEIL код из библиотеки FatFS написанный для WinARM
zheka
сообщение May 20 2010, 09:01
Сообщение #1


Гуру
******

Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164



Господа, скачал я себе FatFS от Chan. Там библиотека на чистом С с оговоркой, что 6 функций необходимых для низкоуровневой работы с SD картой, нужно написать самому.
Там же по ссылкам нашел проект под AT91SAM7, где указанные функции прописаны в библиотеке sd_spi_at91.c. Библиотеку прилагаю.
Подключаю ее в проект KEIL (пришлось переименовать в diskio.c) и сразу поперли ошибки:

Код
Build target 'Simulator'
compiling Blinky.c...
diskio.c(158): warning:  #260-D: explicit type is missing ("int" assumed)
diskio.c(158): error:  #65: expected a ";"
diskio.c(373): warning:  #12-D: parsing restarts here after previous syntax error
diskio.c(375): error:  #18: expected a ")"
diskio.c(375): error:  #77-D: this declaration has no storage class or type specifier
diskio.c(375): error:  #101: "AT91PS_SPI" has already been declared in the current scope
diskio.c(375): error:  #65: expected a ";"
diskio.c(376): error:  #169: expected a declaration
diskio.c(391): warning:  #12-D: parsing restarts here after previous syntax error
diskio.c(421): error:  #18: expected a ")"
diskio.c(421): error:  #44: expression must have pointer type
diskio.c(426): error:  #18: expected a ")"
diskio.c(426): error:  #44: expression must have pointer type
diskio.c(429): error:  #18: expected a ")"
diskio.c(429): error:  #44: expression must have pointer type
diskio.c(430): error:  #18: expected a ")"
diskio.c(430): error:  #44: expression must have pointer type
diskio.c(432): error:  #18: expected a ")"
diskio.c(432): error:  #44: expression must have pointer type
diskio.c(433): error:  #18: expected a ")"
diskio.c(433): error:  #44: expression must have pointer type
diskio.c(435): error:  #18: expected a ")"
diskio.c(435): error:  #44: expression must have pointer type
diskio.c(436): error:  #18: expected a ")"
diskio.c(436): error:  #44: expression must have pointer type
diskio.c(438): error:  #18: expected a ")"
diskio.c(438): error:  #44: expression must have pointer type
diskio.c(439): error:  #18: expected a ")"
diskio.c(439): error:  #44: expression must have pointer type
diskio.c(445): error:  #18: expected a ")"
diskio.c(445): error:  #44: expression must have pointer type
diskio.c(446): error:  #18: expected a ")"
diskio.c(446): error:  #44: expression must have pointer type
Target not created


Помогите подключить эту библиотеку.

А вот собственно проект для KEIL, пока пустой.
Go to the top of the page
 
+Quote Post
esaulenka
сообщение May 21 2010, 06:37
Сообщение #2


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

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Предложение первое.
Прочитать про inline (разве неочевидно, что ругается на него?), заменить на __inline

Предложение второе. Разобраться, что там накручено с дефайнами регистров. За минуту я не понял, где в этом diskio.c подключены определения регистров процессора.


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
zheka
сообщение May 21 2010, 08:34
Сообщение #3


Гуру
******

Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164



Вообще-то там и есть __inline.
Ладно, черт с ней, я нашел код попроще, там есть __ramfunc. На него ругается. Честно гуглил и яндексил, не нашел чем заменить это в KEIL. Подскажите.
Go to the top of the page
 
+Quote Post
igorenja
сообщение May 21 2010, 08:42
Сообщение #4


Частый гость
**

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



Цитата(zheka @ May 21 2010, 15:34) *
Вообще-то там и есть __inline.
Ладно, черт с ней, я нашел код попроще, там есть __ramfunc. На него ругается. Честно гуглил и яндексил, не нашел чем заменить это в KEIL. Подскажите.


google


первая ссылка rolleyes.gif
Go to the top of the page
 
+Quote Post
esaulenka
сообщение May 21 2010, 09:57
Сообщение #5


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

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



zheka, покажите, пожалуйста, где в 158-й строке выложенного diskio.c слово "__inline"

igorenja, Вы не правы. CARM умер, надо искать в документации на RealView'шный компилятор. Я делал подобное через объявление секции кода в ОЗУ и соответствующую прагму (всё есть в документации).


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post

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

 


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


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