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

Программирование Контроллеров Aduc В Среде Keil


Рекомендуемые сообщения

Здравствуйте.

Пытаюсь разобраться с микроконверторами ADUC7060/7061 от Analog Devices, на ядре ARM7. Решил использовать среду разработки Keil, язык Си. Но возникли некоторые трудности, и вынужден обратиться за помощью. Имею опыт работы с микроконтроллерами AVR, работал в AVR Studio, а на этих что-то застопорился.

Итак, создаю в Кейле новый проект, выбираю нужный мне контроллер, создается проект с одним файлом ADuC706x.s, в нем находится ассемблерный код, как я понял это начальный загрузчик. Далее я создаю в проекте еще одну папку, называю ее например Source Code и в ней файл, например main.c. Пишу простейшую программу, чтоб дергала один из выводов (даже не пишу, а передираю из другого проекта, оптимизировав имена регистров:

#include <ADuC7061.H>

void wait (void) { //Типа функция задержки
unsigned long i;
for (i = 0; i < 100000; ) {
i++;
}
}

int main (void) {
GP1DAT = 0xFF000000; // Все ножки - выходы
while (1) {
GP1DAT ^= 0x00040000; // Передернуть вывод 2
wait (); // Ждем...
}
}

Пытаюсь откомпилировать - выдает ошибки:

.\blink.axf: Error: L6218E: Undefined symbol DAbt_Handler (referred from aduc706x.o).
.\blink.axf: Error: L6218E: Undefined symbol FIQ_Handler (referred from aduc706x.o).
.\blink.axf: Error: L6218E: Undefined symbol IRQ_Handler (referred from aduc706x.o).
.\blink.axf: Error: L6218E: Undefined symbol PAbt_Handler (referred from aduc706x.o).
.\blink.axf: Error: L6218E: Undefined symbol SWI_Handler (referred from aduc706x.o).
.\blink.axf: Error: L6218E: Undefined symbol Undef_Handler (referred from aduc706x.o).

Если из проекта выкинуть файл ADuC706x.s, созданный автоматически, в самом начале, тогда компилируется без ошибок, но не работает в симуляторе. При чем курсор даже не становится на функцию main. Вроде как симуляция идет, но в портах ничего не происходит.

Проекты-примеры из Кейла, в симуляторе работают, но они под немного другой контроллер, под ADuC7024.

Подскажите пожалуйста, кто работал с этими контроллерами, что я делаю не так, и еще может есть какая-нибудь русскоязычная литература по ним, а то что-то не нашел в интернете. Мне для начала запустить программу в симуляторе, а потом попробовать залить в контроллер, там думаю тоже вопросы возникнут.

Заранее всем спасибо.

С ув. Radiolomaster

--------------------

Cо мной связаться можно через ICQ: 244420230

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

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

а подключать файлы из библиотеки которые отвечают за тактирование не надо ?

#include "..\LibRV\Clk\LibClk706x.h"

Вот сама библиотека http://www.analog.co...DuC7060Libs.zip

Я думаю из стартап файла вызываются функции подключаемые через LibClk706x.h - ClkSta; ClkPow; ClkSpd; соответственно из файлов ClkPow.s и т.д.

Короче говоря - подключите библиотеку которая отвечает за инициализацию контроллера.

И зачем примеры под другой контроллер если есть под Ваш http://www.analog.com/static/imported-files/code_examples/ADuC706x_RealViewExamples.zip

Изменено пользователем TDSS

Иван Сусанин - первый полупроводник

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

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Hongfa для различных применений в Компэл. Большой выбор в наличии!

Компания HONGFA - это не только крупнейший в мире производитель электромеханических реле, но также производитель конденсаторов, вакуумных прерывателей, трансформаторов и низковольтного коммутационного оборудования. На складе КОМПЭЛ регулярно поддерживаются около 100 самых популярных позиций электромеханических реле. Реле Hongfa могут заместить многие изделия производства недоступных брендов. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Пробовал подключать библиотеки - не помогают. Готовые проекты под этот контроллер ведут себя также - компилируются без ошибок, а в симуляторе не работают. А какая библиотека отвечает за инициализацию контроллера?

Вот этот стартап файл можно исключить из проекта? Чтоб программа начинала выполняться сразу с функции main?

С ув. Radiolomaster

--------------------

Cо мной связаться можно через ICQ: 244420230

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

Тренды и лучшие решения для разработки зарядных станций в России

К 2029 году в России прогнозируется увеличение числа зарядных станций до 40 000. При этом отечественный рынок электротранспорта имеет климатические, потребительские и географические особенности. Для успешной разработки и построения инфраструктуры станций заряда в России идеальным вариантом является использование решений и электронных компонентов китайских производителей – лидеров индустрии электротранспорта и возобновляемой энергетики, которые уже представлены в КОМПЭЛ. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Не, так не пойдет, в стартапе все основные определения. Может как выход - закоментировать определения вызывающие ошибки. Если вы их больше нигде не используете - прокатит.

У меня иногда бывали такие ошибки в кейле, но не помню источник и методы решения.

Изменено пользователем korsaj
Ссылка на комментарий
Поделиться на другие сайты

Секреты депассивации литиевых батареек FANSO EVE Energy

Самыми лучшими параметрами по энергоемкости, сроку хранения, температурному диапазону и номинальному напряжению обладают батарейки литий-тионилхлоридной электрохимической системы. Но при длительном хранении происходит процесс пассивации. Разберем в чем плюсы и минусы, как можно ее избежать или уменьшить последствия и как проводить депассивацию батареек на примере продукции и рекомендаций компании FANSO EVE Energy. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Ну если закоментить определения вызывающие ошибки - компилируется, но в симуляторе по прежнему не работают.

Может есть у кого-нибудь 100% рабочий проект под этот контроллер? ADuC7060 или 7061.

С ув. Radiolomaster

--------------------

Cо мной связаться можно через ICQ: 244420230

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

При запуске проекта в симуляторе выдает следующие ошибки:

Running with Code Size Limit: 32K
Load "E:\\Programming\\ARM\\ADuC706x_RealViewExamples\\RealView\\GPIO\\GPIO.axf"
*** Restricted Version with 32768 Byte Code Size Limit
*** Currently used: 920 Bytes (2%)
*** error 65: access violation at 0xFFFF0D30 : no 'write' permission
*** error 65: access violation at 0xFFFF0D00 : no 'read' permission
*** error 65: access violation at 0xFFFF0468 : no 'read' permission
*** error 65: access violation at 0xFFFF0D24 : no 'write' permission
*** error 65: access violation at 0xFFFF0034 : no 'write' permission

Это происходит и с готовыми проектами с сайта АД.

После этого код вроде как начинает выполняться, но в периферии ничего не происходит. Что может быть не так?

С ув. Radiolomaster

--------------------

Cо мной связаться можно через ICQ: 244420230

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

Поковырялся в стартапе, теперь на него не ругается, в симуляторе даже начинает выполняться, но когда натыкается на команды записи-чтения регистра GP1DAT (или любого другого регистра) симулятор выдает ошибки:

*** error 65: access violation at 0xFFFF0D30 : no 'write' permission
*** error 65: access violation at 0xFFFF0D30 : no 'read' permission

0xFFFF0D30 - как раз адрес регистра GP1DAT.

Почему не разрешает записывать в него?

С ув. Radiolomaster

--------------------

Cо мной связаться можно через ICQ: 244420230

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

Попробовал добавить эти адреса в Memory Map с атрибутами Read Write Execute. Теперь ошибку 65 не выдает, но все равно в периферии ничего не происходит. Как будто по этому адресу нет ничего. Я думаю что надо как-то инициализировать этот блок памяти, но как это сделать?

С ув. Radiolomaster

--------------------

Cо мной связаться можно через ICQ: 244420230

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

Заметил вот что: Не хочет писать/читать только регистры отвечающие за GPIO, PWM, EEPROM. Остальные пишет, и это видно в симуляторе в периферии.

В даташите на 20 странице (http://www.analog.com/static/imported-files/data_sheets/ADuC7060_7061_7062.pdf) написано что у контроллера 2 шины для доступа к регистрам: АРВ и АНВ. Так вот, все регистры на АРВ шине, кроме регистров GPIO, PWM, EEPROM, они на АНВ. Может в этом проблема, надо как-то инициализировать эту шину АНВ? Мне кажется решение уже где-то рядом, подскажите, кто сталкивался с этим?

С ув. Radiolomaster

--------------------

Cо мной связаться можно через ICQ: 244420230

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

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

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

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

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

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...