完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
只是一个快速为大家。(你在听柏树吗?)
在仿真EEPROM组件中有2个严重错误,使得它不适合在任何应用程序中使用。 它与计算闪存数组内部地址的方式有关。用户没有对这些控件的控制,只能通过编辑生成的源或修改提供的库源来完成工作。 1。如果您定义的常量结构、变量或数组恰好位于Flash AARY-0之外,那么写入它会损坏其他区域的Flash。数据将被保存到错误的Flash数组中,并且可以覆盖代码或配置数据。 2。如果您在Flash中存储的数据恰好占用了Flash数组的最后一行的一部分(再次对此没有控制),那么最后一行将被写入错误的Flash数组中,这可能损坏代码或配置数据。 我已经为这两个问题筹集到了塞浦路斯的票。我已经给了他们示例代码来演示这些问题,并且我确信一个修复即将到来,但是直到那时你才可以使用仿真EEPROM组件。 如果您当前使用此组件而不遭受任何不良影响,那么它只是偶然的——对代码的任何部分进行小的更改可以将您的Flash数据推送到受影响的区域之一,并导致代码以奇怪的方式运行。 对于PSoC 5或PSoC 5LP,这里有一个工作: 在代码被编译并编译之后,找到EMMEEPROMLWORTER()方法的生成源。它的名字将取决于你在模式图中命名组件的名称,例如,如果你的组件被命名为“Flash StaveT”,那么该方法将是Flash SaveWrWrad() 然后在文件中的大约121行编辑四行,并用以下方法替换它们: 行数=DATAAdv/CyFLASH SIEZOFFROW; 数组编号=DATAAdv/CyFLASH SIEZOFF数组; RoopOffice=DATAAdv-(CythFLASH SIEZOFFROWOR*ROW号); RealSrCd==0U; 然后在前面四点之后立即添加这条线: 行数和; 这将允许对Flash中的任何地址正确地计算行数和数组编号。 我希望这有帮助。 以上来自于百度翻译 以下为原文 Just a quick heads up for everyone. (Are you listening Cypress?) There are 2 serious bugs in the Emulated EEPROM component which make it not suitable for use in any application. It has to do with the way the internal addresses within the flash arrays are calculated. The user has no control over these and a work around is only possible by editing the generated-source or modifying the supplied library source. 1. If the constant structure, variable or array you have defined just happens to live outside of flash array-0 then writing to it will corrupt other areas of flash. The data will get saved to the wrong flash array and could overwrite code, or configuration data. 2. If the data you are storing in flash just happens to occupy part of the last row of a flash array (again you have no control over this) then the last row will be written to the wrong flash array, which could damage code or configuration data. I have raised tickets with Cypress for both of these issues. I have given them sample code which demonstrates the issues and I am sure a fix will be forth coming, but until then you canot use the Emulated EEPROM component. If you are currently using this component and not suffering any bad effects, then it is only by chance - a small change to ANY part of your code could push your flash data into one of the affected areas and cause your code to behave in strange ways. For those on PSoC 5 or PSoC 5LP here is a work around: After you code is built and compiled, find the generated source for the Em_EEPROM_Write() method. [Its name will depend on what you names the component in the schematic, for example if your component is named 'FlashSave' then the method will be FlashSave_Write() ] Then edit the four lines at approximately line 121 in the file and replace them with this: rowNumber = dataAddress / CY_FLASH_SIZEOF_ROW; arrayNumber = dataAddress / CY_FLASH_SIZEOF_ARRAY; rowOffset = dataAddress - (CY_FLASH_SIZEOF_ROW * rowNumber); readSrcIndex = 0u; And then add this line immediately following the previous four: rowNumber &= 0x000000ff; This will allow the rowNumber and arrayNumber to be calculated properly for any address in flash. I hope this helps. |
|
相关推荐
8个回答
|
|
在使用PSoC4时,我仍然遇到这个组件的问题。
奇怪的是,一些阵列的I店将工作,其他不会。 但是,x写()函数返回成功。但是…它不写它。 有谁经历过同样的问题吗? 马蒂斯 以上来自于百度翻译 以下为原文 I'm still experiencing issues with this component when using the PSoC4. strangely enough some array's I store will work and other won't. Yet the _Write() function returns succes. but.. it doesn't write it. any one experiencing the same issue? matijs |
|
|
|
你能上传一个显示错误的项目吗?使用创建者的“创建工作区束”并使用IE(铬仍然不工作)上传结果文件
鲍勃 以上来自于百度翻译 以下为原文 Can you please upload an example project showing the error? Use Creator's "Create Workspace Bundle" and upload the resulting file using ie (Chrome still does not work) Bob |
|
|
|
|
|
|
|
这个问题主要包含在PSoC 5/5LP上。这些设备可以有多达4个闪光灯。PSoC 3和PSoC 4只有一个闪存块。因此他们只倾向于第二个问题,你的描述,如果你想写FLASH的最后一行出现。Flash是通过连接顺序分配,所以PSoC 3/4问题不发生除非你填补所有的闪存设备和位置你尝试写被分配到最后一片闪光。
以上来自于百度翻译 以下为原文 This problem is mostly contained to PSoC 5 / 5LP. Those devices can have up to 4 Flash blocks. PSoC 3 and PSoC 4 have just a single Flash block. Therefore they are only prone to the second problem that you describe that can occur if you are trying to write the last row of flash. Flash is allocated by the linker sequentially, so for PSoC 3 / 4 the problem doesn't occur unless you fill all the Flash in the device and the location you attempt to write got allocated to that last piece of Flash. |
|
|
|
海因茨
是的,我希望能帮你测试一下。 -肯尼 以上来自于百度翻译 以下为原文 Heinz, Yes - I'd like to be able to help test the fix for you. -Kenny |
|
|
|
你好,
我们使用EEPROM模块与5LP也。 因此,在这里阅读新的模块何时何地发布将是非常有趣的。 亲切的问候, 托马斯 以上来自于百度翻译 以下为原文 Hello, we use the EEPROM module with a 5LP too. So it would be very interesting to read here, when and where the new module will be released. Kind regards, Thomas |
|
|
|
已经创建了一个新版本的创建者3(称为“组件PAC7”)。它包含更新的仿真EEPROM组件。
以上来自于百度翻译 以下为原文 A new version of Creator 3.0 has been released (called "component pack7"). It contains the updated Emulated EEPROM component. |
|
|
|
好的,让我们认真地做这件事,附加。
EEPROM UPDATE 215.5 K 以上来自于百度翻译 以下为原文 OK, lets do this the hard way, attached.
|
|
|
|
只有小组成员才能发言,加入小组>>
752个成员聚集在这个小组
加入小组2074 浏览 1 评论
1829 浏览 1 评论
3643 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1765 浏览 6 评论
1517 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
514浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
365浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
413浏览 2评论
360浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
866浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 06:57 , Processed in 1.124584 second(s), Total 91, Slave 74 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号