Linux系统组成
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系统组成的更多相关文章
- 在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系 ...
随机推荐
- PHP中多维数组var_dump展示不全
转载于http://blog.csdn.net/Merlin_feng/article/details/51733354
- cf954H
挖我自闭了这是什么东西啊. 给出一棵深度为 的树,其中深度为 的节点有 个儿子.问树上的简单路径中长度在 之间的每个有多少条. 表示对于在 层的 个节点,向下走 步的方案数 表示对于 ...
- Dalvik虚拟机执行流程图
- Realm 简介
是一个跨平台的本地数据库,比sqlite 数据库更轻量级,执行效率更高. 官网地址:https://realm.io/docs/java/latest/
- express.js graphql express-graphql
文档 创建应用 const l = console.log; var express = require("express"); var graphqlHTTP = require ...
- vue中使用html2canvas及解决html2canvas截屏图片模糊问题
最近在项目中用到了html2canvas插件,遇到的一些坑写下来,与大家共勉. html2canvas 官方网站http://html2canvas.hertzen.com/index.html 这 ...
- git最佳实践之feature和hotfix分支
先来复习一波,git的最佳分支管理流程: 再简单复习各个分支: master: 主分支,主要用来版本发布. develop:日常开发分支,该分支正常保存了开发的最新代码. feature:具体的功能开 ...
- eclipse中的快捷键的使用
- Android adb调试
1.首先是adb 修改 devices/amlogic/p201_iptv/system.prop service.adb.tcp.port=5555 或者直接在盒子串口下修改 system/buil ...
- python语法_使用占位符进行格式化输出
“%s” 占位符 name = input("name:") age = input("age:") job = input("job:" ...