472_Arduino setup之前的工作分析
发布日期:2021-06-30 03:27:54 浏览次数:2 分类:技术文章

本文共 697 字,大约阅读时间需要 2 分钟。

         全部学习汇总:

         在Arduino的一个程序的框架中,初始化的部分在setup函数中实现,而之后软件进入到一个叫做loop的无限循环。这个是大概的一个套路性的处理。

         那么,在嵌入式的软件中,最初的软件执行一般是startup,然而用户真正需要了解的软件的初始其实还真就是main函数。C语言中如此,嵌入式的C++也是差不多的。如此,可以根据这个线索找到setup之前是否还有什么处理。

         这就是main函数的实现,之前已经对两个接口是否是通过这个链接到了外部的文件做了测试。这样,在setup之前的究竟有什么执行操作就容易定位了。

         首先,直接采用了编译的处理弄清楚了,39~41行其实是没有作用的。而initVariant的定义其实就在文件的上面,是一个空函数。这样,setup之前的操作就只有一个init函数的执行了。

         首先,一个明确的动作是关中断。接下来,一系列的代码其实是为了兼容很多不同的MCU,但是,这些代码的处理全都是设置了timer0定时器。从注释信息看,Arduino提供的延时的操作接口或许就是使用了这个定时器。

         这里能够继续获得到的信息是,这个定时器其实是使用了中断的。

         这里设置了几个其他的定时器,主要还是用于PWM的实现。我估计,在注入PWM等具体的功能模块中,这些寄存器的使用应该还会有其他的修改。

         最后,把用于BootLoader的串口给禁用掉。这个也很容易理解,APP其实是从BootLoader跳转过来的,而在BootLoader中使用到了串口功能。不过,合理的处理方式不应该是在BootLoader中直接实现串口的反初始化吗?这个,确实是处理的让我稍微费解了一点。

转载地址:https://greyzhang.blog.csdn.net/article/details/110732122 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:473_Arduino.h内容分析
下一篇:471_Arduino初始化以及loop的实现

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月28日 22时54分46秒