项目简介
libopencm3项目致力于为各类ARM Cortex - M微控制器打造开源固件库,目前已部分支持多种系列微控制器,如ST STM32多个系列、Atmel SAM系列、NXP LPC系列等。该库完全依据厂商的数据手册、编程手册和应用笔记从头编写,代码适配ARM的GCC工具链(arm - elf或arm - none - eabi),可借助OpenOCD ARM JTAG软件将代码烧录到微控制器中。本项目着重围绕STM32微控制器的USB设备驱动程序,提供完整解决方案。
项目的主要特性和功能
- 多微控制器支持:广泛适用于不同厂商、不同型号的ARM Cortex - M微控制器。
- USB设备驱动实现:具备USB设备驱动程序的初始化、配置和运行功能,针对特定STM32微控制器(如F107、F207、F429i等)有专门实现代码。
- 标准请求处理:
usb_standard.c
文件可处理USB标准请求,保证USB设备遵循标准通信协议。 - USB MSC支持:
usb_msc.c
文件实现USB Mass Storage Class,支持USB存储设备通信。
安装使用步骤
前提条件
- Ubuntu/Fedora:需安装arm - none - eabi/arm - elf工具链,构建需要Python(部分代码由其生成)。
- Windows:
- 下载安装msys(http://sourceforge.net/projects/mingw/files/MSYS/Base/msys - core/msys - 1.0.11/MSYS - 1.0.11.exe)。
- 下载安装Python(https://www.python.org/downloads/windows/ ,任意版本)。
- 下载安装arm - none - eabi/arm - elf工具链(例如https://launchpad.net/gcc - arm - embedded )。
- 运行msys shell,设置路径(需根据Python版本调整),避免Windows程序干扰:
sh export PATH="/c//Program Files/Python 3.9:/c/ARMToolchain/bin:/usr/local/bin:/usr/bin:/bin"
- 导航到提取libopencm3的文件夹并进行构建。
工具链
推荐使用“gcc - arm - embedded”(https://launchpad.net/gcc - arm - embedded ),建议使用4.8 2014q3或更新版本以成功构建libopencm3覆盖的所有平台。其他工具链理论上可行,但测试较少,针对Linux的工具链(如“gcc - arm - linux - gnu”)不适用。
构建
- 普通构建:
sh $ make
- 若使用arm - elf工具链(不常见),可覆盖工具链前缀(默认是arm - none - eabi):
sh $ PREFIX=arm - elf make
- 详细构建:
sh $ make V=1
- 指定特定MCU系列以减少构建时间:
sh $ make TARGETS='stm32/f1 stm32/f4'
- 列出支持的目标:
sh $ make list - targets
精细调整构建
可通过设置环境变量,用有限参数精细调整构建,例如:
- 控制浮点ABI:
sh
$ FP_FLAGS="-mfloat - abi=soft" make # 无硬浮点
$ FP_FLAGS="-mfloat - abi=hard -mfpu=magic" make # 新的未知FPU
- 添加或替换编译器标志:
sh
$ CFLAGS="-fshort - wchar" make # 以2字节宽的wchar_t编译库
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】