![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
embedded
本专栏详细讲解cortex Mx芯片的原理和时间开发的技巧
XG_2013
本人热爱科技
展开
-
为什么要学习汇编代码二(函数的参数的工作原理)
优雅编写高质量的代码背景问题引入函数参数的选择避免函数参数超出4个参数,如果每个参数是一个字或者更小的情况下如果的确需要超过4个参数,请保证这个函数完成了一个比较高效的内容,来抵消因为栈的额外消耗的缺点。请把把相关的参数放在一个结构体,然后用指针的方式进行调用。减少long 的参数应用,其实不只是long,大于一个字的参数都需要更多的寄存器来表示。软件的浮点数,少用double 参数避免使用可变参数的函数,因为函数需要把所有的参数都要放到栈上。进阶问题总结背景本文章代码运行的对象是cortex M0的处原创 2020-07-22 16:25:23 · 419 阅读 · 0 评论 -
为什么要学习汇编代码一(更加深刻理解芯片的启动流程)
更加深刻理解芯片的启动流程背景介绍问题引入问题分析进阶的问题探讨结论背景介绍本文章探讨的是cortex M 系列的芯片的启动过程,其它的相关的芯片可以进行借鉴。本文所引述的代码位cortex M0相关连的代码,参考的文章是arm官方的原版的文档。问题引入> 笔者是芯片原厂的软件开发的组长,由于长时间和一些运用我们芯片做方案的方案商的开发人员接触,发现做方案的开发人员对汇编代码和芯片本身的理解比较欠缺。由于这些欠缺,可以很明显的看出在解决一些隐晦的bug和代码编写的性能方面显得非常吃力。问原创 2020-07-22 14:30:51 · 1719 阅读 · 2 评论 -
STM32GPIO口8种模式细致分析(类比51单片机)
关于STM32GPIO口的8种工作模式,我们先引出一些问题?STM32GPIO口如果既要输入又要输出怎么办?1、浮空输入模式 上图红色的表示便是浮空输入的过程,外部输入时0读出的就是0,外部输入时1读出的就是1,外部没有输入IO处于阻塞读不出电平状态。用处:感觉在信号处理方面用的比较好,比如在读取一段一段的波形,可以清晰的知道什么时候是0信号,什么原创 2016-05-05 18:08:30 · 8749 阅读 · 8 评论 -
如何确定嵌入式软件所需最小的栈空间大小
为什么嵌入式软件系统很难评估出所需栈的实际大小?栈的原理为什么嵌入式软件系统很难评估出所需栈的实际大小1. 难找到最大深度的函数2.可抢占的中断让这个问题变得更加复杂如何设置栈的大小没有中断驱动的情况,且很容易找到最大深度的函数有中断驱动的情况,且很难找到最大深度的函数一有中断驱动的情况,且很难找到最大深度的函数二栈的原理如上图:栈是一块内存区域主要有如下功能,增长方向是向下生长1.保存局部变量2.保存返回地址(函数调用深度越大,栈的开销越大)3.函数参数,一般情况下函数的参数是R0-R3(co原创 2020-07-17 18:39:01 · 1606 阅读 · 0 评论