搜索
bottom↓
回复: 104

原来GDF32F103山寨货内部用的是串口Flash,大SRAM当缓存

  [复制链接]

出0入0汤圆

发表于 2016-7-19 12:16:48 | 显示全部楼层 |阅读模式
本帖最后由 sunnyqd 于 2016-7-19 12:24 编辑

http://zeptobars.com/en/read/GD3 ... -flash-Giga-Devices
编辑原因,添加内容:改网站的图片巨大,不便于转载,手机慎点
引用:


SRAM sizes are 32KiB in each largest block (128 KiB total) - stores code, which means first 128KiB could be accessed faster than typical flash. GD32 chips with 20Kb of SRAM or less have no more than 128KiB of flash, so all flash content is served from SRAM. This might also mean that startup time is slower than one would expect. With this SRAM mirroring it is not surprising that GD32 is beating STM32 in performance even on the same frequency and loosing in idle & sleep power consumption. Consumption at full load is lower than STM32 due to better (smaller) manufacturing technology.

型号:


原来GD32内部用的是串口Flash,然后将Flash内容加载到SRAM中执行。
所以,这芯片的SRAM空间还是非常大的,只是用来缓存串口Flash了。

本帖子中包含更多资源

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

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2016-7-19 12:20:14 | 显示全部楼层
既然是串口Flash,会不会说明被破成本大减

出0入0汤圆

发表于 2016-7-19 12:28:15 | 显示全部楼层
这是很好的创新啊,兼容不等于山寨

出0入90汤圆

发表于 2016-7-19 12:28:19 | 显示全部楼层
同样都是NOR FLASH,串口FLASH并不会降低成本吧
另外SRAM的成本也要比FLASH高很多

出0入22汤圆

发表于 2016-7-19 12:39:31 | 显示全部楼层
脑子进水了么,sram比flash要贵不少啊

出0入0汤圆

 楼主| 发表于 2016-7-19 12:57:32 | 显示全部楼层
aammoo 发表于 2016-7-19 12:28
同样都是NOR FLASH,串口FLASH并不会降低成本吧
另外SRAM的成本也要比FLASH高很多 ...

可能原因有三个:1.使用自家的成熟Flash,简化设计,并增大Flash空间;2.降低ARM版权费,Use of serial flash allows Giga Devices to increase maximum flash size in their microcontrollers quite a bit (currently they have up to 3MiB) and to save quite a bit on ARM licensing fees (if they are paying "per die design").,如果ARM授权费是每设计的die型号,那么仅需支付一个die的设计的费用;3.不同型号间只需采用同样的MCU die,然后不同型号的信息只需要写入flash,然后MCU die有判断逻辑,根据flash中的信息判断当前的型号即可,这样只需要一种MCU die即可,不同的型号源于Flash的不同,并且不需要其余的额外的处理。

出0入0汤圆

 楼主| 发表于 2016-7-19 13:03:48 | 显示全部楼层
jiaowoxiaolu 发表于 2016-7-19 12:39
脑子进水了么,sram比flash要贵不少啊

对于芯片厂商,可能这两者只是die的大小,成本差异不大

出200入0汤圆

发表于 2016-7-19 13:15:09 | 显示全部楼层
这是用什么东东搞出来的?

出0入0汤圆

发表于 2016-7-19 13:18:53 来自手机 | 显示全部楼层
ram难道比flash便宜??????

出0入0汤圆

发表于 2016-7-19 13:20:39 | 显示全部楼层
完全看不明白

出0入0汤圆

发表于 2016-7-19 13:29:57 | 显示全部楼层
应该与运行速度有关,FLASH速度并不快,上100MHZ时,FLASH速度满足不了,就像电脑一样,程度运行时从硬盘LOAD进RAM,这是很常规的做法,100MHZ上的CPU估计都这么做

出0入4汤圆

发表于 2016-7-19 13:31:38 | 显示全部楼层
不知道GD最新的不兼容stm的这些系列还是不是这样搞的

出0入0汤圆

发表于 2016-7-19 13:32:32 | 显示全部楼层
他家说是串行FLASH自己是第一的。还在做串行NAND

出0入0汤圆

发表于 2016-7-19 14:09:51 | 显示全部楼层
感觉也是和运行速度有关,用SRAM的话可以做到零等待

出0入0汤圆

发表于 2016-7-19 14:38:40 | 显示全部楼层
不大可能

SRAM的成本高

另外,GD的运行速度也还是FLASH的速度。特别是有些大容量的,前段和后段的速度都不一样呢

出0入0汤圆

发表于 2016-7-19 14:40:16 | 显示全部楼层
上次此文被转到隔壁的gd32坛,被秒删了

出0入0汤圆

发表于 2016-7-19 15:11:31 | 显示全部楼层
这很好啊,可以通过外挂存储器,然后分散加载,执行几个M的程序都是小case了

出0入0汤圆

发表于 2016-7-19 15:18:08 | 显示全部楼层
不懂 不懂不懂

出0入0汤圆

发表于 2016-7-19 16:56:36 来自手机 | 显示全部楼层
很多芯片都是外挂spi flash. 读到ram去运行  这个相当于把spi flash内置

出0入0汤圆

发表于 2016-7-19 17:02:05 来自手机 | 显示全部楼层
st f4这种高速是通过一次读取32*n位宽度code 但是读取频率降低n倍来保持速度吧. 两种方式对比感觉应该还是ram方式成本会高吧

出0入0汤圆

发表于 2016-7-19 17:16:45 | 显示全部楼层
不管怎样都是创新                               赞

出0入0汤圆

发表于 2016-7-19 17:28:12 | 显示全部楼层
像这种山寨不侵权?寄存器都一模一样
flash拷到ram中,那ram大于等于flash才行啊。
ram不比flash贵?如果是这样处理,真的下血本了。

出20入22汤圆

发表于 2016-7-19 17:38:15 来自手机 | 显示全部楼层
ST明知道是山寨的,也没办法,说在TC无可奈何

出0入0汤圆

发表于 2016-7-19 17:46:56 | 显示全部楼层
可能自己的flash速度不行,用RAM缓一下?

出0入0汤圆

发表于 2016-7-19 19:27:37 | 显示全部楼层
像路由器这样把SPI flash内容加载到RAM运行一样,有点意思。图片好牛B

出0入0汤圆

发表于 2016-7-19 19:44:21 | 显示全部楼层
FireHe 发表于 2016-7-19 14:38
不大可能

SRAM的成本高

有人试过,刚好有个函数在32kbyte位置,延时明显

看到有人一个一个地址测试,在32kbyte跳转的位置有2086个周期等待。

出0入0汤圆

发表于 2016-7-19 20:09:42 | 显示全部楼层
芯片版图的照片   

出0入17汤圆

发表于 2016-7-19 20:52:26 | 显示全部楼层
LearningASM 发表于 2016-7-19 19:44
有人试过,刚好有个函数在32kbyte位置,延时明显

看到有人一个一个地址测试,在32kbyte跳转的位置有2086 ...

这个探索的很好。。

出0入0汤圆

发表于 2016-7-19 20:55:24 来自手机 | 显示全部楼层
LearningASM 发表于 2016-7-19 19:44
有人试过,刚好有个函数在32kbyte位置,延时明显

看到有人一个一个地址测试,在32kbyte跳转的位置有2086 ...

。。。这不就是类似电脑那种分段加载啊  就是说运行中有不可预料的停顿了  要说可预料就太折腾了

出0入0汤圆

发表于 2016-7-19 20:56:48 来自手机 | 显示全部楼层
手册不说这特性  有可能给某些用户挖大坑啊

出0入17汤圆

发表于 2016-7-19 21:11:03 | 显示全部楼层
事实上,GD是在创新,不过它不是第一个这样做的。
小米插座使用了Marvell的88MC200,M3内核跑200M,也是得益于它512K的SRAM,话说P4处理器的缓存也才这么大,得益于55nm的制程,现在一个MCU都可以内置512K的SRAM了。

出350入477汤圆

发表于 2016-7-19 21:15:43 来自手机 | 显示全部楼层
LearningASM 发表于 2016-7-19 19:44
有人试过,刚好有个函数在32kbyte位置,延时明显

看到有人一个一个地址测试,在32kbyte跳转的位置有2086 ...

2K个周期够干啥?就算用4位spi,也只够读1K的代码

出350入477汤圆

发表于 2016-7-19 21:45:52 来自手机 | 显示全部楼层
除非它的ram都是当cache用的,每行1k,如果要执行的代码不在ram,就把这1k一起读进来

出350入477汤圆

发表于 2016-7-19 21:50:17 来自手机 | 显示全部楼层
这样对于128k以下的型号,第一次加载后就永远不需要换岀了,以后都是全速。但是大型号就会遇到代码不在内存要花2k个时钟来加载了

出0入0汤圆

 楼主| 发表于 2016-7-19 22:08:09 | 显示全部楼层
Nuker 发表于 2016-7-19 21:11
事实上,GD是在创新,不过它不是第一个这样做的。
小米插座使用了Marvell的88MC200,M3内核跑200M,也是得 ...

找到图一张,88MC200,有明确指出是串口flash,不过这ram可真够大的

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2016-7-20 08:19:39 | 显示全部楼层
gliet_su 发表于 2016-7-19 17:28
像这种山寨不侵权?寄存器都一模一样
flash拷到ram中,那ram大于等于flash才行啊。
ram不比flash贵?如果是 ...

为什么是大于等于?电脑的硬盘本身就远大于内存,肯定不是全部搬运到RAM里才开始运行吧。

出0入0汤圆

发表于 2016-7-20 09:02:21 | 显示全部楼层
以前的ARM9都是在RAM里面运行,RAM+Flash有什么特别的,

出0入4汤圆

发表于 2016-7-20 10:11:37 | 显示全部楼层
像esp8266 之类的就是直接挂spi flash 跑的,貌似速度也挺快。编译的时候可以有选择地把性能敏感的代码放到ram 里面跑。

出0入0汤圆

发表于 2016-7-20 10:12:37 | 显示全部楼层
gliet_su 发表于 2016-7-19 17:28
像这种山寨不侵权?寄存器都一模一样
flash拷到ram中,那ram大于等于flash才行啊。
ram不比flash贵?如果是 ...

你知道cache这种东西吗?

出0入0汤圆

发表于 2016-7-20 10:18:48 | 显示全部楼层
huangqi412 发表于 2016-7-19 20:55
。。。这不就是类似电脑那种分段加载啊  就是说运行中有不可预料的停顿了  要说可预料就太折腾了 ...

估计是了,看在不在意这个停顿。不知道中断还能不能响应,或者说影响大不大。

出0入0汤圆

发表于 2016-7-20 10:22:36 | 显示全部楼层
Nuker 发表于 2016-7-19 21:11
事实上,GD是在创新,不过它不是第一个这样做的。
小米插座使用了Marvell的88MC200,M3内核跑200M,也是得 ...

现在牛逼哄哄的是ARM9叠层封装一个SDRAM,比如新唐的ARM9,叠层一个32M x 16bit的DDR2,给裸奔库,可以碾压单片机+无RAM屏领域

出0入0汤圆

发表于 2016-7-20 10:24:57 | 显示全部楼层
redroof 发表于 2016-7-19 21:50
这样对于128k以下的型号,第一次加载后就永远不需要换岀了,以后都是全速。但是大型号就会遇到代码不在内存 ...

没看明白32K和128K关系   32K RAM  怎么一次加载128K FLASH的

SRAM sizes are 32KiB in each largest block (128 KiB total) - stores code, which means first 128KiB could be accessed faster than typical flash.

出0入0汤圆

发表于 2016-7-20 10:25:48 | 显示全部楼层
GD32肯定内置的自家的QSPI FLASH这个没话说,代理都默认的。
从几点可以看出来(基于GD32F130C8T6):
1,GD32号称48M  72M单周期访问flash。而现在谁家的flash工艺有这么快,那就是SRAM做的缓冲呗!
2,当访问大于32K的Flash空间,需要等待2086 AHB CLK(大概这个值),计算一下,这刚好是QSPI Flash读取1024byte的时间!
3,核对GD32和STM32的手册,发现,GD32在stop 模式功耗约100uA。远大于stm32的约10uA 。   但是,在standy模式,两家的功耗又差不多了。说明一个问题,stop需要保存内存数据,而standby模式不需要保存!!!所以GD内部有很大的sram在占用stop模式的功耗!!!

出0入0汤圆

发表于 2016-7-20 10:28:56 | 显示全部楼层
现在的问题是,GD32F103内部有256K的SRAM做flash缓冲区(参考GD32F103的手册)。即使是GD32F103C8T6只有64K flash的。这个缓冲也是256K。
那么我们有没有办法利用这身剩下的192K “SRAM”呢????
对于C8T6这种20K的单片机来说。如果能扩展192K,哪怕访问速度慢一点。也是相当可观哟!

直接用指针的方式去写,应该是不行的。我能想到的办法是,用编程Flash方式去写呢?但是我没有实际测试!

出0入93汤圆

发表于 2016-7-20 10:47:14 | 显示全部楼层
myxiaonia 发表于 2016-7-19 14:40
上次此文被转到隔壁的gd32坛,被秒删了

隔壁秒删是对的。本坛用GD32的少,隔壁GD32坛的家伙难道不看PDF的么?

我当时还觉得GD整那么大SRAM又不当SRAM用,难道不要钱么,还不如组织成Cache。

数据手册,第47页:

本帖子中包含更多资源

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

x

出0入93汤圆

发表于 2016-7-20 10:50:47 | 显示全部楼层
huangqi412 发表于 2016-7-19 20:56
手册不说这特性  有可能给某些用户挖大坑啊

谁说没有的,看PDF不认真的说没有。这个锅兆易不背。请看楼上。

出0入0汤圆

发表于 2016-7-20 10:56:07 | 显示全部楼层
chaled 发表于 2016-7-20 10:28
现在的问题是,GD32F103内部有256K的SRAM做flash缓冲区(参考GD32F103的手册)。即使是GD32F103C8T6只有64K ...

256K的缓存这成本也太高了吧,而用户能看到的ROM和RAM往往还没这个隐藏的空间大也是醉了

出0入22汤圆

发表于 2016-7-20 11:02:27 | 显示全部楼层
LearningASM 发表于 2016-7-20 09:02
以前的ARM9都是在RAM里面运行,RAM+Flash有什么特别的,

arm9那是挂的SDRAM,和SRAM是两个东西,能相提并论么

出0入0汤圆

发表于 2016-7-20 11:03:41 | 显示全部楼层
科技猎人 发表于 2016-7-20 10:56
256K的缓存这成本也太高了吧,而用户能看到的ROM和RAM往往还没这个隐藏的空间大也是醉了 ...

这是IC厂家的策略而已。成本没想象中的那么高吧!

一块PCB,做一个山寨儿童玩具在淘宝就只能卖几十块。
同样的PCB材质,做个工控或者其他的,就能卖几千几万。
这个PCB成本会高很多吗?

当然这个例子不是特别特别合理。但是差不多这个意思!
GD家的优势就是自己的spi flash。

出0入0汤圆

发表于 2016-7-20 11:16:26 | 显示全部楼层
chaled 发表于 2016-7-20 11:03
这是IC厂家的策略而已。成本没想象中的那么高吧!

一块PCB,做一个山寨儿童玩具在淘宝就只能卖几十块。

这道也是。
我在想既然有这么大的RAM空间藏着用不完也是浪费,可以把RAM和串行flash摆到明面上,可以RAM变为内存空间,flash变为片内设备,使用时把加载程序的空间设置为只读,其余部分就都可以当变量区使用了,岂不是酸歪歪
不过这就和ST的不兼容了,在后期自主型号中使用更合适。

出55入66汤圆

发表于 2016-7-20 11:21:28 | 显示全部楼层
某宝竟然没货? 想知道它便宜到什么地步

出350入477汤圆

发表于 2016-7-20 11:29:05 | 显示全部楼层
huangqi412 发表于 2016-7-20 10:24
没看明白32K和128K关系   32K RAM  怎么一次加载128K FLASH的

SRAM sizes are 32KiB in each largest bl ...

4*32K=128K
感觉它应该是上电的时候硬件自动加载最前面32K,所以你访问这些部分是“没有延迟”的。之所以没有在上电的时候加载全部128K估计是考虑上电时间。(加载128K的耗时相当于现在的4倍)
后面的部分因为这个延迟时间恰好只够加载1K,所以认为它是作为Cache的,每次需要了就载入所需范围的1K
(个人感觉这个Cache行太长了,应该少加载一点,比如64或128字节就比较合适)如果在一个关键的中断函数里面遇到需要加载Cache,一下子延迟2K个时钟太坑人了!

出0入93汤圆

发表于 2016-7-20 11:53:10 | 显示全部楼层
redroof 发表于 2016-7-20 11:29
4*32K=128K
感觉它应该是上电的时候硬件自动加载最前面32K,所以你访问这些部分是“没有延迟”的。之所以 ...

看我45楼贴出的用户手册,感觉不像是Cache,而是固定的一个常量池,不然的话与手册的描述不符。而1KByte是Flash的1个页,硬件自动进行了页读,估计缓存在另一个1K的SRAM中了。

出0入0汤圆

发表于 2016-7-20 12:18:26 来自手机 | 显示全部楼层
这种有没可能容易破解些

出0入0汤圆

发表于 2016-7-20 12:28:06 来自手机 | 显示全部楼层
科技猎人 发表于 2016-7-20 11:16
这道也是。
我在想既然有这么大的RAM空间藏着用不完也是浪费,可以把RAM和串行flash摆到明面上,可以RAM ...

你这典型的技术角度。产品经理角度就不行了。你得保证一个多个系列拉开剃度呀!

出0入0汤圆

发表于 2016-7-20 12:32:33 来自手机 | 显示全部楼层
科技猎人 发表于 2016-7-20 11:16
这道也是。
我在想既然有这么大的RAM空间藏着用不完也是浪费,可以把RAM和串行flash摆到明面上,可以RAM ...

骚年不知道c8t6有两倍容量  f101有usb么   

出0入0汤圆

 楼主| 发表于 2016-7-20 12:35:00 | 显示全部楼层

手册里的确有说

本帖子中包含更多资源

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

x

出350入477汤圆

发表于 2016-7-20 12:35:54 来自手机 | 显示全部楼层
takashiki 发表于 2016-7-20 11:53
看我45楼贴出的用户手册,感觉不像是Cache,而是固定的一个常量池,不然的话与手册的描述不符。而1KByte ...

大于128K的flash怎么办?如果不是cache

出0入0汤圆

发表于 2016-7-20 12:48:09 | 显示全部楼层
sunnyqd 发表于 2016-7-20 12:35
手册里的确有说

按这个说法感觉没必要整4个32kb存储器啊,很明显32k之后只用1个1k的缓存啊,记下地址即可啊

出350入477汤圆

发表于 2016-7-20 13:00:22 来自手机 | 显示全部楼层
本帖最后由 redroof 于 2016-7-20 13:23 编辑
myxiaonia 发表于 2016-7-20 12:48
按这个说法感觉没必要整4个32kb存储器啊,很明显32k之后只用1个1k的缓存啊,记下地址即可啊 ...


那你如果一直在后面的地址运行,不是慢死了?
只要离开这1K,就要等待。如果要循环调用一个不在这1K里面的函数就完蛋了…
或者有一个循环体超岀了1K也完蛋了!
厂家不可能这样设计的。
拿全部128K当cache还差不多

修正:之前没看到那个手册截图。
很佩服这种厂家,竟然能设计出这样的东西!
如果哪个使用者一不小心写出了一个恰好分布在1K边界上的循环(其实写程序的人一般是不管这些的,由编译器自己分配),那么这个循环因为要不停的加载这个唯一的Cache,每次2K个时钟,结果等效的运行速度估计要慢1000倍以上!
如果有人想循环调用任何一个函数(基本上都不在当前1K),那么等效的运行速度也要慢1000倍!
之前有很多人给我推荐GD32,幸好我没用。。。。

出0入4汤圆

发表于 2016-7-20 13:09:18 | 显示全部楼层
昆天科的蓝牙芯片也是这种结构设计,虽然有64KRam,但实际程序能用的没有那么多,估计是为了设计方便,降低成本吧

出0入0汤圆

发表于 2016-7-20 13:16:57 来自手机 | 显示全部楼层
这么做应用很受限,强实时系统容易出问题呀。为什么内置flash不用并行连接呢,并行的话至少不用等那么久呀。

出350入477汤圆

发表于 2016-7-20 13:31:12 | 显示全部楼层
zhiwei 发表于 2016-7-20 13:16
这么做应用很受限,强实时系统容易出问题呀。为什么内置flash不用并行连接呢,并行的话至少不用等那么久呀 ...

那个1K的缓存完全是害人!
就算它没有任何缓存,每次都花16个时钟(8个字节,包括命令码,3字节地址,4字节数据)去读一个32位都比目前要好得多。至少这样你可以确定的知道这个运行速度是降低16倍的(72兆降到4.5兆,也不至于完全不能用)
弄了个这么大的缓存,经常得花时间加载一大堆无用的内容,结果除非长期在1K之内执行代码,否则运行速度最好是降低8倍(超过1K范围的顺序执行,要花2K周期读取1K代码,含256条指令),最坏是降低1000倍(原本4个周期的循环,白白增加了两次2K的加载时间)
我认为这种情况下的平均速度应当算降低100倍!

出0入0汤圆

发表于 2016-7-20 13:31:19 | 显示全部楼层
说得我好想用一下GD的芯片,我正在做的一个系统就是分散加载的

出350入477汤圆

发表于 2016-7-20 13:33:11 | 显示全部楼层
McuPlayer 发表于 2016-7-20 13:31
说得我好想用一下GD的芯片,我正在做的一个系统就是分散加载的

先想想怎么写程序能不让那个1K的缓存变成瓶颈吧。
具体计算我上面写了,如有不同意见请列出

出0入0汤圆

发表于 2016-7-20 13:48:48 | 显示全部楼层
我现在每个模块是独立的,主程序根据需要选择性加载模块,根据需要加到内部RAM,然后进行地址重定位,然后运行
每个模块,类似于一个exe,主程序类似一个os

我现在是STM32外挂了一个25芯片放程序实现的,常用的模块,也可以加载到内部Flash,更换的时候要先擦除,不常用的模块放RAM
主要是STM32的RAM比较珍贵

出0入0汤圆

发表于 2016-7-20 13:58:50 | 显示全部楼层
huangqi412 发表于 2016-7-20 12:18
这种有没可能容易破解些

GD承诺了,逻辑地址连续,物理地址不连续。您破解出来的数据应该是物理地址的。并不一定是逻辑地址的数据!

出0入0汤圆

发表于 2016-7-20 14:30:19 | 显示全部楼层
看了它家的F1x0和F10x的UM,手册中明确指出,前者前32K零等待,后者前256K零等待。
这个关键点宣传时,讳而不提,忽悠人嘛!

注意区分:
F1x0:F130/F150/F170/F190
F10x:  F101/103/105/107

出0入0汤圆

发表于 2016-7-20 15:18:14 | 显示全部楼层
redroof 发表于 2016-7-20 13:00
那你如果一直在后面的地址运行,不是慢死了?
只要离开这1K,就要等待。如果要循环调用一个不在这1K里面 ...

按手册说法确实只有一个1K字节的cache.

出350入477汤圆

发表于 2016-7-20 15:39:02 | 显示全部楼层
hyz_avr 发表于 2016-7-20 15:18
按手册说法确实只有一个1K字节的cache.

按这个手册说法,我就要庆幸没被代理商忽悠用这么一款奇葩的芯片
2K个周期的等待啊!太坑人了!

出0入0汤圆

发表于 2016-7-20 15:58:35 | 显示全部楼层
本帖最后由 RAMILE 于 2016-7-20 16:04 编辑

看来,使用GD的话超频100MHz并没有完全发挥SRAM缓存的优势哈

正在头疼,STM32的频繁中断需要的Flash等待时间太长了,用GD正好可以解决快速跳转的问题

出0入0汤圆

发表于 2016-7-20 15:59:45 | 显示全部楼层
RAMILE 发表于 2016-7-20 15:58
看来,使用GD的话超频100MHz并没有完全发挥SRAM缓存的优势哈

GD本来最高就是96M的吧,超到100M不算什么吧

出0入0汤圆

发表于 2016-7-20 16:08:20 | 显示全部楼层
redroof 发表于 2016-7-20 15:39
按这个手册说法,我就要庆幸没被代理商忽悠用这么一款奇葩的芯片
2K个周期的等待啊!太坑人了! ...

我倒是有用了105,不过只用了128K FLASH型号的,在256K的范围内,所以完全是零等待的,不过代理没直接说明这个问题确实可恶.

出0入0汤圆

发表于 2016-7-20 16:11:49 | 显示全部楼层
redroof 发表于 2016-7-20 13:00
那你如果一直在后面的地址运行,不是慢死了?
只要离开这1K,就要等待。如果要循环调用一个不在这1K里面 ...

也有可能确实如你理解一样,只有第一次触发32k后的地址会产生超长等待,要真是这样的话

利用起来整个128KB内存也很方便啊,开机后先后面96个扇区全部触发一遍,让他把整个128K内存全填充满,之后就是整个128K内存之内就是无等待  很happy啊

出0入0汤圆

发表于 2016-7-20 16:14:33 | 显示全部楼层
RAMILE 发表于 2016-7-20 15:58
看来,使用GD的话超频100MHz并没有完全发挥SRAM缓存的优势哈

正在头疼,STM32的频繁中断需要的Flash等待时 ...

嘿嘿  这个还不简单 把中断向量映射到sram啊

出350入477汤圆

发表于 2016-7-20 16:15:10 | 显示全部楼层
myxiaonia 发表于 2016-7-20 16:11
也有可能确实如你理解一样,只有第一次触发32k后的地址会产生超长等待,要真是这样的话

利用起来整个128 ...

可惜我猜错了
按手册的写法就是超过前面的32K以后,后面的所有Flash都共用这个1K的缓存。
真是奇葩。。。

出0入0汤圆

发表于 2016-7-20 16:21:44 | 显示全部楼层
本帖最后由 RAMILE 于 2016-7-20 16:24 编辑
myxiaonia 发表于 2016-7-20 16:14
嘿嘿  这个还不简单 把中断向量映射到sram啊


CortexM3的内核是把指令总线和数据总线分开的,指令走专用的路径应该会快一点,快多少我没试过

研究过LPC1830这个没有Flash的芯片结构,有专门的指令缓存放在指令总线上

出0入0汤圆

发表于 2016-7-20 16:21:48 | 显示全部楼层
myxiaonia 发表于 2016-7-20 16:11
也有可能确实如你理解一样,只有第一次触发32k后的地址会产生超长等待,要真是这样的话

利用起来整个128 ...

前面有人说了不同型号的cache大小,flash大小超出cache大小的话,怎么激活都没用.

F1x0(cache是32K):F130/F150/F170/F190

F10x(cache是256K):  F101/103/105/107

出350入477汤圆

发表于 2016-7-20 16:26:26 | 显示全部楼层
hyz_avr 发表于 2016-7-20 16:21
前面有人说了不同型号的cache大小,flash大小超出cache大小的话,怎么激活都没用.

F1x0(cache是32K):F130 ...

如果是统一Cache反而好了,在所有128K里面缓存最常用的32K基本上没太大问题。要相信20-80定律。
问题就是它不是Cache。
32K是静态映射给前面32K的Flash,另外1K当作一个单行的Cache,供后面96K来用!
唉,不知道哪个奇葩设计师发明的这种结构~

出0入17汤圆

发表于 2016-7-20 16:52:42 | 显示全部楼层
还不如1比1山寨

出0入0汤圆

发表于 2016-7-20 17:13:29 | 显示全部楼层
这样的话,较大的程序,运行时间就不可准确预估了。

出0入0汤圆

发表于 2016-7-20 19:59:15 | 显示全部楼层
KongQuan 发表于 2016-7-20 17:13
这样的话,较大的程序,运行时间就不可准确预估了。

---------别以为用汇编就能得到精确时序,还得字节对齐。
STM8就是因为运行时间不可预估被我抛弃了。根本发挥不了8位机的潜力。

出0入0汤圆

发表于 2016-7-20 20:00:35 | 显示全部楼层
哎 无法评论

出0入0汤圆

发表于 2016-7-20 20:04:35 | 显示全部楼层
都有能力生产芯片了,山寨这种有什么意义呢··自己做个品牌多好··

出0入0汤圆

发表于 2016-7-21 09:57:25 | 显示全部楼层
not_at_all 发表于 2016-7-20 19:59
---------别以为用汇编就能得到精确时序,还得字节对齐。
STM8就是因为运行时间不可预估被我抛弃了。根本 ...

stm8不可预估的原因,能说下吗?

出0入0汤圆

发表于 2016-7-21 10:02:44 | 显示全部楼层
KongQuan 发表于 2016-7-21 09:57
stm8不可预估的原因,能说下吗?

复杂指令集的原因。

出0入0汤圆

发表于 2016-7-21 10:27:48 | 显示全部楼层
laotui 发表于 2016-7-21 10:02
复杂指令集的原因。

51也是复杂指令集,还是可以计算指令的耗时的。

出0入0汤圆

发表于 2016-7-21 10:33:49 | 显示全部楼层
有点意思。图片好牛B,---总之:不明觉厉!

出0入0汤圆

发表于 2016-7-21 10:33:57 | 显示全部楼层
KongQuan 发表于 2016-7-21 10:27
51也是复杂指令集,还是可以计算指令的耗时的。

stm8加了流水线

出0入0汤圆

发表于 2016-7-21 10:50:24 | 显示全部楼层
compass180 发表于 2016-7-20 20:04
都有能力生产芯片了,山寨这种有什么意义呢··自己做个品牌多好··

这个要看你山寨怎么定义的了,GD外设寄存器兼容ST,所以程序基本上可直接使用,但还是有做了一些改进的,比如103的频率最高可以到96M,256K以下地址FLASH零等待(基本用的比较多也是256K以下的),F205/7系列可以外接SDRAM,有TFT控制器等.

出0入0汤圆

发表于 2016-7-21 19:00:48 | 显示全部楼层

不仅是这个关系,而且是32位对齐的储存格式,指令没有对齐就产生类似于流水线“断线”那样,产生额外延时。   但是8位机主频低,定时器也少,不像32位机那样财大气粗啊!
----------------------------
加一个 nop 指令延时一个周期,再加一个 nop 指令有可能延迟了4个周期; 假如你前面删掉一个指令,有可能第一个 nop 指令延时变了4个周期,你还得想办法减去多出来2个周期的延时,你还敢用汇编吗?

出10入12汤圆

发表于 2016-7-21 21:24:48 来自手机 | 显示全部楼层
hyz_avr 发表于 2016-7-20 15:59
GD本来最高就是96M的吧,超到100M不算什么吧

108M 骚年

出0入0汤圆

发表于 2016-7-21 21:48:52 | 显示全部楼层

嗯,那可能是我记错了,要使用USB的话,最高96M.

出0入0汤圆

发表于 2016-9-8 00:06:50 | 显示全部楼层
LearningASM 发表于 2016-7-20 10:22
现在牛逼哄哄的是ARM9叠层封装一个SDRAM,比如新唐的ARM9,叠层一个32M x 16bit的DDR2,给裸奔库,可以碾 ...

价格价格?

出0入0汤圆

发表于 2016-9-8 00:07:19 | 显示全部楼层
compass180 发表于 2016-7-20 20:04
都有能力生产芯片了,山寨这种有什么意义呢··自己做个品牌多好··

如果不兼容,会有这么多人用gd吗?

出0入0汤圆

发表于 2016-9-8 00:09:48 | 显示全部楼层
hhxb 发表于 2016-7-20 16:52
还不如1比1山寨

1:1上不了100M估计

出0入0汤圆

发表于 2016-9-8 00:14:42 | 显示全部楼层
chaled 发表于 2016-7-20 10:25
GD32肯定内置的自家的QSPI FLASH这个没话说,代理都默认的。
从几点可以看出来(基于GD32F130C8T6):
1,G ...

我觉得不如弄个编程位,控制stop下要不要留sram。一些情况下可以考虑stop时放弃cache,不过唤醒要等多少时钟周期呢……

出0入0汤圆

发表于 2016-9-8 08:48:30 | 显示全部楼层

http://www.amobbs.com/thread-5657112-1-1.html?_dsign=c059da44

问他

封装非常大,LQFP-216

出0入0汤圆

发表于 2016-9-8 16:44:16 | 显示全部楼层
runapp 发表于 2016-9-8 00:14
我觉得不如弄个编程位,控制stop下要不要留sram。一些情况下可以考虑stop时放弃cache,不过唤醒要等多少 ...

有呀,standby模式,就会丢掉数据。但是唤醒后,只能reset了。
所以我不喜欢这个模式!

出0入0汤圆

发表于 2016-9-8 21:11:28 | 显示全部楼层
chaled 发表于 2016-9-8 16:44
有呀,standby模式,就会丢掉数据。但是唤醒后,只能reset了。
所以我不喜欢这个模式! ...

额好吧
看来没高主频要求或者要求flash大的或者极端要求功耗的还是上stm吧
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-27 02:44

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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