2015-10-09 4 views
1

Я пытаюсь улучшить свои встроенные навыки программирования, изучая, как программировать каждое периферийное устройство на плате Nucleo STM32 (STM32F401RE) и медленно строить свою собственную библиотеку с нуля (без использования HAL изначально только для переключения бит непосредственно на регистры).Как вы начинаете писать свой API для периферийного устройства MCU?

У меня возникла проблема, хотя, когда я пытаюсь столкнуться с чем-то, что я не использовал до того, как я застрял в определении того, что включить в API.

Предположим, что я хочу использовать периферийное устройство ADC, достаточно ли просто скопировать API из mbed-src в github и начать с него, или мне нужны какие-либо дополнительные функции?

https://github.com/mbedmicro/mbed/blob/03fff9249b0ca5efb2e12506ce8fb3e6cc258d9d/libraries/mbed/targets/hal/TARGET_STM/TARGET_STM32F4XX/analogin_api.c

Существуют ли общепризнанные ресурсы с чего начать?

Благодарим за помощь.

+0

Справочное руководство по справочнику/руководство для пользователей/программистов для mcu –

+0

Несмотря на то, что я не согласен, я должен признать, что я не могу найти что-то действительно убедительное при чтении справочного руководства для вышеупомянутого совета. Руководство пользователя NXP LPC1768 гораздо более полезно, на мой взгляд, но все еще не очень понятно. – Satrapes

+0

Документация STM32 не лучше и не хуже документации других компаний (включая NXP). Проблема в том, что есть достаточно места, которые вы должны поэкспериментировать, и которые не позволяют всю свободу, которую вы действительно ожидаете. Однако это, по крайней мере, понятно и лучше структурировано, чем документация Freescale K-Series. – Olaf

ответ

2

У Джейкоба Бенинго есть белая бумага, которую он создал, которая описывает основы создания API для встроенных работ. Я бы очень рекомендовал прочитать это как отправную точку: Developing Reusable Device Drivers for MCUs.

В его статье представлен дизайн API для цифрового ввода-вывода и для SPI. Он описывает, почему он делает много дизайнерских решений, которые он сделал, и имеет большие советы по использованию массивов указателей и таблиц конфигурации. Я нашел его очень информативным, когда я начинал.

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

Смежные вопросы