- 博客(6)
- 资源 (3)
- 收藏
- 关注
原创 初始化程序运行的环境
pc 端程序运行的环境的建立过程有很多被隐藏了,而在嵌入式中一般我们都能看到完整的建立过程。这些过程能够让我们更清楚程序执行所依赖的环境,同时也可能会让我们进一步思考这些环境对程序的表达能力的扩展。以 rv32m1_vega 为例!关中断——在临界区内初始化程序运行环境为什么这时候要关中断呢?你可以想想这时候程序执行的环境还没有建立起来,如果产生了中断,那么系统也无法处理,而且中断的优...
2019-09-08 12:43:40 4138 2
原创 实时操作系统中调试上下文切换与中断处理汇编的一些方法
在移植实时操作系统到一款新的板子上时,上下文切换与中断处理是需要用汇编来编写的,尽管可能平时很少写汇编,但是真的写起来其实也没太大难度!可是如果哪个细节没有搞清楚,那么可能会出现特别奇怪的执行过程。这时候最好不要直接调试,最好停下来梳理下整个处理流程,从头到尾审视下自己的处理过程,看看有没有明显的问题。如果没有发现明显的问题,那么就调试一下吧!可是调试上下文切换与中断处理比调试 c 函数要麻烦点...
2019-09-07 20:07:44 482
原创 ld 链接脚本中标号名称可能造成的问题
问题描述在一款 risc-v 架构的开发板上,访问全局变量的时候出现了异常,调试发现全局变量的地址不正确。查看汇编发现全局变量的访问是通过 gp 寄存器中设定的全局指针加一个偏移量完成的,进一步查看这个寄存器的值,发现值不正确!我的思考gp 是全局指针寄存器,这个寄存器在我之前移植的另一款芯片上并没有使用到,这让我对这个寄存器没有足够重视。不过这个问题应该是 gp 寄存器变量设定的值不对,...
2019-09-06 08:44:17 210
原创 awtk 中统一接口的实例
统一接口的意义1. 对跨平台适配的意义不同平台的接口与实现可能都不太相同,但其达成的需求是相同的。通过对需求进行抽象,统一调用接口,将不同平台的变化封装到更低的层次,系统中不直接调用不同平台的函数,而是通过抽象层来与底层对接,对于上层应用来说,这个样的做法屏蔽了平台的差异!2. 对外部语言绑定的意义外部语言绑定时,统一接口有利于使用一套模板来生成代码,减少了重复的过程。3. 对应用开发者...
2019-09-03 11:13:20 1170 7
原创 计数在软件设计中的应用
计数是一个非常普通的过程,虽其普通,却在软件设计中有很多的应用。在这篇文章中我便列举二三,仅供参考!动态数据结构的引用计数在一些动态数据结构中,常常能看到引用计数的影子。这里的引用计数初始化为 0,被使用时加 1,使用完成后减 1。这里引用计数器大于 0 表示数据结构仍然有人使用,此时不能释放它,当引用计数减到 0 之后,表明没有人使用此数据结构,这时就可以调用相应的析构函数安全的释放其占用的...
2019-09-03 06:16:55 230
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人