Closed slipperstree closed 7 years ago
👍 非常感谢~
@slipperstree 像下面这样的运算需要在 8 位单片机上运行有问题吗?
/* get flash memory capacity */
uint32_t table2_temp = (table[7] << 24) | (table[6] << 16) | (table[5] << 8) | table[4];
table的定义是8位的,理论上也有问题,不过我的应用里没发现错误,有空我再针对这里debug看看。
@armink 经过测试,下述代码确实也需要修改。
/ get flash memory capacity / uint32_t table2_temp = (table[7] << 24) | (table[6] << 16) | (table[5] << 8) | table[4];
下面是Debug时打印出来的信息。
JEDEC basic flash parameter table info:
MSB-LSB 3 2 1 0
[0001] 0xFF 0xF1 0x20 0xE5
[0002] 0x00 0xFF 0xFF 0xFF
不做强制转换得到的结果:0xFFFFFFFF 做了转换以后正确的结果:0x00FFFFFF
已经发起PR,请确认。
针对32位以下cpu做了一些修正。