恭喜,你发布的帖子
发布于 2021-11-24 10:05:30
9楼
楼上大侠说的有一定道理,L区可能稍慢于V区.但时间可能主要消耗在参数的传来传去,规范的子程序要用L区(或者开辟一片公用的临时V区)涉及到参数的复制进来,再复制出去,平白无故的多了参数的来回复制,即使你没写一句逻辑算法代码,参数的传递时间都占大头.
因此V区比L区稍快,只有在最高全局的单一一个程序段且不涉及很多的参数传递时才能看出来一点,一旦涉及子程序的接口参数传递(比如把V区传公共V区,再把公共V区传给V区),这时用L或者V做公共缓存容器的优势基本不是太明显.
比如之前的帖子参数传来传去占用时序80us;全改成全局变量不传参数占用时序50us左右.
以前看shine的帖子说L区对中断堆栈的保护也是有讲究的.
因此用L区做公共缓存容器还是可行的.
至于L区太小,表面上看好像确实太小好像是60byte左右,但个人觉得L不是太小而是太大了反而让不熟悉的人用的不太好,其实组织的好的话可能只要两个指针八个字节的L区就基本够用了.
准备传给L区的V区的数据结构要压缩在60字节以内,比如前56个字节是值类型或者引用指针类型,但最后留四个字节的引用类型以备随时扩展到其它二级栈区域,以及显示声明实例化时再为这个二级栈分配堆空间就可以了.
200的底层固件很自由灵活,实时响应时序也不错,大部分代码只用全局变量满天飞基本也可以了.
请填写推广理由:
分享
只看
楼主