====Digi ARM核心模块的协处理器功能和应用==== Digi的ARM核心板除了带有一棵NXP的主处理器外,大多还集成有一棵超低功耗的ARM Cortex-M0+协处理器(NXP Kinetis KL17: MKL17Z64VDA4)。主处理器和协处理器(MCA)之间,通过I2C0通信。协处理器通过一个多功能设备驱动,提供了一系列特有的功能: **核心功能** * 核心模块复位逻辑 * NVRAM * 32.768 kHz 输出 * 1.2 V 参考电压 **多功能驱动** * 多路ADC通道 * 扩展GPIO * 电源按钮 * PWM * RTC * 串口 * 看门狗定时器 通常系统启动时,UBoot会显示MCA的固件版本,为保证您获得最新的协处理器功能,请到Digi产品官网去查询是否有更新的[[https://www.digi.com/products/embedded-systems/system-on-modules/connectcore-for-i-mx6ul#productsupport-software|协处理器固件]]。[[ftp://ftp1.digi.com/support/firmware/mca/v1.13/82004219_E.zip|1.13固件下载]] 请先用电脑下载固件,然后可以放在micro SD卡上或是放在服务器上用scp传给单板机。 单板机上电后,如果micro SD卡上存放有MCA固件,可以在DEY系统里加载Micro SD卡: mkdir -p /media/tfcard && mount -t vfat /dev/mmcblk1p1 /media/tfcard 最好拷一份到板子的闪存中再进行升级比较安全 cp /media/tfcard/* ~/ ===MCA固件升级=== 在DEY系统中,可以使用 mca_fw_updater命令行工具来升级MCA固件。协处理器中的闪存并划分为程序空间和参数存储两个区域。在写入固件前,MCA的启动器会擦除程序空间,默认地,它也会同时清空参数区。请注意,MCA是核心模块的重要组成部分,请不要在不了解的情况下去升级不确定来源的固件。 * 检查当前的协处理器固件 U-Boot启动时,会打印MCA的相关信息,包括固件版本。如果您已经进入系统,可以通过sysinfo来打印系统信息,它包含了MCA的相关版本信息。 * 命令选项 ^ 命令 ^ 功能 ^ | mca_fw_updater -v,--version | 查询MCA固件版本 | | mca_fw_updater -h,--help | 查看帮助 | | mca_fw_updater -f FILE,--file | 升级固件 | | mca_fw_updater -f FILE -k,--keep-nvram | 升级固件但保留参数内容 | * 升级MCA固件 待升级固件必须是个二进制固件文件,并且用户至少有读的权限。 {{:digi:arm-embedded:pasted:20191216-140213.png}} 整个升级过程会持续20~30秒,在此期间,请勿中断升级,直到系统自动重启。如果发生意外,请重试这些步骤。对于非预期的升级失败,您可能需要一个[[https://www.digi.com/resources/documentation/digidocs/embedded/dey/2.6/cc6ul/yocto_t_mca-firmware-update.html|调试器]]来刷MCA固件。 * 发生错误时调试 如果升级失败,您还能进入uboot,可以用下面命令检查是否协处理器还连在I2C1总线上。 => i2c dev 0 Setting bus to 0 => i2c probe Valid chip addresses: 08 7e MCA的I2C地址是0x7e,这意味着MCA连着并且跑着固件。如果显示的地址是125,则意味着MCA的Bootloader在运行。如果是其它值,则MCA出错,只要MCA固件在运行,或是MCA的bootloader在运行,您就可以进入Linux用上面的固件升级命令尝试重新升级。