使用CW32的RAM修改自定义协议

描述

本案例仅仅是简单方案,可供调试,不推荐在量产程序上。因为安全性较低,自由度较高。

该方法原理: MCU中的RAM可分为大概三块(与代码相关)栈 堆 静态区。

1.栈是代码运行中,针对临时变量开辟的临时空间。

2.堆是代码中主动开辟的空间,但是往往不会使用,容易导致内存泄漏与内存碎片化。

3.静态区是用于存放全局变量,静态变量的地方。

该方案就是在得知某(全局)变量的地址,通过串口或其他方式访问RAM

效果图:通过串口可以读取全局变量数据并修改全局变量数据。

CW32

 

CW32

在定时器中定义一个全局变量为 gTimTick 并会自加,周期在串口中打印数据。

CW32

定义为全局变量,可以map 中找到该变量的地址。

CW32

然后通过自定义协议,在仅仅知道ram地址的情况下可对该数据读写。

!!!因为非常自由,所以在实际调试中应添加诸多措施进行限制。包括且不限于CRC校验,获取安全权限,访问地址的限制,读写权限的限制

将两部分简易代码发出,仅供学习。

CW32

CW32

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分