Перейти к содержанию
    

Помогите адаптировать для KEIL код из библиотеки FatFS написанный для WinARM

Господа, скачал я себе 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, пока пустой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Предложение первое.

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще-то там и есть __inline.

Ладно, черт с ней, я нашел код попроще, там есть __ramfunc. На него ругается. Честно гуглил и яндексил, не нашел чем заменить это в KEIL. Подскажите.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще-то там и есть __inline.

Ладно, черт с ней, я нашел код попроще, там есть __ramfunc. На него ругается. Честно гуглил и яндексил, не нашел чем заменить это в KEIL. Подскажите.

 

google

 

 

первая ссылка :rolleyes:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...