找回密码
 立即注册

使用微信账号登录

只需一步,快速开始

查看: 6486|回复: 17

[CSR8系列] CSR8670 内部flash

[复制链接]
连续签到天数:3天
签到总天数:10天
签到总奖励:61金币
发表于 2017-9-25 15:52:50 | 显示全部楼层 |阅读模式

马上注册,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册  

×
看了手册,8670内部有16M的flash,这个flash如何使用;我的目的是想把72Kb大小的二进制文件放到8670里,我尝试声明一个72Kb大小的常量的数组,但是发现最多只允许有24Kb的常量空间,这个常量空间可以扩大吗,又是如何扩大;如果不要常量数组,那么内部的flash又该如何使用。
楼主热帖
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
连续签到天数:1天
签到总天数:1235天
签到总奖励:44543金币
发表于 2017-9-25 22:41:43 | 显示全部楼层
放到image文件夹,会打包进去,然后read加载。

点评

正解  发表于 2017-9-26 00:25
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

连续签到天数:3天
签到总天数:10天
签到总奖励:61金币
 楼主| 发表于 2017-9-26 11:36:49 | 显示全部楼层
hhyytt 发表于 2017-9-25 22:41
放到image文件夹,会打包进去,然后read加载。

感谢大神临场。我还是不太明白,如何read呢?我的应用场景是 需要二进制文件放到8670上,然后再通过8670的i2c写到外围设备上,这个设备掉电数据就会丢失,所以才会采用8670来保存二进制文件。
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

连续签到天数:1天
签到总天数:1235天
签到总奖励:44543金币
发表于 2017-9-26 15:16:20 | 显示全部楼层
于嗟鸠兮 发表于 2017-9-26 11:36
感谢大神临场。我还是不太明白,如何read呢?我的应用场景是 需要二进制文件放到8670上,然后再通过8670 ...

FILE_INDEX FileFind(FILE_INDEX start, const char *name, uint16 length);
Source StreamFileSource(FILE_INDEX index);

FILE_INDEX index = FileFind( FILE_ROOT, (const char *)kal, strlen(kal) );
Source fp = StreamFileSource(index);
uint8 *address = SourceMap(fp);

干货,赏些金币吧

评分

参与人数 1金币 +30 收起 理由
于嗟鸠兮 + 30 很给力!

查看全部评分

积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 2 反对 0

使用道具 举报

连续签到天数:3天
签到总天数:10天
签到总奖励:61金币
 楼主| 发表于 2017-9-26 19:08:34 | 显示全部楼层
hhyytt 发表于 2017-9-26 15:16
FILE_INDEX FileFind(FILE_INDEX start, const char *name, uint16 length);
Source StreamFileSource(F ...

大神威武!奈何最多只能打赏30金币。万分感谢
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

连续签到天数:1天
签到总天数:2天
签到总奖励:9金币
发表于 2017-10-17 11:55:02 | 显示全部楼层
谢谢大神分享
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

连续签到天数:3天
签到总天数:10天
签到总奖励:61金币
 楼主| 发表于 2017-10-17 22:14:50 | 显示全部楼层
hhyytt 发表于 2017-9-26 15:16
FILE_INDEX FileFind(FILE_INDEX start, const char *name, uint16 length);
Source StreamFileSource(F ...

根据您的方法,得到了我想要的结果;但是我在读取image目录下的文件(大小29k)时,只能读取3072个字节,如果在访问下一个字节就会出现“Read from illegal address”的错误;请问:怎么增加它里面的大小呢。
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

连续签到天数:1天
签到总天数:1235天
签到总奖励:44543金币
发表于 2017-10-18 16:02:29 | 显示全部楼层
于嗟鸠兮 发表于 2017-10-17 22:14
根据您的方法,得到了我想要的结果;但是我在读取image目录下的文件(大小29k)时,只能读取3072个字节, ...

试试uint16 SourceSize(Source source); 返回多少?

应该是一个packet一个packet读取,用下面将读过的扔掉。
void SourceDrop(Source source, uint16 amount);

uint16 SourceBoundary(Source source);这个是packet大小,适当运用这几个函数。

source,sink,stream是ADK的核心操作,然后就是message send/handle,就没有什么深奥的东西了。
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

连续签到天数:3天
签到总天数:10天
签到总奖励:61金币
 楼主| 发表于 2017-10-18 19:25:39 | 显示全部楼层
hhyytt 发表于 2017-10-18 16:02
试试uint16 SourceSize(Source source); 返回多少?

应该是一个packet一个packet读取,用下面将读过的 ...

谢谢您!我看了一上午的文档,找到了解决方案,这个方案和你说的一样,要调用SourceDrop(...)函数。下面是文档的叙述:
NOTE: There is a strict limit on how big the readable section can grow, so applications should drop data
as soon as possible. Failing to do so eventually chokes off the supply of new data. Even if the
source is a data block in the firmware or the read-only filing system, only a limited amount
(currently about 3 kB) can exist in the application address space at one time.
大神顺便回复一下这个帖子:http://www.52bluetooth.com/thread-37551-1-1.html
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

连续签到天数:1天
签到总天数:638天
签到总奖励:10295金币
发表于 2017-10-27 22:56:24 | 显示全部楼层
hhyytt 发表于 2017-9-26 15:16
FILE_INDEX FileFind(FILE_INDEX start, const char *name, uint16 length);
Source StreamFileSource(F ...

绝对有份量的干货,,给赞!
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则

小黑屋|手机版|我爱蓝牙网 - 52Bluetooth

GMT+8, 2024-4-19 13:55 , Processed in 0.245166 second(s), 25 queries , Gzip On, MemCached On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表