Ren*_*h G 10 c embedded boot microcontroller assembly
我正在使用嵌入式主板,但我不知道相同的启动代码(C /汇编)的流程.
在嵌入式系统的情况下,我们是否可以讨论启动操作所采取的一般模块/步骤.
只是高级概述(算法)就足够了.欢迎所有的例子.
/ Kanu__
Yan*_*min 26
.bss是未初始化(或归零)全局内存区域的名称.没有初始化值(超过0)的全局变量,数组等位于此处.微控制器的一般做法是循环该区域并在启动时将所有字节设置为0.int thisGlobal = 5;,thisGlobal必须将值从持久区域(通常在闪存中的程序之后,由链接器生成)复制到RAM.这适用于静态值和函数中的静态值.未定义的值不会被复制,而是作为步骤2的一部分清除.main()从这里开始运行您的代码.通常,CPU处于中断关闭状态(取决于平台).
最大的问题是您的嵌入式系统是否将运行操作系统。一般来说,您要么想要运行操作系统,要么启动某种形式的控制反转(我记得学校项目中的一个例子是一个 telnet,它将使用 RL-ARM 或开源 tcp/ip 监听请求)堆栈,然后在建立连接/接收数据时执行回调),或者进入您自己的控制循环(可能显示一个菜单,然后循环直到按下某个键)。