软件模拟NT68661升级
平台: RK3288_SWH5184 ARM Cortex-A17@1.8GHz处理器
概述:之前NT68661是通过厂商提供的升级工具升级,不过该升级方式很麻烦,需要安装驱动,禁用系统的签名等等。所以想了一个办法,通过RK3288板卡模拟升级波形给NT68661升级。即:RK3288板卡与NT68661使用I2c总线连接,通过发送I2c数据,对NT68661的flash进行读写操作。
1.问题:编写简单的测试模块,向nt68661发送设备地址时,得不到响应。
方法:抓波形查看手册,发现升级工具在升级前需要发生一段同步波形,使MCU进行ISP RESET之后才能,进行i2c传输。
2.问题:想法一修改驱动,先将i2c4总线复用成gpio功能,发同步波形,然后再复用成i2c功能,给mcu发送升级数据,但是操作gpio模拟需要的波形时,发现无法在i2c总线已经创建后,将其复用成gpio;
方法:准备用两个gpio直接模拟i2c总线,不走i2c总线控制器。 linux已经有了gpio模拟i2c的驱动,只需要修改一下dts,配置一下gpio和延迟就可以使用。驱动位置:drivers/i2c/busses/i2c-gpio.c;驱动赋值的传输函数和功能函数位置:drivers/i2c/algos/i2c-algo-bit.c。
3.问题:编程时