Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Помогите адаптировать для KEIL код из библиотеки FatFS написанный для WinARM
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
zheka
Господа, скачал я себе 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, пока пустой.
esaulenka
Предложение первое.
Прочитать про inline (разве неочевидно, что ругается на него?), заменить на __inline

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


google


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

igorenja, Вы не правы. CARM умер, надо искать в документации на RealView'шный компилятор. Я делал подобное через объявление секции кода в ОЗУ и соответствующую прагму (всё есть в документации).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.