还没收到套件的时候,用IDA分析了一下遥控器的程序。最近又开始研究飞机的程序了
官方固件用模拟I2C操作的MPU6050。分析后发现,读MPU6050的频率约每秒1000次。每次从0x3B开始读14个字节。每次读用时约680微妙。也就是说CPU的68%时间是浪费在软件模拟I2C上。而只有约32%的时间用于其他处理。按CPU72MHz算,约48MHz用于软件模拟I2C。用于其他算法的只剩24MHz了。感觉浪费不少资源。
我就把它改成硬件I2C了,等待硬件I2C完成的时候,让CPU睡觉。CPU有60%以上时间在睡觉,电流小了30mA左右。。。
汇编玩得转啊,佩服。工作多久了呢?