Как начаться с процессорами ARM?

Нет никакой потребности использовать popen(), можно просто считать файл сами. Кроме того, если там первая строка не будет тем, что Вы ищете, Вы перестанете работать, с тех пор head -n1 только чтения первая строка и затем выходите. Я не уверен, почему Вы смешиваете C и ввод-вывод C++ как этот; это совершенно в порядке, но необходимо, вероятно, решить пойти весь C или весь C++. Я, вероятно, сделал бы это что-то вроде этого:

int GetRamInKB(void)
{
    FILE *meminfo = fopen("/proc/meminfo", "r");
    if(meminfo == NULL)
        ... // handle error

    char line[256];
    while(fgets(line, sizeof(line), meminfo))
    {
        int ram;
        if(sscanf(line, "MemTotal: %d kB", &ram) == 1)
        {
            fclose(meminfo);
            return ram;
        }
    }

    // If we got here, then we couldn't find the proper line in the meminfo file:
    // do something appropriate like return an error code, throw an exception, etc.
    fclose(meminfo);
    return -1;
}
16
задан Rex M 6 August 2009 в 22:41
поделиться

8 ответов

Несколько хороших ресурсов описаны в ответах на этот связанный вопрос:

Кроме того, у Hitex есть «Инсайдерские руководства» для несколько различных микроконтроллеров на базе процессоров ARM (бесплатно, но требует регистрации):

Большинство из них (если не все) можно загрузить бесплатно (я думаю, они спонсируются производителями микроконтроллеров). Они больше ориентированы на микроконтроллеры, а не только на особенности ARM, но они действительно включают некоторые детали ARM, и они ' re отличный обзор микросхем и периферийных устройств в микросхемах.

5
ответ дан 30 November 2019 в 17:53
поделиться

Я бы порекомендовал приобрести BeagleBoard . У них есть поддержка JTAG, так что вы можете видеть, что происходит в оборудовании, своего рода аппаратный отладчик. На нем работает несколько сборок Linux. Вокруг него также есть отличное сообщество, которое поможет вам в работе с ним. На моем компьютере работает Ubuntu Jaunty, так что у вас бесконечное количество утилит и компиляторов.

6
ответ дан 30 November 2019 в 17:53
поделиться

Сначала я бы купил оценочную плату вроде STR750-LOVE . Затем скомпилируйте и разберитесь в примерах. После того, как вы освоитесь с примерами, пора перейти к пониманию того, что находится под капотом, и написанию собственного кода. Важной частью процесса обучения является попытка сделать что-то, а затем необходимость отладить это и заставить это работать. Если вы хотите стать экспертом в ARM, вам нужно будет уверенно читать сборку. Я только что прошел собеседование, чтобы стать разработчиком прошивки для ARM, и все, что я сделал для технической части, это проанализировал ассемблерный код THUMB и превратил его в код c. Большинство компиляторов имеют возможность выводить созданную ими сборку.

3
ответ дан 30 November 2019 в 17:53
поделиться

По словам Тома Лерера: «Плагиат, плагиат, пусть ничья работа не ускользнет от ваших глаз».

Или будьте как Ньютон (и Бернард), стоящие на плечах гигантов. Другими словами, узнайте, что сделали другие люди, и в идеале не изобретайте колеса заново.

1
ответ дан 30 November 2019 в 17:53
поделиться

Я бы начал с дешевой платы разработки и

Хорошим учебником для STM32 на базе ядра ARM является правильно названный STM32 Primer .

Я бы не стал начинать с технического руководства, кроме как для очень быстрого просмотра. Один для STM32 составляет 600+ страниц, а прилагаемое руководство по Cortex-M3 - еще 400 страниц. Не совсем легкое чтение!

1
ответ дан 30 November 2019 в 17:53
поделиться

Я бы занимался серфингом на сайте sparkfun.com, они продают доски olimex, а также делают свои собственные. Luminary Micro / stellaris тоже хороши. Beagleboard - это скорее платформа Linux, чем то, что вы получаете доступ к функциям / инструкциям руки. Вы можете использовать его, но за эти деньги вы можете купить от 3 до 7 различных плат для микроконтроллеров на базе ARM. В любом случае я бы начал с небольшой платы, обернутой вокруг микроконтроллера на базе руки, вероятно, st или lpc, светильник micro - это только thumb2, что я бы сделал только после того, как промочил ноги стандартными инструкциями для руки, а затем инструкциями для большого пальца.

Я есть также фанат использования gameboy advance в качестве обучающей платформы для руки (не NDS, которая является продвинутой, начните с семейства GBA).

Вам понадобится ARM ARM (Справочное руководство по архитектуре ARM), а затем каждое конкретное ядро ​​имеет свой собственный TRM, вам понадобятся оба, чтобы узнать, какие инструкции вам доступны. По большей части эти руководства удобны как в качестве справочника, так и для обучения с нуля.

4
ответ дан 30 November 2019 в 17:53
поделиться

Это действительно зависит от того, какая ARM, это действительно обширный мир. Обычно ARM интегрирована в SoC (систему на кристалле). Если вы готовитесь к переходу к конкретному поставщику SoC, вам нужно будет рассмотреть все это. По моему опыту, выбор периферийных устройств SoC и кеша имеет большее влияние, чем фактическое ядро ​​(за исключением производительности).

Что касается оценочных плат: у меня есть хороший опыт работы с Luminary micro (диапазон от 50 до 60 долларов) Cortex M3. Он поставляется с полной (eclipse) средой разработки, примерами, библиотеками и некоторым оборудованием (например, USB, Ethernet, OLed-дисплей) и примерами, которые вы можете запускать и изучать. Учиться на практике, imho, веселее, чем учиться посредством чтения. Я ожидаю, что вам будет комфортно перейти с 8051 на Cortex M3.

В верхнем сегменте спектра плата beagle - настоящий вычислитель чисел, который также может работать с Linux.

1
ответ дан 30 November 2019 в 17:53
поделиться

Когда я начинаю с новой (для меня) технологии, я начинаю с поиска как можно большего количества таблиц данных и примечаний по применению и просто прочтения их до конца. Первая цель - освоить жаргон (и имена игроков), свойственный этой технологии.

В случае ARM я бы начал с www.arm.com и их документации. в Информационном центре ARM .

Обновление: Я бы также погрузился в одну или несколько производственных линий производителя, включая чтение хотя бы одного руководства для семейного программиста. Если ваши планы по проекту достаточно твердые, чтобы вы знали, какой именно процессор ARM будет использоваться, тогда вы можете сосредоточиться на этой конкретной модели и ее близких родственниках. Если вы хотите познакомиться с ARM, чтобы выбрать ЦП, который будет использоваться в проекте, то выборка из широкого набора семейств почти наверняка лучший план.

Это большой список лицензиатов технологии ARM . Из них у некоторых производителей есть продукты (на основе CORTEX-M3 ядра ARM), которые, по моему мнению, выделяются для приложений глубоких встраиваемых систем.

Моя компания ведет проекты на основе семейства STM32 от ST Microelectronics . В этом семействе имеется множество периферийных устройств на кристалле с функциональностью, знакомой любому, кто пришел из мира 8051 или из мира PIC, и имеет достаточно флэш-памяти и SRAM на кристалле, чтобы сделать внешние запоминающие устройства необязательными.

Я слышал много положительных отзывов о семействе Stellaris от Luminary Micro . Он также выглядит хорошо подходящим для ряда потребностей встраиваемых платформ.

Учитывая текущую цену оценочных плат начального уровня, я настоятельно рекомендую выбрать один или несколько чипов, аналогичных вашей ожидаемой целевой нише приложений. Плата с небольшим ЖК-дисплеем, акселерометром, парой светодиодов на кнопку или две, доступом к незафиксированным контактам GPIO, встроенным интерфейсом JTAG USB и полной цепочкой инструментов кросс-разработки на основе GCC может быть для STM32 (менее 40 долларов США в 2009 г., но эта модель снята с производства), например, с ценой в 100 долларов.

Подобные пакеты можно найти для многих других продуктов на базе ядра ARM.

Другой способ использования ARM - это ядро ​​ЦП в системе на кристалле. Довольно много поставщиков SOC лицензируют процессоры ARM для установки своих кремний вместе со своим выделенным оборудованием. Я видел микросхемы сжатия видео, сетевые микросхемы, адаптеры Firewire-ATA и USB-устройства, построенные таким образом, и это лишь отрывки из опубликованных статей и пресс-релизов, которые я припоминаю без промедления.

Обновление 2, 2013: Довольно много поставщиков SOC лицензируют процессоры ARM для установки своих кремний вместе со своим выделенным оборудованием. Я видел микросхемы сжатия видео, сетевые микросхемы, адаптеры Firewire-ATA и USB-устройства, построенные таким образом, и это лишь отрывки из опубликованных статей и пресс-релизов, которые я припоминаю без промедления.

Обновление 2, 2013: Довольно много поставщиков SOC лицензируют процессоры ARM для установки своих кремний вместе со своим выделенным оборудованием. Я видел микросхемы сжатия видео, сетевые микросхемы, адаптеры Firewire-ATA и USB-устройства, построенные таким образом, и это только отрывки из опубликованных статей и пресс-релизов, которые я припоминаю не сразу.

Обновление 2, 2013: Очень доступную точку входа в «типичное» семейство SOC на базе ARM можно увидеть в платах семейства Raspberry Pi и различных Beagle . Оба нацелены на экспериментаторов и любителей, оба используют SOC с ядрами ARM и дополнительными ресурсами, такими как видео и аудио, и оба запускают Linux из коробки.

Существует также большое количество разнообразных систем от производителей модулей, обеспечивающих мезонинную плату, содержащую полную загрузочную систему, для установки на специализированную плату, обеспечивающую источник питания и разъемы ввода-вывода, необходимые для конкретной встроенной системы. Одним из таких поставщиков является Gumstix . Gumstix AirSTORM обеспечивает Wi-Fi, Bluetooth, DRAM, NAND FLASH и TI OMAP3 ARM SOC. Подходящая несущая плата может поддерживать либо ЖК-панель, либо HDMI, 10/100 Ethernet, USB-хост и OTG,

9
ответ дан 30 November 2019 в 17:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: