1. 编译器:常用的有Sourcery,linaro等。当然芯片厂家一般也会提供可用的编译器。

2. 将配置和编译时的输出O到其他位置:make O=some_dir

这样做的好处是保持源代码树的干净。

注意:O选项必须在每条make命令中给出:

make gconfig O=...

make ARCH=arm CROSS_COMPILE=... O=...

3. 多进程并行编译:make jN,N是并行进程数量。

4. DeviceTree位置(以arm为例):arch/arm/boot/dts/

5. disk image文件分析

windows下可以用winhex;

linux下可以用losetup加载disk image到loopback device (/dev/loopX)

然后用parted工具分析loopback device上的partition

获得分区信息后继续用losetup按分区加载image

之后就可以用mount挂载loopback分区了

6. EasyBCD安装CentOS

我们需要一个fat32分区,将iso复制到该fat32分区上;

从iso中解压images/和isolinux/;

使用EasyBCD添加grub启动项,并从其启动;

root (hdx, y)

kernel (hdx,y)/isolinux/vmlinuz

initrd (hdx,y)/isolinux/initrd.img

boot

7. 编译出来的uboot(包括SPL)可能需要先转成image才能写入flash。转换工具一般厂商会提供

8. 64位CentOS可能需要额外安装32位lib才能make gconfig/xconfig

9. vncserver如果报bad display name,在/etc/hosts中加入我们的hostname

10. busybox的tftp

tftp -g -r file host  #get remote

tftp -p -l file host  #put local

11. nfs配置文件(man之)

/home/user    ip/mask(insecure,rw,sync,all_squash,anonuid=0,anongid=0)

12. tftp server的root在/etc/xinetd.d/tftp中以-s参数指定

一般在/var/lib/tftpboot

13. driver的Makefile:看Documentation/kbuild

14. dts的编译

执行目录[arch/arm/boot]

# scripts/dtc/dtc dts/xxx.dts -o xxx.dtb -O dtb  # -o filename -O format

15. 编译完成后在system.map中可以看到内核符号表和kernel在内存中的位置

16. cat /proc/iomem可以看到memory layout

17. uboot的board config:

include/configs/xxx.h

autoconf.mk   #在make后生成

18. 可以先用initramfs+静态dev测试kernel

/dev目录下放console,tty[0-4],ttyS[0-4]。

使用--static编译的一个打印一段message的程序作为/bin/init

19. 静态dev和简单init测试通过后再用devtmpfs

20. kgdb

see Documentation/DocBook,kgdb需要启动参数

(DocBook需要make htmldocs,事先安装xmlto)

下到板子的还是uImage,vmlinux是给gdb的调试文件((使用了-g选项编译))

minicom -s配置串口,清除modem初始化序列

C-AQ退出minicom

arm-linux-xxx-gdb vmlinux

(gdb) set remotebaud 38400

(gdb) target remote /dev/ttyUSB0    # 假设你的host上通过ttyUSB0连接到开发板

21. 使用initramfs时不能自动挂载devtmpfs,需要手动挂载:

mount devtmpfs /dev -t devtmpfs

22. mtd_utils:

flash_erase -j /dev/mtd1 0 0  #格式化为jffs,使用RAW dev

mount /dev/mtdblock1 /mnt/mtdblock1 -t jffs2  #使用block dev

还有其他一些flash_xxx工具

23. 一般较流行的板子在内核中都会有defconfig,例如

make ARCH=arm socfpga_defconfig

可用的defconfig在arch/arm/configs/

24. busybox下设置时间

date MMDDHHMMYY

月 日 时 分 年

嵌入式linux开发:杂七杂八的话的更多相关文章

  1. 用Windows+VirtualBox搭建嵌入式Linux开发环境

    Windows+VirtualBox的嵌入式Linux开发环境的搭建 最近一直在学习Linux的设备驱动编写,一直是在物理机上安装的Ubuntu进行的,但是在Ubuntu12.04的系统中,已经不能用 ...

  2. 嵌入式linux开发环境构建

    2.1硬件环境构建 2.1.1主机与目标板结合的交叉开发模式 在主机上编辑.编译软件,然后再目标办上运行.验证程序. 对于S3C2440.S3C2410开发板,进行嵌入式Linux开发时一般可以分为以 ...

  3. 嵌入式Linux开发板

    嵌入式Linux开发板开发介绍: iTOP-4412嵌入式Linux开发板搭载三星Exynos四核处理器,配备1GB内存,4GB固态硬盘EMMC存储,独家配备三星S5M8767电源管理,配备Andro ...

  4. 8月11日嵌入式Linux开发免费项目体验邀您参与

    嵌入式Linux开发免费项目体验开课啦~~我们特意邀请到粤嵌金牌讲师和技术专家,为大家带来精彩有趣的嵌入式公开课,涉及到嵌入式学习.研发的方方面面.课堂中我们能体验到的不仅仅是最新资讯.技术体验,还有 ...

  5. 嵌入式Linux开发教程:Linux常见命令(上篇)

    摘要:这是对周立功编著的<嵌入式Linux开发教程>的第7期连载.本期刊载内容有关LinuxLinux常见命令中的导航命令.目录命令和文件命令.下一期将连载网络操作命令.安装卸载文件系统等 ...

  6. 嵌入式Linux开发——内容介绍与开发环境的搭建

    嵌入式Linux开发步骤 设计自己的硬件系统 编写Bootloader 裁剪自己的Linux内核 开发移植设备驱动 构建根文件系统 开发应用程序 嵌入式Linux学习要点 熟练使用开发工具和相关指令集 ...

  7. 嵌入式linux开发之工具------tftp

    我在嵌入式linux开发中用到tftp的地方主要有2个方面: 1.是在嵌入式目标板启动时,bootloader启动时通过uEnv文件,下载dtb文件和kernel文件: 2.是在嵌入式目标板启动后,通 ...

  8. 《嵌入式Linux开发实用教程》

    <嵌入式Linux开发实用教程> 基本信息 作者: 朱兆祺    李强    袁晋蓉 出版社:人民邮电出版社 ISBN:9787115334831 上架时间:2014-2-13 出版日期: ...

  9. 嵌入式Linux开发

    嵌入式Linux的开发和研究是Linux领域研究的一个热点,目前已开发成功的嵌入式系统有一半以上都是Linux.Linux到底有什么优势,使之取得如此辉煌的成绩呢?本文分为两大部分:Linux的优点. ...

  10. 嵌入式Linux开发系列之一: 走进嵌入式Linux的世界

    转载:http://www.ibm.com/developerworks/cn/linux/l-embed/part1/index.html   随着信息化技术的发展和数字化产品的普及,以计算机技术. ...

随机推荐

  1. ubuntu16.04安装tensorflow官方教程与机器学习资料【学习笔记】

    tensorflow官网有官方的安装教程:https://www.tensorflow.org/install/install_linux google的机器学习官方快速入门教程:https://de ...

  2. OpenDayLight Helium安装

    参照:OpenDaylight的Helium(氦)版本安装 下载链接地址为 http://www.opendaylight.org/software/downloads/helium 安装: unzi ...

  3. Gym 101246G Revolutionary Roads

    http://codeforces.com/gym/101246/problem/G 题意: 给出一个有向图,现在可以把图中的任意一条边改为无向边,问强连通分量最多可以有多少个点,在此情况下输出所有能 ...

  4. python函数返回局部变量,局部&全局变量同名问题

    其实关于返回局部变量不只是python的问题,凡是使用堆栈结构处理函数的语言都会有这样的问题,切记不要返回局部变量.因为当创建函数的堆栈撤销,所有对局部变量的修改都灰飞烟灭.来看我的小例子 def h ...

  5. H5 canvas控制坦克移动

    接着上一篇(http://www.cnblogs.com/zhouhuan/p/H5_tankgame.html),这一篇研究一下怎么响应玩家的操作让坦克进行相应的移动.   1. 了解keydown ...

  6. Cool Auto-Suggest 插件使用方法

    刚入职的时候公司主管曾经让我用Cool Auto-Suggest 插件写过后台管理页面内的自动填充及搜索功能. 其实这个插件的使用很简单,网上也有相应的翻译文档,但是明显的机翻看着无法忍受.我写一下使 ...

  7. Spring Boot安装

    Spring引导依赖项groupId使用org.springframework.boot. 通常Maven POM文件将继承自spring-boot-starter-parent项目,并将依赖性声明为 ...

  8. 豆知识( DNS; HTTP入门;网络协议)

    DNS入门知识 DNS服务器 通过DNS服务器,才能知道某个域名的IP地址到底是什么. Linux系统里面,DNS服务器的IP地址保存在/etc/resolv.conf文件 使用工具软件dig可以查询 ...

  9. Android之微信开放平台实现分享(分享好友和朋友圈)

    开发中分享操作往往经常遇到,而且还是一些比较大型一定的平台,如微信,QQ,微博等.写这篇博客主要是把微信的的分享和相关操作表达一下,分享可以包含:文字,视频,音乐,图片等分享. 分享可以有 分享给好友 ...

  10. IOS-CoreData(增删改查、表关联、分页和模糊查询、多个数据库)

    1>什么是CoreData Core Data是iOS5之后才出现的一个框架,它提供了对象-关系映射(ORM)的功能,即能够将OC对象转化成数据,保存在SQLite数据库文件中,也能够将保存在数 ...