佚名通过本文主要向大家介绍了嵌入式开发,嵌入式软件开发,嵌入式系统开发,嵌入式开发要学哪些,嵌入式软件开发是什么等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 嵌入式开发,启动问题?
描述:
解决方案1:
描述:
在嵌入式系统中:
OS的启动过程一般都是先将内核部分的代码从ROM拷贝到RAM后再将PC指针指向它然后开始执行OS的启动。我想知道这个拷贝过程的实际大小是由谁来决定的?也就是说这个OS的核心代码大小是怎么样被精确的计算出来的,是编译器或者连接器做到的吗?
如何知道哪些程序和变量需要拷贝到内存中执行?
如何知道内核空间大小?
哪些程序是要完全驻留在RAM中运行的呢?
而哪些程序是动态调入RAM的呢?
解决方案1:
编译器编译这个内核时就可以得到这些信息。BOOTLOADER一般是独立于内核的映像的,先得到这些信息再确定要拷贝的大小不就OK了
解决方案2: 这个过程可能分为好几个步骤。比如linux的一个启动过程:
rom先装载硬盘引导扇区的程序,然后运行引导程序。这个大小固定512k
引导程序装载setup程序和内核印象。由于是先生成setup程序和内核,就可以在引导程序中决定他们的大小了
那是一个镜像文件!
解决方案4: 偶刚看了一下, 还是不太懂
大概是ROM分好几个区, 每一个区的起始地址和结束地址是固定的, 不同的区有不同的应用.你需要设置指针, 机子启动或复位都从一个地址开始执行, 比方说 0XC00000. 你在设置一下相关地址就可以了.