Digi的ARM核心板除了带有一棵NXP的主处理器外,大多还集成有一棵超低功耗的ARM Cortex-M0+协处理器(NXP Kinetis KL17: MKL17Z64VDA4)。主处理器和协处理器(MCA)之间,通过I2C0通信。协处理器通过一个多功能设备驱动,提供了一系列特有的功能:
核心功能
多功能驱动
通常系统启动时,UBoot会显示MCA的固件版本,为保证您获得最新的协处理器功能,请到Digi产品官网去查询是否有更新的协处理器固件。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/* ~/
在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 | 升级固件但保留参数内容 |
待升级固件必须是个二进制固件文件,并且用户至少有读的权限。 整个升级过程会持续20~30秒,在此期间,请勿中断升级,直到系统自动重启。如果发生意外,请重试这些步骤。对于非预期的升级失败,您可能需要一个调试器来刷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用上面的固件升级命令尝试重新升级。