网站系统开发团队简介,宜春公司网站建设,室内设计公司名字起名大全,苏州园区人才市场概念#xff1a;计算机中最小的信息单位是bit#xff0c;也就是一个二进制位#xff0c;8个bit组成一个Byte#xff0c;也就是1个字节#xff0c;1个存储单元存放1个字节#xff0c;每个存储单元对应一个32位(bit)地址#xff0c;所以重要的话说三遍#xff1a;对于32b…概念计算机中最小的信息单位是bit也就是一个二进制位8个bit组成一个Byte也就是1个字节1个存储单元存放1个字节每个存储单元对应一个32位(bit)地址所以重要的话说三遍对于32bit的ARM CPU一个32位地址指向1个字节 一个32位地址指向1个字节 一个32位地址指向1个字节我们常说的flash空间多少多少K指的是多少多少K byte假如我们执行下面的函数操作FlashWriteWord_P(0x1082,WordVar); /* 向0x1082、0x1083中写入0xABCD */经过编译从map文件查看flash内容如下注意前面的1080是十六进制所以从0x1080到0x1090共16个地址跨越因为还有0x108A....0x108F从这个map中我们能发现一些问题(1)验证了一个32位地址存放的是1个字节。(2)将一个16位数也就是2个字节存放的顺序是低字节在前高字节在后这个跟感官上不一样。(3)未存放数据的闪存单元是0xFF这个不是巧合因为flash说到底内部也是只有1和0两种状态CPU默认都是1.另外一个潜规定向Flash中写数据起始地址最好是偶数否则容易出现错误所以可以在0x1080、0x1081中存放一个uint16_t类型的数据可以在0x1082、0x1083中存放一个uint16_t类型的数据但是不能在0x1081、0x1082中存放一个uint16_t类型的数据。从上可以看出数据在flash中存放顺序是低在前高在后那么读flash时呢答案是会再反转高在前低在后因为读flash必须一次至少读16位不太允许读8位所以正好又反过来了。在编程时要注意给要分配要存储的内容地址每个数据对应地址都是偶数因为1个数据要占用2个地址。