简述linux的系统组成,Linux系统组成

1 系统组成

11b333175e079462d4b0c03901c25276.png

BootLoader:操作系统引导程序

内核:

文件系统:应用程序(用户开发的、网上下载的)

2 安装USB驱动

dongry@d-linux:~$ insmod usb_dnw.ko //安装USB驱动

dongry@d-linux:~$

kernel:GuoQian USB driver for DMW! //出现这一句说明驱动安装成功

3 查看驱动是否启动

dongry@d-linux:~$lsmod //查看驱动是否启动当中

出现usb dnw说明驱动已经启动

dda41f6b9c261f0c5a0e8db2d0d203a4.png

4 Linux系统安装

首先SEGGER J-FLASH ARM将引导安装程序下载到NOR flash;(引导安装程序通过JTAG下载到开发板的NOR flash),NOR flash通过USB下载线下载到NAND flash。

注:Nand flash相当硬盘

系统安装步骤:

(1)一切连接就绪后(开发板串口与PC机、开发板USB与PC机等)打开软件SecureCRT并连接好出现如下界面

71717abb83b87182448cedbad48c640c.png

(2)系统要安装到Nand flash,首先要格式化一下:

9aa050b6077e06a4e82275dc820a15d9.png

(3)然后安装BootLoader

8db43890d7ba17605e2cb19827d497aa.png

01c62502dbc48d585cb6291dc078b66c.png

99806b616f46492d270c7521e5db5fba.png

把文件下载到内存当中,然后安装服务程序会自动到内存中取这个文件,然后烧录到Nand Flash中

(4)安装Linux内核

59564994831776f05d7d3baf17add48f.png

0aa996b81975a550593af7c81e99eb43.png

(5)下载文件系统

dba950d9ae41c82f4fb2e7bea1289cc5.png

9a5694e8d30528fee97f6a730207662e.png

6245a9749f59d27c06a9751e5b99afaf.png

下载完成

8aa659a236ea1ca7a1a95cc1b74e6f8c.png

5 如果找不到arm-linux-gcc安装路径可以修改bash环境路径

dongry@d-linux:~$vim /root/.bashrc //只是一个例子,安装路径可能不同

c7de7536a5a31b387fea76407bc6f133.png

dongry@d-linux:~$vim /root/.bashrc //创建路径

dongry@d-linux:~$source /root/.bashrc //让路径生效

6 交叉编译链工具实例

7162019ff446e24b88be3d187c0c4258.png

/***********************************

假如在led文件中有led.lds led.S Makefiles三个文件

**************************************/

dongry@d-linux:~$ cd led

dongry@d-linux:~/led$ ls

led.lds led.S Makefile

dongry@d-linux:~/led$ arm-linux-gcc -g -c led.S //让led.S生成一个编译文件.o

dongry@d-linux:~/led$ ls

led.lds led.o led.S Makefile

dongry@d-linux:~/led$ arm-linux-ld -Tled.lds -o led.elf led.o //让led.o生成一个.elf文件

dongry@d-linux:~/led$ ls

led.elf led.lds led.o led.S Makefile

dongry@d-linux:~/led$ arm-linux-objcopy -O binary led.elf led.bin //生成一个.bin的二进制文件

dongry@d-linux:~/led$ ls

led.elf led.lds led.o led.S led.bin Makefile

dongry@d-linux:~/led$ make clean //删除刚才编译的各种文件

dongry@d-linux:~/led$ ls

led.lds led.S Makefile

dongry@d-linux:~/led$ make

led.elf led.lds led.o led.S led.bin Makefile

7 下载二进制文件到裸机

dongry@d-linux:~$ ./dnw ./led.bin //按回车

//出现:

addr=

File name:./led.bin

File size: bytes

Start Seeding data...

Seet % bytes 10k

8 链接器脚本

链接器脚本组成:段、起始链接地址、对齐、变量、代码段首文件

8.1 链接器脚本的创建

(1)创建段信息(包括代码段、数据段、bss段)

SECTION

{

.text : //创建代码段

{

*(.text)

}

.data : //创建数据段

{

*(.data)

}

.bss : //创建bss段

{

*(.bss)

}

}

(2)设置起始链接地址

SECTION

{

. =0x00000000; //设置起始链接地址

.text :

{

*(.text)

}

.data :

{

*(.data)

}

.bss :

{

*(.bss)

}

}

(3)对齐

SECTION

{

. =0x00000000;

. =ALION(); //四字节对齐

.text :

{

*(.text)

}

. =ALION(); //四字节对齐

.data :

{

*(.data)

}

. =ALION(); //四字节对齐

.bss :

{

*(.bss)

}

}

(4)变量

SECTION

{

. =0x00000000;

. =ALION();

.text :

{

*(.text)

}

. =ALION();

.data :

{

*(.data)

}

. =ALION();

bss_start = . ; //变量

.bss :

{

*(.bss)

}

bss_end = . ; //变量

}

(5)代码段首文件

SECTION

{

. =0x00000000;

. =ALION();

.text :

{

start.o(.text) //代码段首文件

*(.text)

}

. =ALION();

.data :

{

*(.data)

}

. =ALION();

bss_start = . ;

.bss :

{

*(.bss)

}

bss_end = . ;

}

8.2 运行链接器脚本

arm-linux-ld -Tled.lds start.o main.o -o led.elf //生成.elf文件

arm-linux-objcopy -O binary -S led.elf led.bin //生成二进制文件

arm-linux-objdump -D -S led.elf > dump //反汇编

在Linux系统下运行微信Web开发者工具

微信Web开发者工具只有window版本和mac版本,如果想要在Linux系统下运行微信Web开发者工具,需要花费很大周折. 注:带 * 的步骤或文件为不确定是否管用的步骤或文件.本人系统为Linux ...

Linux实战教学笔记06:Linux系统基础优化

第六节 Linux系统基础优化 标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 基础环境 第2章 使用网易163镜像做yum源 默认国外的yum源速度很慢,所以换成国内的. 第一步:先备份 ...

Linux系统中的Device Mapper学习

在linux系统中你使用一些命令时(例如nmon.iostat 如下截图所示),有可能会看到一些名字为dm-xx的设备,那么这些设备到底是什么设备呢,跟磁盘有什么关系呢?以前不了解的时候,我也很纳闷. ...

玩转 Linux 系统的方法论

Linus 说“Just for fun”,而我要说“Just for 折腾”.想知道我是怎样折腾 Linux 的,请看下面这个截图: 从这个截图可以看出,我为了“折腾” Linux 系统,在我的电脑 ...

Linux 系统中发博客必备的五大图片处理神器

发博客时,总免不了要用图片说话.经过长时间的磨合,在 Linux 桌面系统下有几款图片处理软件我已经用得比较顺手了.这几款软件在 Linux 世界使用广泛,各个 Linux 发行版的软件仓库中都有自带 ...

探索 Linux 系统的启动过程

引言 之所以想到写这些东西,那是因为我确实想让大家也和我一样,把 Linux 桌面系统打造成真真正正日常使用的工具,而不是安装之后试用几把再删掉.我是真的在日常生活和工作中都使用 Linux,比如在 ...

在linux系统中安装VSCode(Visual Studio Code)

在linux系统中安装VSCode(Visual Studio Code) 1.从官网下载压缩包(话说下载下来解压就直接可以运行了咧,都不需要make) 访问Visual Studio Code官网  ...

如何重置硬盘遭到“损坏”的Linux系统root用户密码

传统印象下Linux是非常坚不可摧的,具有千年不更新,万年不重启的美名.而随着虚拟化的推进,很多跑在虚拟化上的Linux由于先前基础架构的脆弱,变得适应性“越来越不好”,体现在IP存储如果出现节点故障 ...

Linux 系统中的MySQL数据库默认区分大小写

今天在开发中遇到这么个问题,将连接的数据库改为服务器上的时候(服务器是Linux系统的),程序跑起来后一直出错,总提示数据库的表找不到, 而打开数据库看该表明明是存在的,在我的印象中MySQL数据是不 ...

如何配置Linux系统的网络IP地址

一台安装了Linux系统的电脑如果想要联网,首先要做的就是进行网络配置.今天小编就以CentOS6.4系统为例为大家介绍整个网络配置的过程,虽然只是以CentOS6.4系统为例,但是其它的Linux系 ...

随机推荐

Access使用join进行多个表联合查询的问题

Access是支持三表或三表以上的join查询的,但是要加括号,如果不加的话,会报错,括号的作用是决定join的顺序.例如: SELECT *FROM (aa LEFT JOIN bb ON aa.a ...

js1常用的东西

1 .ready 与resize方法.$(inject).ready(function() { var windowWidth = $(document.body).outerWidth(true); ...

ZOJ2588 Burning Bridges(割边模板)

题目要输出一个无向图的所有割边.用Tarjan算法: 一遍DFS,构造出一颗深度优先生成树,在原无向图中边分成了两种:树边(生成树上的边)和反祖边(非生成树上的边). 顺便求出每个结点的DFS序dfn ...

app framework map及ajax方法

$(function () { $.ajax({ url: 'Ashx/GetProductList.ashx', contentType: "JSON", success: fu ...

与malloc有关的问题

nefu 1026 申请动态空间存放字符串,将其排序后输出 http://acm.nefu.edu.cn/JudgeOnline/problemShow.php?problem_id=1026 #in ...

iOS 之 UITextView

_lableAssess = [[UITextView alloc] init]; [_lableAssess setFrame:CGRectMake(left2, top2, width2, siz ...

stick footer布局

需求: 将footer固定到底部.文章内容不足满屏时 footer在底部,超过满屏时footer在内容末尾. 方法一:

bzoj2257: [Jsoi2009]瓶子和燃料

2257: [Jsoi2009]瓶子和燃料 Time Limit: 10 Sec  Memory Limit: 128 MB Description jyy就一直想着尽快回地球,可惜他飞船的燃料不够了 ...

LNMP支持 多版本PHP

1.到 http://www.php.net/downloads.php(http://www.php.net/downloads.php) 选择合适的版本号,如 5.6.34 2.到 LNMP 1. ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值