<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[关于FR8008GP FLASH读写问题]]></title><description><![CDATA[<p>参照论坛中的方法已经对app_config.h文件进行了修改<br />
*// &lt;h&gt; FLASH Configuration<br />
// &lt;o&gt; FLASH_CAPACITY<br />
// &lt;i&gt; Internal Flash capacity selection, Default: 4Mb<br />
// &lt;0x01000000=&gt; 8Mb<br />
// &lt;0x00080000=&gt; 4Mb<br />
// &lt;0x00040000=&gt; 2Mb</p>
<p>#define FLASH_CAPACITY 0x01000000</p>
<p>#if FLASH_CAPACITY == 0x00080000<br />
#define BLE_STACK_KEY_STORAGE_OFFSET 0x7F000<br />
#define BLE_BONDING_INFO_SAVE_ADDR 0x7D000<br />
#define BLE_REMOTE_SERVICE_SAVE_ADDR 0x7E000<br />
#elif FLASH_CAPACITY == 0x00040000<br />
#define BLE_STACK_KEY_STORAGE_OFFSET 0x3F000<br />
#define BLE_BONDING_INFO_SAVE_ADDR 0x3D000<br />
#define BLE_REMOTE_SERVICE_SAVE_ADDR 0x3E000<br />
#elif FLASH_CAPACITY == 0x01000000<br />
#define BLE_STACK_KEY_STORAGE_OFFSET 0xFFF000<br />
#define BLE_BONDING_INFO_SAVE_ADDR 0xFFD000<br />
#define BLE_REMOTE_SERVICE_SAVE_ADDR 0xFFE000<br />
#else<br />
#error &quot;flash capacity configuration error!&quot;<br />
#endif //FOR_2M_FLASH*<br />
flash测试代码如下<br />
*#define FLASH_ADDR			 	(0x10021000)<br />
#define FLASH_SECTOR_SIZE 	 	(0x100)<br />
#define FLASH_WRITE_LEN 		(0x100)<br />
void FlashFuncTest(void)<br />
{<br />
	co_printf(&quot;<strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong>FLASH FUNC TEST</strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong>\r\n&quot;);<br />
	uint8_t read_retu_num=0xf,erase_retu_num=0xf,write_retu_num=0xf;<br />
	uint8_t w_buf[FLASH_WRITE_LEN] = {0};<br />
	uint8_t r_buf[FLASH_WRITE_LEN] = {0};</p>
<pre><code>for(uint16_t i = 0;i &lt; FLASH_WRITE_LEN;i++)
{
	w_buf[i] = i;
}

co_printf(&quot;**********************Start-&gt;Erase**********************\r\n&quot;);
erase_retu_num=flash_erase(FLASH_ADDR, FLASH_SECTOR_SIZE);
co_printf(&quot;erase_retu_num %d\r\n&quot;,erase_retu_num);
co_printf(&quot;Erase-&gt;Write\r\n&quot;);
write_retu_num=flash_write(FLASH_ADDR, FLASH_WRITE_LEN, w_buf);

co_printf(&quot;write_retu_num %d\r\n&quot;,write_retu_num);
co_delay_100us(10*2000);
erase_retu_num=flash_read(FLASH_ADDR, FLASH_WRITE_LEN, r_buf);
co_printf(&quot;read retu_num %d\r\n&quot;,read_retu_num);
co_printf(&quot;Write-&gt;Read\r\n&quot;);
show_reg(r_buf, FLASH_WRITE_LEN, 1);
</code></pre>
<p>}*<br />
通过串口打印，发现写入与读取的数据不一致，这是哪里的问题，该怎么解决</p>
]]></description><link>http://www.freqchip.net:4567/topic/1642/关于fr8008gp-flash读写问题</link><generator>RSS for Node</generator><lastBuildDate>Mon, 05 Oct 2026 17:26:57 GMT</lastBuildDate><atom:link href="http://www.freqchip.net:4567/topic/1642.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 17 Mar 2026 02:42:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 关于FR8008GP FLASH读写问题 on Invalid Date]]></title><description><![CDATA[<p>参照论坛中的方法已经对app_config.h文件进行了修改<br />
*// &lt;h&gt; FLASH Configuration<br />
// &lt;o&gt; FLASH_CAPACITY<br />
// &lt;i&gt; Internal Flash capacity selection, Default: 4Mb<br />
// &lt;0x01000000=&gt; 8Mb<br />
// &lt;0x00080000=&gt; 4Mb<br />
// &lt;0x00040000=&gt; 2Mb</p>
<p>#define FLASH_CAPACITY 0x01000000</p>
<p>#if FLASH_CAPACITY == 0x00080000<br />
#define BLE_STACK_KEY_STORAGE_OFFSET 0x7F000<br />
#define BLE_BONDING_INFO_SAVE_ADDR 0x7D000<br />
#define BLE_REMOTE_SERVICE_SAVE_ADDR 0x7E000<br />
#elif FLASH_CAPACITY == 0x00040000<br />
#define BLE_STACK_KEY_STORAGE_OFFSET 0x3F000<br />
#define BLE_BONDING_INFO_SAVE_ADDR 0x3D000<br />
#define BLE_REMOTE_SERVICE_SAVE_ADDR 0x3E000<br />
#elif FLASH_CAPACITY == 0x01000000<br />
#define BLE_STACK_KEY_STORAGE_OFFSET 0xFFF000<br />
#define BLE_BONDING_INFO_SAVE_ADDR 0xFFD000<br />
#define BLE_REMOTE_SERVICE_SAVE_ADDR 0xFFE000<br />
#else<br />
#error &quot;flash capacity configuration error!&quot;<br />
#endif //FOR_2M_FLASH*<br />
flash测试代码如下<br />
*#define FLASH_ADDR			 	(0x10021000)<br />
#define FLASH_SECTOR_SIZE 	 	(0x100)<br />
#define FLASH_WRITE_LEN 		(0x100)<br />
void FlashFuncTest(void)<br />
{<br />
	co_printf(&quot;<strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong>FLASH FUNC TEST</strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong>\r\n&quot;);<br />
	uint8_t read_retu_num=0xf,erase_retu_num=0xf,write_retu_num=0xf;<br />
	uint8_t w_buf[FLASH_WRITE_LEN] = {0};<br />
	uint8_t r_buf[FLASH_WRITE_LEN] = {0};</p>
<pre><code>for(uint16_t i = 0;i &lt; FLASH_WRITE_LEN;i++)
{
	w_buf[i] = i;
}

co_printf(&quot;**********************Start-&gt;Erase**********************\r\n&quot;);
erase_retu_num=flash_erase(FLASH_ADDR, FLASH_SECTOR_SIZE);
co_printf(&quot;erase_retu_num %d\r\n&quot;,erase_retu_num);
co_printf(&quot;Erase-&gt;Write\r\n&quot;);
write_retu_num=flash_write(FLASH_ADDR, FLASH_WRITE_LEN, w_buf);

co_printf(&quot;write_retu_num %d\r\n&quot;,write_retu_num);
co_delay_100us(10*2000);
erase_retu_num=flash_read(FLASH_ADDR, FLASH_WRITE_LEN, r_buf);
co_printf(&quot;read retu_num %d\r\n&quot;,read_retu_num);
co_printf(&quot;Write-&gt;Read\r\n&quot;);
show_reg(r_buf, FLASH_WRITE_LEN, 1);
</code></pre>
<p>}*<br />
通过串口打印，发现写入与读取的数据不一致，这是哪里的问题，该怎么解决</p>
]]></description><link>http://www.freqchip.net:4567/post/4086</link><guid isPermaLink="true">http://www.freqchip.net:4567/post/4086</guid><dc:creator><![CDATA[DSG]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to 关于FR8008GP FLASH读写问题 on Invalid Date]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="http://www.freqchip.net:4567/uid/1844">@dsg</a> 在 <a href="/post/4086">关于FR8008GP FLASH读写问题</a> 中说：</p>
<blockquote>
<p>FLASH_ADDR</p>
</blockquote>
<p>FLASH_ADDR  这个应该是flash的偏移地址，不是映射地址</p>
]]></description><link>http://www.freqchip.net:4567/post/4087</link><guid isPermaLink="true">http://www.freqchip.net:4567/post/4087</guid><dc:creator><![CDATA[ZR]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to 关于FR8008GP FLASH读写问题 on Invalid Date]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="http://www.freqchip.net:4567/uid/1586">@zr</a> 将FLASH_ADDR改为0x15E000，读出来的与写入的还是不一致<br />
const struct jump_table_image_t _jump_table_image <strong>attribute</strong>((section(&quot;jump_table_1&quot;))) =<br />
{<br />
.image_type = IMAGE_TYPE_APP,<br />
.image_size = 0x19000 * 6,<br />
};程序中image_size是600kb，加上b区域的600kb,再加上a和b区域固件信息的两个4kb，这些是1208kb,我的偏移地址对应的是1400kb，这样理解对吗？现在按照这个地址分配写入与读取的数据还是不一致，调用flash_read函数读取返回值与变量定义是的0xf一致，这个是什么问题</p>
]]></description><link>http://www.freqchip.net:4567/post/4088</link><guid isPermaLink="true">http://www.freqchip.net:4567/post/4088</guid><dc:creator><![CDATA[DSG]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to 关于FR8008GP FLASH读写问题 on Invalid Date]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="http://www.freqchip.net:4567/uid/1844">@dsg</a> <img src="/assets/uploads/files/1773726760534-6e394e20-364f-46f9-b52b-f7e2e097c6a5-%E5%9B%BE%E7%89%87.png" alt="0_1773726760768_6e394e20-364f-46f9-b52b-f7e2e097c6a5-图片.png" class="img-responsive img-markdown" /></p>
<p>参考下这个例程</p>
]]></description><link>http://www.freqchip.net:4567/post/4090</link><guid isPermaLink="true">http://www.freqchip.net:4567/post/4090</guid><dc:creator><![CDATA[ZR]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to 关于FR8008GP FLASH读写问题 on Invalid Date]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="http://www.freqchip.net:4567/uid/1586">@zr</a> 您好，使用这个示例下载到板子上是正常的。将这部分代码移植到自己的工程中，就不行了，这个可能是哪里的问题呢？</p>
]]></description><link>http://www.freqchip.net:4567/post/4093</link><guid isPermaLink="true">http://www.freqchip.net:4567/post/4093</guid><dc:creator><![CDATA[DSG]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to 关于FR8008GP FLASH读写问题 on Invalid Date]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="http://www.freqchip.net:4567/uid/1844">@dsg</a> 注意操作flash要放在RAM中运行</p>
]]></description><link>http://www.freqchip.net:4567/post/4095</link><guid isPermaLink="true">http://www.freqchip.net:4567/post/4095</guid><dc:creator><![CDATA[ZR]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to 关于FR8008GP FLASH读写问题 on Invalid Date]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="http://www.freqchip.net:4567/uid/1586">@zr</a> <strong>attribute</strong>((section(&quot;ram_code&quot;))) void FlashFuncTest(void)；是这样定义吗，试了一下还是不行</p>
]]></description><link>http://www.freqchip.net:4567/post/4097</link><guid isPermaLink="true">http://www.freqchip.net:4567/post/4097</guid><dc:creator><![CDATA[DSG]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to 关于FR8008GP FLASH读写问题 on Invalid Date]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="http://www.freqchip.net:4567/uid/1844">@dsg</a> 是的，再检查检查，初始化配置等等，有问题不</p>
]]></description><link>http://www.freqchip.net:4567/post/4098</link><guid isPermaLink="true">http://www.freqchip.net:4567/post/4098</guid><dc:creator><![CDATA[ZR]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to 关于FR8008GP FLASH读写问题 on Invalid Date]]></title><description><![CDATA[<p>我试下来偏移地址不超过512kb都是可以的，超过512kb地址的话就不行了，是哪里的配置还要进行修改吗</p>
]]></description><link>http://www.freqchip.net:4567/post/4100</link><guid isPermaLink="true">http://www.freqchip.net:4567/post/4100</guid><dc:creator><![CDATA[DSG]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to 关于FR8008GP FLASH读写问题 on Invalid Date]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="http://www.freqchip.net:4567/uid/1844">@dsg</a> <img src="/assets/uploads/files/1773846575147-846d5b17-b68e-4540-a7b1-be63cb50b64e-%E5%9B%BE%E7%89%87.png" alt="0_1773846576558_846d5b17-b68e-4540-a7b1-be63cb50b64e-图片.png" class="img-responsive img-markdown" /></p>
<p>这个设置的不太对吧，最大8Mbyte，这个16Mbyte了</p>
]]></description><link>http://www.freqchip.net:4567/post/4104</link><guid isPermaLink="true">http://www.freqchip.net:4567/post/4104</guid><dc:creator><![CDATA[ZR]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to 关于FR8008GP FLASH读写问题 on Invalid Date]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="http://www.freqchip.net:4567/uid/1844">@dsg</a> <img src="/assets/uploads/files/1773846901555-0d98867a-22a3-43ac-8c77-a5cc9085eb42-%E5%9B%BE%E7%89%87-resized.png" alt="0_1773846902884_0d98867a-22a3-43ac-8c77-a5cc9085eb42-图片.png" class="img-responsive img-markdown" /></p>
<p>中间呢三个是对端设备的绑定信息，一般存在flash的最后</p>
]]></description><link>http://www.freqchip.net:4567/post/4105</link><guid isPermaLink="true">http://www.freqchip.net:4567/post/4105</guid><dc:creator><![CDATA[ZR]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Reply to 关于FR8008GP FLASH读写问题 on Invalid Date]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="http://www.freqchip.net:4567/uid/1586">@zr</a>  pmu_sub_init();会影响很大吗，我对比了一下，现在就这个函数里面的代码不一样，我用的之前sdk版本的，用参考示例里面的就没问题</p>
]]></description><link>http://www.freqchip.net:4567/post/4106</link><guid isPermaLink="true">http://www.freqchip.net:4567/post/4106</guid><dc:creator><![CDATA[DSG]]></dc:creator><pubDate>Invalid Date</pubDate></item></channel></rss>