|
|
  |
Программирование AT91SAM9260 на Си в IAR EWARM, Есть ли аналог avr-libc (из WinAVR) ? |
|
|
|
Nov 7 2009, 19:12
|
Частый гость
 
Группа: Участник
Сообщений: 94
Регистрация: 9-04-07
Пользователь №: 26 893

|
Добрый день, По работе требуется реализовать на ARM обмен с ПК по USB. Ранее решал эту задачу на AVR (ATMega16+v-usb) - теперь нужно на ARM. Установил IAR EWARM 5.40, из книг нашел Редькина ("32-16 битные микроконтроллеры ARM7 семейства AT91SAM7 фирмы Atmel" (П.П. Редькин, 2008)) и примеры из его книги. Сама книга Редькина это скорее перевод спецификации на ARM, особенности программирования в книге не отражены. Все примеры, также как и примеры из самого IAR (нпр., интересный мне "arm\examples\Atmel\at91sam9260-ek\usb-device-core-project") построены вокруг конкретных отладочных плат (файлы "board.h"\"board.c"). Моей платы ( SK-MAT91SAM9260) там нет. Подскажите, пожалуйста, литературу\примеры, в которых бы описовалось непосредственно программирование, не архитектура ядра или регистры, а то как до них добраться, используя компилятор IAR. Документы ala "IAR C/C++ Development Guide" описывают нюансы использования компилятора\линковщика\.... В даташитах на сам процессор AT91SAM9260 примеры работы на Си также отсутствуют (в противоположность спецификациям на ATMega's). Грубо говоря, хочу начать с того, чтобы найти аналоги для avr'овских DDRx\_BV\... из библиотеки avr-libc, и пр. В IAR нашел функции PIO_Set\PIO_Clear, но они реализованы не в библиотеке, а в самих примерах и под конкретную отладочную плату. Заранее спасибо
|
|
|
|
|
Nov 7 2009, 20:05
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Didro @ Nov 7 2009, 22:12)  из книг нашел Редькина ("32-16 битные микроконтроллеры ARM7 семейства AT91SAM7 фирмы Atmel" (П.П. Редькин, 2008)) и примеры из его книги. Книгу вместе с примерами советую сразу выбросить. Цитата(Didro @ Nov 7 2009, 22:12)  Подскажите, пожалуйста, литературу\примеры, в которых бы описовалось непосредственно программирование, не архитектура ядра или регистры, а то как до них добраться, используя компилятор IAR. ... Грубо говоря, хочу начать с того, чтобы найти аналоги для avr'овских DDRx\_BV\... из библиотеки avr-libc, и пр. В IAR нашел функции PIO_Set\PIO_Clear, но они реализованы не в библиотеке, а в самих примерах и под конкретную отладочную плату. Добраться до них можно средствами языка C. От рюшечек и оберточек типа PIO_Set\PIO_Clear более вреда, чем пользы.
|
|
|
|
|
Nov 7 2009, 21:38
|
Частый гость
 
Группа: Участник
Сообщений: 94
Регистрация: 9-04-07
Пользователь №: 26 893

|
Цитата(aaarrr @ Nov 7 2009, 23:05)  Книгу вместе с примерами советую сразу выбросить. Сделано. Цитата(aaarrr @ Nov 7 2009, 23:05)  Добраться до них можно средствами языка C. От рюшечек и оберточек типа PIO_Set\PIO_Clear более вреда, чем пользы. Если не затруднит, укажите, пожалуйста, ссылку на примеры или сам пример (набросок). Цитата(sherr @ Nov 7 2009, 23:32)  Если сильно хочется PIO_Set\PIO_Clear пишутся через #define и добавляются в хидер описания контроллера примерно так:
#define P3_31_OUT FIO3DIR |= (1<<31) ............ #define P3_0_HIGH FIO3SET |= (1<<0) #define P3_1_HIGH FIO3SET |= (1<<1) это для Keil . Для IAR надо уточнять (смотреть в файле ioat91sam9260.h) Понятно, да я что-то подобное и ожидал (после avr), но неужели "смотреть в файле ioat91sam9260.h" - это единственный кошерный путь ?  На первый взгляд (в файл) это путь для настоящих джедаев Цитата(sergeeff @ Nov 7 2009, 23:50)  Вы зайдите на официальный сайт Atmel'a, там есть примеры для всех выпускаемых этой фирмой процессоров. Последняя версия библиотек имеет версию 1.5. Все примеры, которые нахожу ( тут) заточены под конкретную плату. Вот, например: Цитата AT91RM9200-Basic-ARM1_2-2_0.zip (346 KB) This zip file shows AT91 ARM-Based Software Package and how to configure a software cross compilation tool-chain to get a binary code downloadable on an AT91RM9200EK board. Includes main.html file for help. For use under ARM® ADS 1.2 software tool. Библиотеки найти не могу, буду признателен любым ссылкам. Наверное, вы имели в виду эти библиотеки - http://www.atmel.com/dyn/products/tools_ca...sp?tool_id=4343 ? Спасибо
Сообщение отредактировал Didro - Nov 7 2009, 21:40
|
|
|
|
|
Nov 7 2009, 21:57
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Didro @ Nov 8 2009, 00:38)  Если не затруднит, укажите, пожалуйста, ссылку на примеры или сам пример (набросок). Да очень просто все. Подключаем "at91sam9260.h", а дальше прямо по регистрам: Код #define PIN (1UL << 0)
*AT91C_PIOA_PER = PIN; // Разрешили PIO *AT91C_PIOA_OER = PIN; // Переключили вывод на выход *AT91C_PIOA_SODR = PIN; // Установили '1' *AT91C_PIOA_CODR = PIN; // Установили '0' И так с любой периферией.
|
|
|
|
|
Nov 7 2009, 22:25
|
Профессионал
    
Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007

|
Цитата(Didro @ Nov 8 2009, 00:38)  Библиотеки найти не могу, буду признателен любым ссылкам. Вам Atmel все примеры в исходных кодах дает. Библиотеку из них для своих нужд сделать влом? Или вам было бы легче, если вы получили какой-нибудь файл AT91SAM9260ALL.LIB в виде черного ящика под какую-нибудь конкретную версию компилятора/линкера не совместимую с вашими? Что-такого у вас на плате не такого, как на 9260EK? Только, может то, что вы специфического на эту плату поставили. Все что касается периферии собственно процессора у вас все тоже самое. Замечаю в последнее время многие хотят получить все сразу на блюдечке с голубой каемочкой даже не пошевелив хоть немного своей головой.
|
|
|
|
|
Nov 7 2009, 22:39
|
Частый гость
 
Группа: Участник
Сообщений: 94
Регистрация: 9-04-07
Пользователь №: 26 893

|
Цитата(aaarrr @ Nov 8 2009, 00:57)  Да очень просто все. Подключаем "at91sam9260.h", а дальше прямо по регистрам: Код #define PIN (1UL << 0) ... ' И так с любой периферией. Большое спасибо за пример, понял. Цитата(sergeeff @ Nov 8 2009, 01:25)  Что-такого у вас на плате не такого, как на 9260EK? Дык почти ничего нет - у меня дешевая плата, урезанная  Цитата Данная отладочная плата основывается на печатной плате от SK-AT91SAM9260/9XE512-SIMXXX, на нее просто не устанавливается часть компонентов. Библиотеки я конечно же ожидал в исходниках, смущает их привязка к платам - точнее искал библиотеку без такой привязки (ala avr-libc).
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|