Windows操作系统
BIOS(设置) Windows系统 文件系统 驱动程序 应用程序

linux操作系统
bootloader(引导系统) kernel(内核) 文件系统 驱动程序 应用程序

交叉编译:程序编译与执行不在同一台机器

交叉编译工具链:交叉编译需要使用的工具

gcc编译流程
1、预处理 cpp test.c -o test.i
2、编译 ./cc1 test.i (test.s /usr/lib/gcc/i686-linux-gnu/4.8)
3、汇编 as test.s
4、链接 ld -L 链接库文件(目录) -I 链接头文件(目录)(不推荐)

命令特点:对于elf文件的处理
elf:常用语linux/unix系统的二进制文件

补充命令
readelf -h test(elf)查看头部信息
readelf -a test
magic 魔数 表示了文件类型

size test 显示elf文件中四个段大小

nm test 显示链接标号

重要命令
file test 查看elf文件的基本信息

strip test 瘦身命令
注意:不能对中间文件瘦身

objdump -d test > test.dis(反编译文件)(反汇编)
使用条件:1、内核调试时 2、走投无路时

addr2line 内核调试命令

objcopy --gap-fill=0xff -O binary test test.bin
字符填充 指明转换文件类型 elf格式文件 目标文件

objcopy --gap-fill=0xff -O srec test test.srec 摩托罗拉格式文件

网络配置(图形界面)

/etc/network/interface
1 # interfaces(5) file used by ifup(8) and ifdown(8)
2 auto lo
3 iface lo inet loopback

tftp服务器(文件传输服务)
1、sudo service tftpd-hpa restart (重启服务,当前有tftp服务器)
2、sudo apt-get install tftpd-hpa(服务器端) tftp-hpa(客户端)
3、tftp服务器配置(/etc/default/tftpd-hpa)
3 TFTP_USERNAME="tftp"
4 TFTP_DIRECTORY="/tftpboot" (自行指定,自行创建,加777权限) 建议创建到根目录下
5 TFTP_ADDRESS="0.0.0.0:69" 端口号
6 TFTP_OPTIONS="-c -s -l"
记得在修改过配置后重启服务

4、本机测试(127.0.0.1)
tftp + ip
tftp> get + 文件名 下载
tftp> put + 文件名 上传
tftp > q 退出

nfs服务器(网络文件系统)---- 共享文件夹
1、服务器端(Ubuntu) 客户端(开发板)
2、sudo service nfs-kernel-server restart (重启nfs服务,当前有nfs服务器)
3、sudo apt-get install nfs-kernle-server
4、nfs服务器配置(/etc/exports )
11 /source/rootfs *(rw,sync,no_subtree_check,no_root_squash)
(自行指定,自行创建,加777权限)
记得修改配置后重启服务

bootloader:Bootloader是硬件启动的引导程序,是运行操作系统的前提

bootloader:两种模式
1、交互模式:完成环境变量设置,能完成自启动模式设置
2、自启动模式:自行启动预设程序,代码

bootloader的基本功能
1、初始化相关硬件
2、把bootloader自搬运到内存中
3、执行用户的命令
4、加载并执行内核

bootloader选用原则:
1、支持当前开发板体系架构
2、支持板级结构
3、功能

选择了uboot
uboot版本:2013

uboot命令
环境设置
print 显示当前环境设置
serverip 服务器ip(Ubuntu)
ipaddr 开发板ip
setenv +环境变量 +参数
saveenv 保存设置
setenv + 环境变量 删除操作

数据传输
ping + 服务器ip 查看网络连接
tftp 41000000 文件名
物理地址(40000000-8000000)

调试
mm + 内存地址 (地址递增)
nm + 内存地址 (不递增)
0x1进行修改值
q退出

存储器访问
movi write kernel 41000000
写入 emmc分区 物理地址

movi read kernel 41000000
读到 emmc分区 物理地址

fdisk -c mmc 格式化(此格式化是指格式化为那种文件系统)

加载运行(自启动模式) 分隔 空格 空格
自启动命令 | 自启动顺序 | |
setenv bootcmd tftp 41000000 uImage\;tftp 42000000 exynos4412-fs4412.dtb\;bootm 41000000 - 42000000
下载 ( 内核程序 ) ( 设备树文件 ) 内核程序执行 (省略,文件系统) 设备树程序执行

自启动参数(设置挂载方式执行文件系统)
setenv bootargs root=/dev/nfs nfsroot=192.168.4.4:/source/rootfs rw console=ttySAC2,115200 init=/linuxrc ip=192.168.4.8
指明了根文件显示方式 根文件系统目录 可读可写 串口显示 文件第一个执行程序 开发板ip

uboot学习第一天的更多相关文章

  1. Magento学习第一课——目录结构介绍

    Magento学习第一课--目录结构介绍 一.Magento为何强大 Magento是在Zend框架基础上建立起来的,这点保证了代码的安全性及稳定性.选择Zend的原因有很多,但是最基本的是因为zen ...

  2. YII2学习第一天

    YII2学习第一天,之前稍微看了看TP,感觉和自己的理念不是很符合,然后转学YII2了. 使用的文档是https://github.com/yiisoft/yii2/tree/master/docs/ ...

  3. Java学习第一天

    Java学习第一天 对于网络管理员或者黑客必须知道的八个cmd命令 详情请参考:http://www.2cto.com/os/201608/533964.html          nbtstat  ...

  4. 一、Android学习第一天——环境搭建(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 一. Android学习第一天——环境搭建 Android 开发环境的搭建 ...

  5. web学习第一章

    web学习第一章   我是大概9月10日开始走上IT之路的,一开始学习了小段时间的自动化办公软件, 昨天我开始学习客户端网页编程,我了解什么是WEB,一些比较老古董的计算模式和发展历史,印象最让我深刻 ...

  6. Java 学习第一步-JDK安装和Java环境变量配置

    Java学习第一步——JDK安装及Java环境变量配置 [原文]  2014-05-30 9:09  Java SE  阿超  9046 views Java作为当下很主流的编程语言,学习Java的朋 ...

  7. swift系统学习第一章

    第一节:变量,常量,类型推断,字符,字符串 //swift学习第一节 /* 变量 常量 类型推断 字符 字符串 */ import UIKit //变量 var str = "swift&q ...

  8. (译) 强化学习 第一部分:Q-Learning 以及相关探索

    (译) 强化学习 第一部分:Q-Learning 以及相关探索 Q-Learning review: Q-Learning 的基础要点是:有一个关于环境状态S的表达式,这些状态中可能的动作 a,然后你 ...

  9. [未完成]WebService学习第一天学习笔记

    [未完成]WebService学习第一天学习笔记[未完成]WebService学习第一天学习笔记

随机推荐

  1. Linux 使用iftop命令查看服务器流量

    简介 iftop是类似于linux下面top的实时流量监控工具. iftop可以用来监控网卡的实时流量(可以指定网段).反向解析IP.显示端口信息等,详细的将会在后面的使用参数中说明. 安装 # yu ...

  2. FFMPEG在嵌入式硬件上应用之 —— 基本环境搭建及编译

    前段时间在翻看电脑里面资料时,发现了以前做的在嵌入式硬件上面运行以ffmepg为基础,以嵌入式硬件解码的多媒体播放工作,发现都快忘记完了.今日得闲整理温习了一下ffmpeg在嵌入式上的运用,这里给大家 ...

  3. css 使容器宽度适应内容宽

    p{ width:intrinsic; width: -moz-max-content; width: -webkit-max-content; float:right; width:auto; /* ...

  4. 学习大神笔记之“MyBatis学习总结(二)”

    MyBatis对表的增删改查操作         主要有两种方式:基于XML实现和基于注解实现. 完整项目结构: 工具类:MyBatisUtil-------用于获取  sqlsession pack ...

  5. 【CSS】创建布局

    随着对分离HTML元素的语义重要性与其表现的影响的不断强调,CSS在HTML5元素布局方面的作用越来越重要. 1. 定位内容 控制内容最简单的方式就是通过定位,这允许你使用浏览器改变元素的布局方式. ...

  6. OpenStack 企业私有云的若干需求(6):大规模扩展性支持

    本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...

  7. BZOJ1497: [NOI2006]最大获利[最小割 最大闭合子图]

    1497: [NOI2006]最大获利 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 4375  Solved: 2142[Submit][Status] ...

  8. LAMP.md

    LAMP Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越 ...

  9. BZOJ1002[FJOI2007]轮状病毒

    Description 轮状病毒有很多变种,所有轮状病毒的变种都是从一个轮状基产生的.一个N轮状基由圆环上N个不同的基原子 和圆心处一个核原子构成的,2个原子之间的边表示这2个原子之间的信息通道.如下 ...

  10. bash/shell编程学习(2)

    先来复习上节重定向的用法: 1.快速清空文件 cat demo.txt < /dev/null 注:linux中有一个经典名言[一切皆文件],/dev/null可以认为是一个特殊的空文件,更形象 ...