完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
我想把一个字节数组指针转换成以下结构:
TyBuffsStult{ UIT1616T数据1; UIT1616T DATA2; UIT1616T数据3; Uti1616T数据4; UIT88T数据5; BuleRevisValueSut; 我这样做: 无效函数(UTI8*T*缓冲器){ BeleRevsValueSt**值; 值=(BuleReVESeValueSt**)和缓冲器〔1〕; 函数2(值-gt;DATA1); } 在调试时,一切看起来都很好,但是当我进入函数2时,程序跳转到StuttuppPoSoC63YMCMPLUS S中的故障处理程序。 有没有人理解这为什么不起作用? 以上来自于百度翻译 以下为原文 I want to cast a byte array pointer to the following structure: typedef struct { uint16_t data1; uint16_t data2; uint16_t data3; uint16_t data4; uint8_t data5; } BleServicesValues_t; I do something like this: void func1(uint8_t* buffer) { BleServicesValues_t* values; values = (BleServicesValues_t*) &buffer[1]; func2(values->data1); } While debugging, everything looks fine, but when I step into func2, the program jumps to Fault_Handler in startup_psoc63_cm0plus.S. Does anyone understand why this is not working? |
|
相关推荐
1个回答
|
|
|
这是一个对齐问题。应该将BuleReVESeValueStt强制转换为4(32位架构)的多个地址。您可能正在访问一个终止于1的地址。
如果你在缓冲区(0)抛锚,你可能会很好。 以上来自于百度翻译 以下为原文 That's an alignment problem. The BleServicesValues_t cast should be set to an address that is multiple of 4 (32-bit architecture). You are probably accessing an address ending to 1. If you cast at buffer[0] you probably be fine. |
|
|
|
|
只有小组成员才能发言,加入小组>>
786个成员聚集在这个小组
加入小组cyUSB3014一直显示2.1,不能到3.0情况,谁遇到过
7088 浏览 0 评论
2474 浏览 1 评论
2166 浏览 1 评论
4031 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
2073 浏览 6 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
7566浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
6114浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
742浏览 2评论
709浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
7961浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 18:52 , Processed in 0.689692 second(s), Total 72, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2081