21ic电子技术开发论坛

标题: 关于F105RB的两个问题,ST公司也是糊涂虫! [打印本页]

作者: 南海渔歌    时间: 2015-7-23 13:20
标题: 关于F105RB的两个问题,ST公司也是糊涂虫!
1、F105RB的flash是128K,按容量来说是中容量,但它又属于互联型产品。那么在MDK的JLINK仿真中怎么设置呢?如果选“中容量”,可是毕竟还有个互联的选项;若选互联,这个选项又写的是256K!
2、F105RB的flash,每页到底是1K还是2K?  STM32参考手册里,说F105属于互联产品,每页是2K;普通的中容量芯片每页是1K。但联系到第1个问题,我就不确定了。看F105/F107的英文手册,也没有任何说明,还要求看F1XXX系列的编程手册。可是这个手册里,明确说明只介绍F101--F103芯片的编程,压根就没提互联型芯片!

这个ST!那么多工程师都是白吃饭的啊!欢迎大家帮ST打我脸,我脸皮厚嘿嘿。不过我觉得打不到我。
作者: fanxsd    时间: 2015-7-23 13:23
交叉的蛋疼。
作者: Leeone    时间: 2015-7-23 13:30
反正感觉手册什么的比较乱
作者: 周董    时间: 2015-7-23 16:15
楼主威武。!!
作者: 香水城    时间: 2015-7-23 17:46
本帖最后由 香水城 于 2015-7-23 17:48 编辑

哈哈,我不打LZ的脸,我要感谢LZ,手册看的还是蛮仔细的,并且在有疑问的时候,能够发帖公开讨论。所谓:真理,越辩越明嘛。

第一个问题:

请看STM32F1的参考手册中的定义:(这段话在基本每个章节前面都有哦)

Low-density devices are STM32F101xx, STM32F102xx and STM32F103xx
microcontrollers where the Flash memory density ranges between 16 and 32 Kbytes.
Medium-density devices are STM32F101xx, STM32F102xx and STM32F103xx
microcontrollers where the Flash memory density ranges between 64 and 128 Kbytes.
High-density devices are STM32F101xx and STM32F103xx microcontrollers where the
Flash memory density ranges between 256 and 512 Kbytes.
XL-density devices are STM32F101xx and STM32F103xx microcontrollers where the
Flash memory density ranges between 768 Kbytes and 1 Mbyte.
Connectivity line devices are STM32F105xx and STM32F107xx microcontrollers.

105/107就是互联型,不管它的片上闪存有多小,有多大。

第二个问题:

在STM32F1的参考手册里,第三章(memory and bus architecuture)的第三节(memory map),这么众多的表格里,请看表7:flash module organization(connectivity line device)

里面清清楚楚写的闪存的每个page是2Kbyte

connectivity line flash.png

作者: mmuuss586    时间: 2015-7-23 18:29

学习下;
作者: 南海渔歌    时间: 2015-7-23 19:54
谢谢香版   但还是没解决疑问:
1、我知道F105RB属于互联型,我问的是在MDK的JLINK仿真中,需要选择一个类型。那么选择哪个?中容量还是互联型?不会贴图,在附件里。事实上我选择了中容量,仿真还没发现问题。没实验互联型。
2、我也看到这个表格了,互联型是2K。但由于第1个疑问,所以也就不确定第2个问题了。
3、额外再问一个问题,我将ST的USB_IAP例程(STM32F105_107_AN3354_FW_V1.0.0)移植到我的F105RB板子上,枚举正确,但在建立文件系统工作区时错误。这个文件系统的版本很老,基本看不懂。
   if (efs_init(&efs, 0) != 0)
      {
        /* efs initialisation fails*/
        return(-1);
      }
就是这个,总是进入return(-1)了!移植的时候,文件系统压根就没碰啊,怎么会有错?
haha.png

作者: myxiaonia    时间: 2015-7-24 10:11
南海渔歌 发表于 2015-7-23 19:54
谢谢香版   但还是没解决疑问:
1、我知道F105RB属于互联型,我问的是在MDK的JLINK仿真中,需要选择一个类 ...

兄弟执着了,这个size  表示最大可以达到的值,如果你用大容量的,103vc是256KBflash,按你说得选哪个?
作者: 15113484470    时间: 2015-7-24 10:32
你芯片flash容量多大,就选多大,与是不是互联型有啥关系
作者: 南海渔歌    时间: 2015-7-24 11:53
myxiaonia 发表于 2015-7-24 10:11
兄弟执着了,这个size  表示最大可以达到的值,如果你用大容量的,103vc是256KBflash,按你说得选哪个? ...

有道理哈,我改选互联型了,同时那个窗口里允许改写FLASH尺寸,我改成128K了,仿真发现没啥问题。   
不过原来选“中容量”,仿真也没发现啥问题。:dizzy:
作者: 598330983    时间: 2015-7-24 12:11
楼主的脸都被自己打了,我们怎么敢打。
作者: lefeng    时间: 2015-7-24 12:36
什么是互联型,都没注意到这个问题
作者: yklstudent    时间: 2015-7-24 12:40
我就看看,呵呵
作者: amd1217    时间: 2015-7-24 13:04
本帖最后由 amd1217 于 2015-7-24 13:06 编辑

确实很乱,不过还是以手册为准,
2.png

作者: myxiaonia    时间: 2015-7-24 15:57
南海渔歌 发表于 2015-7-24 11:53
有道理哈,我改选互联型了,同时那个窗口里允许改写FLASH尺寸,我改成128K了,仿真发现没啥问题。   
不 ...

更本不用改,如果你有心去看看闪存编程算法的话  其实就是一些c代码
用的也是st官方的东西  那个尺寸仅仅是允许的上限

按st要求做一般不会错,不按要求做可能会错也可能不会
作者: myxiaonia    时间: 2015-7-24 15:58
南海渔歌 发表于 2015-7-24 11:53
有道理哈,我改选互联型了,同时那个窗口里允许改写FLASH尺寸,我改成128K了,仿真发现没啥问题。   
不 ...

更本不用改,如果你有心去看看闪存编程算法的话  其实就是一些c代码
用的也是st官方的东西  那个尺寸仅仅是允许的上限

按st要求做一般不会错,不按要求做可能会错也可能不会
作者: 南海渔歌    时间: 2015-7-24 18:32
myxiaonia 发表于 2015-7-24 15:58
更本不用改,如果你有心去看看闪存编程算法的话  其实就是一些c代码
用的也是st官方的东西  那个尺寸仅仅 ...

谢谢!  可能匆忙间表达不清晰,不是改互联型的上限值,这个改不了,就是256K。改的是右下角的size,256K的尺寸是0x40000,我改成128K对应的0x20000了,于是地址范围那栏里就自动变为0801FFFFH了。我认为这个是需要改的吧。如下图: heihei.png
作者: 大秦正声    时间: 2015-7-25 08:15
看看
作者: myxiaonia    时间: 2015-7-25 09:16
南海渔歌 发表于 2015-7-24 18:32
谢谢!  可能匆忙间表达不清晰,不是改互联型的上限值,这个改不了,就是256K。改的是右下角的size,256K ...

改不改都不会影响使用  我当然是实践过才这么说的
作者: 南海渔歌    时间: 2015-7-25 09:35
好的  谢谢  结贴!
作者: zhou0214    时间: 2015-7-25 10:29
看着也是蛋疼啊,,
作者: demonmarshal    时间: 2021-3-3 11:15
其实这个确实是个问题,只是并不是体现在编程工具中,而是在操作flash的时候就会凸显出来,没有写明每页是1K还是2K,因为在操作flash的时候,先要擦除对应的页内容,才能再写进去,测试过了,这个互联型号确实有1K和2K,可能是因为根据容量来的,所以这里我都是按照2K/页来处理的




欢迎光临 21ic电子技术开发论坛 (https://bbs.21ic.com/) Powered by Discuz! X3.5