arm

Диагностика Imprecise Bus Faults в микроконтроллерах Cortex-M3/M4/M4F

При разработке программ для систем на микроконтроллерах серий Cortex-M3/M4/M4F программисты, бывает, сталкиваются с исключениями ядра, когда программа останавливается в бесконечном цикле в обработчике FaultISR. Как правило, попадая в этот обработчик вы уже не можете определить что произошло, т.к. стек вызовов в отладчике уже не отображается. Еще хуже, если в регистре Fault Status появится ошибка Imprecise Bus Error. Вот про диагностику этой ошибки я и расскажу.

Миро Самек. Построение простых систем на ARM-контроллерах с использованием инструментов GNU (перевод)

Широко распространённое семейство процессоров ARM хорошо поддержано набором инструментов GNU C/C++. Большинство сетевых ресурсов и печатных материалов [1, 2] сосредотачивается на процедуре сборки и установки инструментария GNU, найти же подробные примеры использования компиляторов GNU C/C++ в приложении к простым программно-аппаратным системам, обладающими всеми основными возможностями нужными для повседневной жизни, весьма сложно.

И даже если вы такой пример найдёте, то, скорее всего, не сможете узнать ПОЧЕМУ всё сделано имеенно так, а не иначе.

В данной статье вы познакомитесь со всеми элементами, необходимыми для построения и тонкой настройки простых проектов на ARM-контроллерах с использованием набора инструментов GNU.

Openembedded: Часть 2. Создание и использование SDK для ARM

OpenEmbedded SDKДля написания программ для платформ отличных от х86 требуется cross-toolchain. Cross-toolchain - это набор кросс-компиляторов, соответствующего окружения и кросс-библиотек, таких как libc под выбранную платформу, в нашем случае это будет ARM, а конкретно ARM926.

OpenEmbedded: Часть 1. Установка

openembedded logoЭтим материалом я хочу начать цикл статей посвященный работе с OpenEmbedded.

OpenEmbedded, это фреймворк для сборки Embedded Linux. Как утверждают на официальном веб-сайте, OpenEmbedded обеспечивает лучшее в своем классе окружение для кросс-компиляции. Фреймворк позволяет создавать завершенные Linux дистрибутивы для встраиваемых систем.

Работать я буду на компьютере в следующей конфигурации:

Конкурс от компаний EBV и STM.

Один из ведущих европейских поставщиков электронных компонентов, компания EBV Elektronik, совместно с компанией STMicroelectronics, объявили конкурс проектов выполненных с использованием микроконтроллера на базе ядра ARM Cortex™-M3. Все проекты будут оцениваться по нескольким критериям, а именно:

Использование J-Link совместно с eclipse+yagarto

Для работы с ARM контроллерами я привык пользоваться JTAG отладчиками, во-первых это возможность удобно отлаживать, во-вторых прошивка происходит в разы быстрее чем через встроенный загрузчик, который кроме того требует дополнительных действий по его активации. Недавно я обзавёлся J-Link подобным адаптером и в первую очередь решил проверить его в связке с yagarto+Eclipse. Далее небольшой обзор JTAG адаптеров и пошаговая инструкция по настройке профиля отладки для адаптера J-Link.

Как собрать VSFTPD для at91sam9263

Кросс-компиляция libcap

Для запуска VSFTP на Debian 5.0.3 мне потребовалась библиотека libcap, усли у вас ее нет, то ее надо скомпилировать под таргет пользуясь нижеследующими инструкциями. Если библиотека libcap у вас уже есть то этот раздел вы можете пропустить. Я использовал libcap-2.11. Скачанный архив я распаковал в папку /home/dmitry/ARM/libcap-2.11.
Для выполнения кросс-компиляции нам необходимо внести некоторые изменения в исходники libcap-2.11:

Сброка toolchain для ARM и запуск Linux на AT91RM9200.

Итак, начнем

Для начала установим переменные окружения для сборки toolchain-а:

export TARGET=arm-linux
export PREFIX=/usr/local/arm
export SYSROOT=${PREFIX}/sysroot
export ARCH=arm
export CROSS_COMPILE=${TARGET}-
export PATH=$PATH:${PREFIX}/bin

Создаем каталоги для сборки:

RSS-материал