1 系统组成

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说明驱动已经启动

4 Linux系统安装

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

注:Nand flash相当硬盘

系统安装步骤:

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

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

(3)然后安装BootLoader

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

(4)安装Linux内核

(5)下载文件系统

下载完成

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

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

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

6 交叉编译链工具实例

/***********************************
假如在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 链接器脚本

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

https://www.cnblogs.com/li-hao/p/4107964.html

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系统组成的更多相关文章

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

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

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

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

  3. Linux系统中的Device Mapper学习

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

  4. 玩转 Linux 系统的方法论

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

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

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

  6. 探索 Linux 系统的启动过程

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

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

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

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

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

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

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

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

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

随机推荐

  1. ubuntu 忽略文件的50unattended升级问题

    ubuntu出现这样问题 既然说那个文件扩展名无效,那干脆直接把那个文件删掉 sudo rm /etc/apt/apt.conf.d/20auto-upgrades.ucf-old 删掉之后应该就不会 ...

  2. ajax里post 设置请求头的编码格式

    我们常用的ajax形式就是post和get.post需要设置请求头,那么问题来了: 首先,为什么get不需要设置编码格式? 其次:不设置post请求头编码格式可以吗? 还有:常用的请求头编码格式有哪些 ...

  3. vue 中的数据绑定

    vue当中有个v-model, 是怎么实现的呢?其实是利用了$event. <div id="app"> <!-- 输入什么,就输出什么 --> <i ...

  4. Gym 102056I - Misunderstood … Missing - [DP][The 2018 ICPC Asia-East Continent Final Problem I]

    题目链接:https://codeforces.com/gym/102056/problem/I Warm sunshine, cool wind and a fine day, while the ...

  5. Luogu 1177 - 【模板】快速排序 - [快速排序][归并排序][无旋Treap]

    题目链接:https://www.luogu.org/problemnew/show/P1177 题意:输入 $n$ 以及后续 $n$ 个整数,让你将这 $n$ 个整数从小到大排序输出. 归并排序(用 ...

  6. [No000018D]Vim快速注释/取消注释多行的几种方法-Vim使用技巧(2)

    在使用Vim进行编程时,经常遇到需要快速注释或取消注释多行代码的场景,Vim教程网根据已有的教程介绍,总结了三种快速注释/取消注释多行代码的方法. 一.使用Vim可视化模式快速注释/取消注释多行 在V ...

  7. Markdown编辑工具及命令

    Markdown是一种可以使用普通文本编辑器编辑的标记语言,通过使用简单的编辑,可以使文本具有一定的格式. Typora是一款简介的Markerdown编辑器. 文本编辑语法: 标题: # 一阶标题 ...

  8. excel将百分比数据转为数值格式

    由于于原给定的数据是百分比格式的, 所以先在excel中将数据格式改为数值 修改步骤: 单纯更改单元格格式为数值没用,先在空白单元格输入数值格式的1,复制该数字,选中要转换格式的数据, 右键 ---- ...

  9. tensorboard使用过程错误记录

    首先代码如下: def word_vis(self,file,txtname):#生成的模型存放的地址:word_vismodel'+file为新建的文件夹名 txtname是通过word2vec生成 ...

  10. 解决win10无法访问共享

    一台win10共享的文件夹,有的电脑是可以访问的,我的win10 访问不了,说什么 遇到未知错误,用以下方法得以解决 ----------------------------------------- ...