Part Number:CC2530
你好,
我需要向cc2530的flash的特定地址写一个8位的数据,但是在调用HalFlashWrite(uint16 addr, uint8 *buf, uint16 cnt)函数时,我发现addr是16位的,看过手册之后我发现addr被拆开赋给了FADDRH和FADDRL,这两个寄存器加起来也是16位,但是FLASH的大小是256KB,地址范围应该是0x00000~0X3FFFF,这至少需要18位的数据才能表示啊,请问要怎么实现对FLASH特定地址的写操作呢
Alex Zhang:
https://blog.csdn.net/crystal736/article/details/8730111
希望这个可以帮助到您
,
Alex Zhang:
值得注意的是 len:写入长度,注意是字节数/4。比如写入单条日志是12字节,len就是3。
,
?? ?:
非常感谢您的回复,在手册中描述到FADDRH:FADDRL是取18位地址的16MSB,这和文章中描述的一致,但是根据手册,只对flash进行写操作的话好像并不需要先将flash的对应bank映射到xdata,文章中的似乎描述的有误,将入口参数中的18位地址取高16位后我的问题得到了解决
,
Alex Zhang:
好的,很高兴可以解决您的问题,谢谢。
有问题论坛随时交流