我正在以嵌入式系统作为初学者,并且遇到了在main()函数开始之前运行的start.s
或cstart
文件。这些或类似文件的目的是什么?我们告诉系统的哪些信息?
答案 0 :(得分:8)
在最接近的时候,main()之前的启动代码设置" C环境"它初始化堆栈指针,将初始化变量值(.data)从非易失性存储器复制到RAM,并设置所有未初始化的变量(.bss)为零。
根据架构,您可能需要做更多事情。在进入main()继续系统启动之前,您可能需要初始化时钟和/或其他关键外设,中断向量,可能设置处理器上下文等等。
答案 1 :(得分:2)
它取决于体系结构,但通常将所有未初始化的全局变量设置为零并设置堆栈指针。