1. 设置网络环境
1) 设置宿主机网络环境
#ifconfig eth1 192.168.16.111

2) 设置开发板网络环境
>pri
>setenv ipaddr 192.168.16.233
>setenv serverip 192.168.16.111
>setenv gatewayip 192.168.16.1
>ping 192.168.16.111
>saveenv

2. 通过TFTP下载文件
>tftp 0x40000000 aaa.txt

3. 通过tftp烧写自己的u-boot
1) 下载文件到开发板
#cp u-boot.bin /tftpboot/    将编译好的u-boot放在宿主机tftp服务器目录
>tftp 0x40000000 u-boot.bin    下载u-boot到目标机

2) 用u-boot命令烧写Flash(先擦、再写)
>nand erase 0x0 0x60000            擦除flash,从0地址擦0x60000大小
>nand write 0x40000000 0x0 0x60000    将内存0x40000000地址处的文件写到Flash的0x0地址,写0x60000大小。

4. 加载内核
1) 生产uImage
arch/arm/boot/zImage 内核原版
制作u-boot引导的内核 uImage, u-boot/mkimage -> zImage -> uImage
#拷贝已编译过的u-boot/tools/mkimage 到/usr/bin
#在内核源码目录下执行make uImage

2) 安装内核
#cp arch/arm/boot/uImage /tftpboot
TFTP  下载内核映像  uImage  到  DRAM 1  的起始地址  0x40000000:   
>tftp 0x40000000 uImage
启动内核
>bootm

3) 固化内核
>tftp 0x40000000 uImage
>nand erase 0x600000 0x500000
>nand write 0x40000000 0x600000 0x500000

u-boot启动参数
>setenv bootcmd 'nand read 0x40000000 0x600000 0x500000; bootm 0x40000000'

5. 挂载文件系统
1) 搭建NFS服务器,参见《开发环境搭建 2.3节》

2) 重启NFS服务器
service portmap restart
/etc/init.d/nfs-kernel-server restart

6. 配置开发板启动参数
1) 设置u-boot启动命令
>setenv bootcmd tftp 40000000 uImage\; bootm\;

2) 设置内核启动参数,以NFS方式远程挂载宿主机上的根文件系统
>setenv  bootargs  'console=ttySAC0,115200  root=/dev/nfs  rw  nfsroot=192.168.1.130:/nfs/mini_rootfs ip=192.168.16.200:192.168.1.130:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc'

-----------------------------------------

设置内核io的接口:

设置GPIO的方向,如果是输出同时设置电平:
    gpio_direction_input(S5PV210_GPJ2(0));
    gpio_direction_output(S5PV210_GPJ2(0), 0);

获取输入引脚的电平:
    gpio_set_value(S5PV210_GPJ2(0), data);
    gpio_get_value(S5PV210_GPJ2(0));
    
二 内核中gpio的使用
     1 测试gpio端口是否合法 int gpio_is_valid(int number);

2 申请某个gpio端口当然在申请之前需要显示的配置该gpio端口的pinmux
        int gpio_request(unsigned gpio, const char *label)

3 标记gpio的使用方向包括输入还是输出
       /*成功返回零失败返回负的错误值*/
       int gpio_direction_input(unsigned gpio);
       int gpio_direction_output(unsigned gpio, int value);

4 获得gpio引脚的值和设置gpio引脚的值(对于输出)
        int gpio_get_value(unsigned gpio);
        void gpio_set_value(unsigned gpio, int value);

5 gpio当作中断口使用
        int gpio_to_irq(unsigned gpio);
        返回的值即中断编号可以传给request_irq()和free_irq()
        内核通过调用该函数将gpio端口转换为中断,在用户空间也有类似方法

6 导出gpio端口到用户空间
        int gpio_export(unsigned gpio, bool direction_may_change);
        内核可以对已经被gpio_request()申请的gpio端口的导出进行明确的管理,
        参数direction_may_change表示用户程序是否允许修改gpio的方向,假如可以
        则参数direction_may_change为真
        /* 撤销GPIO的导出 */
        void gpio_unexport();

残留的linux相关笔记的更多相关文章

  1. Linux相关笔记

    vim下 r /etc/hosts  会把这个文件读进来 r! df -Th  会把执行的内容读取进来 查找 /  ? 替换:s/old/new/g 2到9行替换2,9s/old/new/g 全部替换 ...

  2. Linux实战教学笔记19:Linux相关网络知识梳理

    第十九节 Linux相关网络知识梳理 标签(空格分隔): Linux实战教学笔记-陈思齐 一,前言 一个运维有时也要和网络打交道,所以具备最基本的网络知识,对一个运维人员来说是必要的.但,对于我们的工 ...

  3. Linux 学习笔记

    Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...

  4. linux学习笔记2-linux的常用命令

    第一篇博客:linux学习笔记1-ubuntu的安装与基本设置 之中,已经介绍了如何安装linux操作系统,以及一些基本的设置修改. 本篇博客主要介绍linux中的一些常用的终端命令 ======== ...

  5. Linux学习笔记(一)2015.4.13

    研究生由单片机转Linux学习 首先安装VMware虚拟机,用的是VMware 10.0 在VMware 10.0上安装视频上推荐的Red Hat Linux 5 安装后正式进入Linux学习 笔记1 ...

  6. 跟着鸟哥学Linux系列笔记1

    跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 装完linux之后,接下来一步就是进行相关命令的学习了 第五章:首次登录与在线求助man page 1. X ...

  7. 【转载】linux内核笔记之进程地址空间

    原文:linux内核笔记之进程地址空间 进程的地址空间由允许进程使用的全部线性地址组成,在32位系统中为0~3GB,每个进程看到的线性地址集合是不同的. 内核通过线性区的资源(数据结构)来表示线性地址 ...

  8. 20160127 linux 学习笔记

    Linux学习笔记第一天 Linux基本介绍 Linux的起源和发展: 简单说linux是一种操作系统,可以安装在包括服务器.个人电脑,乃至PDA.手机.打印机等各类设备中. 起源: Linux起源于 ...

  9. Linux学习笔记-林耐斯Notes-Linux就该这么学

    Linux学习笔记... 参考的优秀Linux网站: http://www.w3cschool.cn/linux/ http://www.linuxeye.com/ http://linux.vbir ...

随机推荐

  1. BZOJ3261: 最大异或和(可持久化trie树)

    题意 题目链接 Sol 设\(sum[i]\)表示\(1 - i\)的异或和 首先把每个询问的\(x \oplus sum[n]\)就变成了询问前缀最大值 可持久化Trie树维护前缀xor,建树的时候 ...

  2. Mysql慢查询 [第二篇]

    一.简介 pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog.General log.slowlog,也可以通过SHOWPROCESSLIST或者通过tcpdu ...

  3. vue-样式问题

    问题: 今天在用vue开发单页面应用的时候,遇到一个问题,在A页面,直接刷新,页面的布局样式之类的是没有问题的,不过在B页面跳转到A页面,那么A页面有一些样式就不是预期的效果. 发现解决问题: 用调试 ...

  4. (生产)js-base64 - 转码

    参考:https://github.com/dankogai/js-base64 安装 $ npm install --save js-base64 使用 var Base64 = require(' ...

  5. [C#]关于Distinct与重写IEqualityComparer时得知道的二三事

    我们在想对一个可枚举的对象集合进行去重操作时,一般第一个想到的就是就是Linq的Distinct方法. 先定义一个类,然后使用Distinct方法去重 class Man { public int A ...

  6. 进一步了解this和super

    知乎上看到一问题很好,拿了与大家分享,原地址:https://www.zhihu.com/question/31548104. 问: JAVA 中this 和super与覆写冲突的问题? 实例一: 输 ...

  7. chrome浏览器设置12px以下字体大小

    内容很简单 在 body 上添加一个 css 属性即可. .body { -webkit-text-size-adjust: none; } 结束,晚安!

  8. Spark核心组件

    Spark核心组件 1.RDD resilient distributed dataset, 弹性分布式数据集.逻辑上的组件,是spark的基本抽象,代表不可变,分区化的元素集合,可以进行并行操作.该 ...

  9. avast从隔离区恢复后,仍无法打开被误杀文件的解决方案

    从隔离区中手动恢复后,隔离区中被恢复的文件将不再展示. 此时,如果手动恢复的文件仍无法打开(图标此时也异常),请: 将avast禁用: 将avast启用. 然后尝试重新打开被误隔离并手动恢复的文件.

  10. 硬件-ESP32S模块资料

    1.产品概述 ESP-32S WiFi 模块是由安信可科技自主设计研发,该模块核心处理器 ESP32提供了一套完整的802.11 b/g/n/e/i 无线局域网(WLAN)和蓝牙4.2解决方案,具有最 ...