多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

Zephyr RTOS 在 SAMA7G54-EK 上的移植与开发:Cortex-A7 评估板硬件详解与启动烧录实战

Zephyr RTOS 在 SAMA7G54-EK 上的移植与开发:Cortex-A7 评估板硬件详解与启动烧录实战 Zephyr RTOS 在 SAMA7G54-EK 上的移植与开发Cortex-A7 评估板硬件详解与启动烧录实战【免费下载链接】zephyrPrimary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.项目地址: https://gitcode.com/GitHub_Trending/ze/zephyrSAMA7G54-EK 是 Microchip 面向 SAMA7G54 微处理器MPU推出的官方评估套件本文以 boards/microchip/sam/sama7g54_ek/doc/index.rst 为骨架系统梳理该板卡在 Zephyr 项目中的硬件资源、设备树配置、支持的外设能力并结合仓库源码给出从编译、烧录到上电运行 Zephyr 的完整操作路径。读完本文你将掌握 SAMA7G54-EK 的板级资源全貌、sama7g54_ek目标的使用方法以及基于 at91bootstrap SD 卡加载 Zephyr 固件的启动流程。板卡概述面向多媒体与工业互联的 Cortex-A7 评估平台SAMA7G54-EK 定位于评估与原型开发核心是 SAMA7G54 微处理器。从官方文档与 SoC 定义文件 soc/microchip/sam/sama7/sama7g5/Kconfig.soc 可以看出SAMA7G54 属于 SAMA7G5 系列 Cortex-A7 微处理器片上资源与关键特性包括CPU 与内存Arm Cortex-A7 内核主频最高 1 GHz支持高达 2 GB 的 16-bit DDR2、DDR3、DDR3L、LPDDR2、LPDDR3 内存Flash 存储接口Octal/Quad SPI、NAND 与 e.MMC 闪存支持多媒体子系统12-bit 并行摄像头接口与 MIPI-CSI2 摄像头接口最高 8 Mp、720p 60 fps最多 4 路 I2S、1 路 SPDIF 收发器以及 4 立体声通道采样率转换器audio sample rate converter互联接口双以太网1 路千兆 1 路 10/100、6 路 CAN-FD、3 路高速 USB安全能力安全启动secure boot、安全密钥存储以及面向 AES、SHA、RSA、ECC 的高性能加密加速器。在 Zephyr 中SAMA7G54 系列 SOC 支持通过SOC_SAMA7G54等 Kconfig 选项选择soc.h 中定义了该系列丰富的时钟域资源7 个分数 PLL、5 个主时钟、72 个外设时钟、46 个生成时钟等为板级外设的时钟配置提供了底层基础。板卡本身围绕上述芯片提供了丰富的扩展能力SAMA7G54-V/4HB 微处理器Raspberry Pi CSI 摄像头接口1 片 16-bit、4Gb DDR3L 内存1 片 32Gb e.MMC1Gb Octal SPI Flash2 片带 EUI-48™ MAC ID 的 EEPROM1 个 SD 卡插槽3 个高速 USB 端口2 路 CAN 接口2 路以太网接口千兆 10/100ATWILC3000 Wi-Fi/BT 模块焊盘未贴装S/PDIF RX 与 TX 端口4 路数字麦克风端口40-pin Raspberry Pi 扩展排针2 个 mikroBUS™ 连接器USB 供电。从设备树 sama7g54_ek.dts 可进一步确认板卡兼容标识为microchip,sama7g5ek, microchip,sama7g5, microchip,sama7主晶振 24 MHz、慢速晶振 32768 HzDDR 内存映射于 0x60000000Zephyr 的 SRAM 区指向该 DDR 区zephyr,sram ddram。硬件资源与板载外设板上组件清单评估板上的核心组件与接口如下表所示组件规格/说明处理器SAMA7G54-V/4HBCortex-A7最高 1 GHz内存16-bit、4Gb DDR3L存储32Gb e.MMC、1Gb Octal SPI Flash、1 个 SD 卡槽EEPROM2 片内含 EUI-48™ MAC IDatmel,24mac02e4地址 0x52/0x53USB3 路高速 USBHSCAN2 路 CAN 接口芯片支持 6 路 CAN-FD以太网2 路千兆 GMAC0 10/100 GMAC1无线ATWILC3000 Wi-Fi/BT 焊盘默认未贴装音视频S/PDIF RX/TX、4 路数字麦克风、MIPI CSI 摄像头接口扩展40-pin Raspberry Pi 排针、2 个 mikroBUS™ 连接器供电USB 供电板载 LED、按键与蜂鸣器类节点设备树中定义了 3 颗 GPIO LED 与 1 个用户按键见 sama7g54_ek.dtsled_redPIOB8高电平点亮led_greenPIOA13高电平点亮默认led0别名led_bluePIOD20高电平点亮button_userPB_USERPIOA12上拉、低电平触发映射为INPUT_KEY_0默认sw0别名。另外设备树还预留了一组pwm-ledspwm_led_green/pwm_led_blue但默认status disabled避免与 GPIO LED 冲突需要 PWM 呼吸灯效果时可在 overlay 中启用。支持的 Zephyr 功能与外设官方文档通过zephyr:board-supported-hw::指令自动汇总支持的外设。综合 sama7g54_ek.yaml 中supported:列表Zephyr 为sama7g54_ek目标声明的支持能力包括功能说明设备树佐证CAN2 路 MCAN含 CAN 收发器 GPIO 控制mcan0/mcan1can-phy0/1counter定时器/计数器pit64b0/pit64b1、tc0_ch0crypto加密加速AES、SHA、TRNGaes、sha、trngdma多通道 DMAdma0~dma2entropy硬件随机数trngzephyr,entropyhwinfo硬件信息SOC 支持pwmPWM 输出pwm mikroBUS PWM 引脚rtc实时时钟rtc别名sdhcSD/e.MMC 主机控制器sdmmc0/sdmmc1spiSPI 总线含板载 SPI NORspi11sst26vf064uart串口控制台usart3zephyr,consoleusbdUSB 设备zephyr_udc0UDPHS A默认控制台与时钟配置板级默认控制台为 FLEXCOM3 上的 USART3波特率 115200并承担zephyr,shell-uart角色flx3 { mchp,flexcom-mode SAM_FLEXCOM_MODE_USART; status okay; usart3: serial200 { current-speed 115200; pinctrl-0 pinctrl_flx3_default; pinctrl-names default; status okay; }; };时钟方面sama7g54_ek_defconfig 启用CONFIG_CLOCK_CONTROL_FIXED_RATE_CLOCKy以提供固定速率时钟驱动PIT64B0 被配置为 10 MHz 定时器时钟PIT64B1 作为计数器使用top-alarm、prescaler-period 15。存储与网络接口的细节配置e.MMC / SD 双通道SDMMC0 挂载 8-bit 位宽、不可插拔的 e.MMCdisk-name SD2max-bus-freq 208 MHzSDMMC1 挂载 4-bit 可插拔 SD 卡disk-name SDauto-cmd12带卡检测与复位控制。两块 EEPROM 除存储外还通过 nvmem-layout 将eui48单元0xFA 偏移、6 字节导出给两块以太网控制器用作 MAC 地址eeprom0: eeprom052 { compatible atmel,24mac02e4, atmel,at24; reg 0x52; address-width 8; pagesize 16; size 256; timeout 5; status okay; nvmem-layout { compatible fixed-layout; eeprom0_eui48: eui48fa { reg 0xfa 6; #nvmem-cell-cells 0; }; }; };GMAC0 采用 RGMII 连接 KSZ9131 千兆 PHY地址 7带microchip,rgmii-delayGMAC1 采用 MII 连接 KSZ8081 百兆 PHY地址 0。两者分别通过nvmem-cells eeprom0_eui48/eeprom1_eui48引用 EEPROM 中烧录的 MAC 地址。SPI NOR FlashSPI11 上挂载 SST26VF064jedec,spi-nor64 Mbitspi-max-frequency 10 MHzjedec-idbf 26 43作为板载 1Gb Octal SPI Flash 之外的串行 NOR 存储。mikroBUS 与 Raspberry Pi 扩展板卡提供 2 个 mikroBUS™ 连接器MikroBUS 1/2设备树以mikro-bus兼容节点 gpio-map完成引脚映射覆盖 AN、CS、SCK、MISO、MOSI、PWM、INT、RX、TX、SCL、SDA 等全部 11 个 mikroBUS 引脚其中 SPI 总线复用自 FLEXCOM11mikrobus_spi: spi11I2C 复用自 FLEXCOM9mikrobus_i2c: i2c9默认 disabled供扩展板启用。40-pin Raspberry Pi 排针与 MIPI CSI 摄像头接口则面向树莓派生态模块与摄像头方案的快速集成。启动流程at91bootstrap 先行SD 卡加载 Zephyr为什么需要 at91bootstrapSAMA7G54 上电后Zephyr 无法直接运行必须先由 Microchip 的二级引导程序at91bootstrap完成外设与内存控制器初始化随后下载 Zephyr 固件并跳转到 Zephyr 入口点。该流程与 Zephyr 文档 boards/microchip/sam/sama7g54_ek/doc/index.rst 中的 Programming 章节描述一致。烧录与加载步骤准备 at91bootstrap使用sama7g5eksd_zephyr_defconfig配置编译 at91bootstrap面向 SAMA7G5 EK SD 卡 Zephyr 的专用配置编译 Zephyr 固件以sama7g54_ek为目标构建产物为zephyr.bin。例如west build -b sama7g54_ek 应用目录拷贝固件到 SD 卡将编译生成的zephyr.bin复制到 SD 卡上电运行将 SD 卡插入板卡 SD 卡槽并上电at91bootstrap 从 SD 卡加载zephyr.bin并跳转执行Zephyr 启动后默认通过 USART3115200输出控制台/Shell。板级默认配置解读sama7g54_ek_defconfig 内容精简CONFIG_CLOCK_CONTROL_FIXED_RATE_CLOCKy CONFIG_CONSOLEy CONFIG_SERIALy CONFIG_UART_CONSOLEy同时 Kconfig.defconfig 以configdefault形式提供条件默认值开启 NVMEM 时默认启用 EEPROM 驱动EEPROM开启 NETWORKING 时默认启用以太网驱动ETH_DRIVER。而 Kconfig.sama7g54_ek 通过BOARD_SAMA7G54_EK选择SOC_SAMA7G54串联起板级与 SoC 的 Kconfig 依赖。构建示例hello_world 快速验证以 Zephyr 自带的最小示例验证板卡链路west build -b sama7g54_ek samples/hello_world构建完成后将build/zephyr/zephyr.bin拷贝到已格式化为 FAT 的 SD 卡配合sama7g5eksd_zephyr_defconfig编译的 at91bootstrap 上电即可在串口看到经典输出。该流程也可扩展用于 samples/drivers 下 CAN、SPI、传感器等外设示例结合上文设备树中各节点进行点对点验证。小结SAMA7G54-EK 在 Zephyr 生态中是一个功能覆盖全面的 Cortex-A7 评估平台双以太网、双 CAN、SD/e.MMC、SPI NOR、USB、加密与熵源等能力均在 sama7g54_ek.dts 与 sama7g54_ek.yaml 中得到板级实现。其启动依赖 at91bootstrapSD 卡加载zephyr.bin这一前提是上手时最容易忽略的关键点。开发者可依据本文的硬件清单与设备树索引快速定位外设节点并以west build -b sama7g54_ek开启在多媒体、工业互联场景下的原型开发。【免费下载链接】zephyrPrimary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.项目地址: https://gitcode.com/GitHub_Trending/ze/zephyr创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表