完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在使用I2C接口时,我找到了一个崩溃引导程序的方法。事实上,这将影响任何引导加载程序。CubTrdRuleCurdDyDATA命令不限制用户通过数据绑定边界追加数据。这会导致意想不到的行为。在我的I2C引导加载程序的情况下,I2C从所有其他传输中获取数据,防止其执行任何命令。虽然这可以被认为是一个用户错误,但结果是一个完全失败,这对于Bootloader是不可接受的。
原代码: 数据实例: 我们有数据块的一部分。*/ ACKCODE=CyrReTe成功; MEMCPY(&DATABOFFER)[DATAOPEN],和PACETBase[CYBTLDRYDATAYADDR],PKTSIZE; DATAOPEN++PKTSIZE; 断裂; 新代码: 数据实例: 我们有数据块的一部分。*/ ACKCODE=CyrReTe成功; 如果((DATAOPEN+PKTSIZE)& lsisiffOfCuthdId缓冲区) { MEMCPY(&DATABOFFER)[DATAOPEN],和PACETBase[CYBTLDRYDATAYADDR],PKTSIZE; DATAOPEN++PKTSIZE; } 其他的 { ACKCODE=CyrthyeleLe长度; } 断裂; 以上来自于百度翻译 以下为原文 I found a way to crash the bootloader when using the I2C interface. In fact, this should affect any bootloader. The CYBTLDR_COMMAND_DATA command does not restrict the user from appending data past the dataBuffer boundary. This will cause unexpected behavior. In the case of my I2C bootloader, I2C NAKs data from all further transfers, preventing it from performing any command. Although this can be considered an user error, but the result is a complete failure, which is unacceptable for a bootloader. Original code: case CYBTLDR_COMMAND_DATA: /* We have part of a block of data. */ ackCode = CYRET_SUCCESS; memcpy(&dataBuffer[dataOffset], &packetBuffer[CYBTLDR_DATA_ADDR], pktSize); dataOffset += pktSize; break; New code: case CYBTLDR_COMMAND_DATA: /* We have part of a block of data. */ ackCode = CYRET_SUCCESS; if ( (dataOffset + pktSize) < SIZEOF_COMMAND_BUFFER ) { memcpy(&dataBuffer[dataOffset], &packetBuffer[CYBTLDR_DATA_ADDR], pktSize); dataOffset += pktSize; } else { ackCode = CYRET_ERR_LENGTH; } break; |
|
相关推荐
3个回答
|
|
CytLtRuleCubjdl程序也需要固定。
以上来自于百度翻译 以下为原文 CYBTLDR_COMMAND_PROGRAM needs to be fixed as well. |
|
|
|
还有,有一种方法来重定向CyCultCub库吗?我们有多个PSoC 3用户,我想为我的网络中的每个人提供一个固定的库副本。
以上来自于百度翻译 以下为原文 Also, is there a way to redirect the CyComponentLibrary? We have multiple PSoC 3 users and I would like to provide a fixed copy of the library for everyone in my network. |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
754个成员聚集在这个小组
加入小组2106 浏览 1 评论
1853 浏览 1 评论
3671 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1786 浏览 6 评论
1536 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
571浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
424浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
438浏览 2评论
385浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
916浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 13:44 , Processed in 1.173354 second(s), Total 81, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号