免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: captainliuy
打印 上一主题 下一主题

[操作系统] 我有一块ARM板,怎么在上面一步一步跑起Linux [复制链接]

论坛徽章:
0
11 [报告]
发表于 2014-08-14 10:46 |只看该作者
回复 10# arm-linux-gcc


    就是说是静态传递的,编译到Kernel里,而不是系统镜像启动时动态加载设备的信息?

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:58:11
12 [报告]
发表于 2014-08-14 12:26 |只看该作者
本帖最后由 arm-linux-gcc 于 2014-08-14 12:29 编辑

回复 11# captainliuy


    对,是静态的,不是动态枚举的

论坛徽章:
0
13 [报告]
发表于 2014-08-14 17:17 |只看该作者
本帖最后由 captainliuy 于 2014-08-14 17:21 编辑

回复 12# arm-linux-gcc


    看了点Device Tree的资料,说是最后device tree的脚本被编译成一个二进制文件,后写入flash中。bootloader会给image传递device tree的位置。比如我板子上只有2个SPI,3个I2C,4个UART,那我在编译的时候可以裁减系统,使其只包含这三个驱动,然后系统读取device tree的信息就可以驱动起来这三种共9个的外设了吧?

系统跑起来,是不是在/dev/目录下就可以看到相关的文件了,只要fopen就可以操作?

论坛徽章:
0
14 [报告]
发表于 2014-08-14 17:18 |只看该作者
回复 13# captainliuy


    不知道Eclipse上有没有Device tree的插件,我看到freescale的开发工具里提供了个GUI的device tree配置工具。

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:58:11
15 [报告]
发表于 2014-08-14 18:07 |只看该作者
本帖最后由 arm-linux-gcc 于 2014-08-14 18:25 编辑

首先你还需要uboot来启动kernel,所以uboot里面你需要的东西:
1,PLL时钟配置
2,RAM控制器timing配置
3,pin脚和gpio配置
4,flash驱动(如果使用tftp下载则没必要使用flash)
5,eth驱动(用来支持tftp下载)
1 2 4 5多半有现成的,不需要你自己去实现,但是3需要根据你自己的板子来进行配置





然后是kernel

只是uart i2c spi这几个驱动显然是不够的,还需要irq、clocksource、clk、pin-ctrl/gpio

dtb和kernel和rootfs都没必要烧flash,dtb和kernel可以直接通过uboot下载到内存里面
rootfs就用NFS好了(这个需要eth驱动)
rootfs如果使用ubifs/yaffs这些,那么你还需要flash驱动
rootfs如果使用initramfs那更方便,这就不需要任何存储介质驱动了,只不过initramfs的size是有限制的,不能太大,你得自己构建一个只有几M大小的根文件系统(需要准备一些启动脚本和必要的库和busybox)


kernel中这些驱动多半有现成的,不需要你自己去实现,可能就只修改一下dts文件中的pin/gpio配置而已





操作设备一般都是用open而不用fopen










captainliuy 发表于 2014-08-14 17:17
回复 12# arm-linux-gcc

论坛徽章:
0
16 [报告]
发表于 2014-08-15 10:03 |只看该作者
回复 15# arm-linux-gcc


    谢谢耐心解答,已经明白了。

论坛徽章:
0
17 [报告]
发表于 2014-08-15 10:08 |只看该作者
回复 15# arm-linux-gcc


    有没有类似图形界面的Device Tree配置工具呢,freescalse有Eclipse里的插件,Altera的Soc FPGA通过FPGA里的一个Qsys的工具可以得到系统的bsp信息,然后直接可以生成DTS.

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:58:11
18 [报告]
发表于 2014-08-15 14:24 |只看该作者
回复 17# captainliuy


    没有,一般都是手写,你只是做板级移植改起来很快的,并不麻烦

如果是做soc这个级别的移植,那么工作量要上升几十倍(这个soc特有的驱动需要你去实现,mach-xxx目录中的全部东西也需要你去实现,dts也需要你几乎从零开始编写)


论坛徽章:
3
卯兔
日期:2013-08-26 22:14:57未羊
日期:2013-09-08 19:16:05未羊
日期:2014-10-23 10:34:12
19 [报告]
发表于 2014-08-20 10:56 |只看该作者
说的太详细了,我没有补充的了

论坛徽章:
0
20 [报告]
发表于 2014-08-20 22:52 |只看该作者
set1.移植bootloader,初使化硬件,引导kernel。
set2.移植kernel。
set3.移植fliesystem。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP