Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arm 根设备在哪里?_Arm_Kernel_Raspberry Pi_Bare Metal - Fatal编程技术网

Arm 根设备在哪里?

Arm 根设备在哪里?,arm,kernel,raspberry-pi,bare-metal,Arm,Kernel,Raspberry Pi,Bare Metal,我正在为我的Raspberry Pi从头开始编写一个微内核,代码如下: 一切似乎都很好,但我有一个小问题:我想有一个文件系统,但我不知道如何获得根设备地址。我知道,在x86架构上,我们可以使用传递给主函数的参数中的标记来获取ROM地址,但是我已经解析了atags,没有什么有趣的 我怎样才能得到这个地址?只要选择它就行了。当你是裸机时,没有什么是强制性的。您可以从引导加载程序获得它,然后必须在引导加载程序中选择它,或者选择使用ramfs作为文件系统的根,或者选择使用您引导的SD卡作为根文件系统。这

我正在为我的Raspberry Pi从头开始编写一个微内核,代码如下:

一切似乎都很好,但我有一个小问题:我想有一个文件系统,但我不知道如何获得根设备地址。我知道,在x86架构上,我们可以使用传递给主函数的参数中的标记来获取ROM地址,但是我已经解析了atags,没有什么有趣的


我怎样才能得到这个地址?

只要选择它就行了。当你是裸机时,没有什么是强制性的。您可以从引导加载程序获得它,然后必须在引导加载程序中选择它,或者选择使用ramfs作为文件系统的根,或者选择使用您引导的SD卡作为根文件系统。这取决于您。

谢谢您的回答,但是,我真正想知道的是SD卡的根分区在哪里,因为在我的项目结束时,我想在其上放置二进制文件,然后在rpi上执行它。你知道我怎么做吗?每个根设备都是不同的。现在你说的是SD卡;你认为人们知道RPI的一切。至少对于eMMC,我想SD是类似的,有一个特殊的启动区域。在Linux下,您可以使用dd if=kernel.bin of=/dev/mmcblk0 bs=1k seek=1来放置引导映像。有一个分区表。然后,在卡中的某个偏移量处,有一个文件系统,可以为数百个可能的文件系统中的任何一个格式化。你只需要把问题换成SD卡,否则你就太宽泛了。Linux使它们看起来都一样,但下面有几十个驱动程序,等等。eMMC引导分区仅用于嵌入式需求。好了,SD卡上没有这样的东西。有两种常用的方法可以使用SD卡:将整个SD卡作为单个分区使用,或者将其与多个分区一起使用,就像通常使用硬盘一样。在这种情况下,SD卡的第一个LBA应包含MBR。