嵌入式linux开发:杂七杂八的话
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开发:杂七杂八的话的更多相关文章
- 用Windows+VirtualBox搭建嵌入式Linux开发环境
Windows+VirtualBox的嵌入式Linux开发环境的搭建 最近一直在学习Linux的设备驱动编写,一直是在物理机上安装的Ubuntu进行的,但是在Ubuntu12.04的系统中,已经不能用 ...
- 嵌入式linux开发环境构建
2.1硬件环境构建 2.1.1主机与目标板结合的交叉开发模式 在主机上编辑.编译软件,然后再目标办上运行.验证程序. 对于S3C2440.S3C2410开发板,进行嵌入式Linux开发时一般可以分为以 ...
- 嵌入式Linux开发板
嵌入式Linux开发板开发介绍: iTOP-4412嵌入式Linux开发板搭载三星Exynos四核处理器,配备1GB内存,4GB固态硬盘EMMC存储,独家配备三星S5M8767电源管理,配备Andro ...
- 8月11日嵌入式Linux开发免费项目体验邀您参与
嵌入式Linux开发免费项目体验开课啦~~我们特意邀请到粤嵌金牌讲师和技术专家,为大家带来精彩有趣的嵌入式公开课,涉及到嵌入式学习.研发的方方面面.课堂中我们能体验到的不仅仅是最新资讯.技术体验,还有 ...
- 嵌入式Linux开发教程:Linux常见命令(上篇)
摘要:这是对周立功编著的<嵌入式Linux开发教程>的第7期连载.本期刊载内容有关LinuxLinux常见命令中的导航命令.目录命令和文件命令.下一期将连载网络操作命令.安装卸载文件系统等 ...
- 嵌入式Linux开发——内容介绍与开发环境的搭建
嵌入式Linux开发步骤 设计自己的硬件系统 编写Bootloader 裁剪自己的Linux内核 开发移植设备驱动 构建根文件系统 开发应用程序 嵌入式Linux学习要点 熟练使用开发工具和相关指令集 ...
- 嵌入式linux开发之工具------tftp
我在嵌入式linux开发中用到tftp的地方主要有2个方面: 1.是在嵌入式目标板启动时,bootloader启动时通过uEnv文件,下载dtb文件和kernel文件: 2.是在嵌入式目标板启动后,通 ...
- 《嵌入式Linux开发实用教程》
<嵌入式Linux开发实用教程> 基本信息 作者: 朱兆祺 李强 袁晋蓉 出版社:人民邮电出版社 ISBN:9787115334831 上架时间:2014-2-13 出版日期: ...
- 嵌入式Linux开发
嵌入式Linux的开发和研究是Linux领域研究的一个热点,目前已开发成功的嵌入式系统有一半以上都是Linux.Linux到底有什么优势,使之取得如此辉煌的成绩呢?本文分为两大部分:Linux的优点. ...
- 嵌入式Linux开发系列之一: 走进嵌入式Linux的世界
转载:http://www.ibm.com/developerworks/cn/linux/l-embed/part1/index.html 随着信息化技术的发展和数字化产品的普及,以计算机技术. ...
随机推荐
- SQL 中 not in 查询不到数据问题
在开发的过程中,遇到过not in 始终查询不到数据问题 select * from T_CustomerInfo where CustomerID not in (select CustomerID ...
- Mac下配置Hive环境
在配置Hive环境之前,需要Hadoop环境. 安装Hive 点击下载 下载结束后,会有一个.tar文件,使用以下命令解压该文件. tar -zxvf 要解压的tar包 解压完成后如下 修改Hive配 ...
- .Net频繁访问数据库的优化探究(一)
知识点:DataTable.Linq.lamda表达式.Cache 场景:查询部门的所有员工和管理员,并分配相应的权限 实现过程一般为:查询部门,遍历部门(查询员工.分配权限.查询管理员.分配权限) ...
- UVa 12169 不爽的裁判
https://vjudge.net/problem/UVA-12169 题意: 输入T,x1,x2,x3,...,x2T-1,输出x2,x4,...,x2T. 递推公式为xi=(axi-1+b)mo ...
- POJ 2771 Guardian of Decency
http://poj.org/problem?id=2771 题意: 一个老师想带几个同学出去,但是他怕他们会谈恋爱,所以带出去的同学两两之间必须满足如下条件之一: ①身高差大于40 ②同性 ③喜欢 ...
- tfn2k工具使用介绍
主要介绍tfn2k(Linux),因为它最著名嘛!主要分为使用说明 然后在说安装所以有点长 (注意:有的人拿VPS来做DDOS·问题是有的人发现了会关闭你VPS的·除非你认识他或者你自己有服务器而不是 ...
- Linux CentOS7.0下JAVA安装和配置环境变量
一.前言: CentOS7.0虽然自带JDK1.7和1.8,运行“java -version”命令也可以看到版本信息,但是jdk的安装环境不全,比如缺少tool.jar和dt.jar等,这就导致“ja ...
- LeetCode 48
这种方法首先对原数组取其转置矩阵,然后把每行的数字翻转可得到结果,如下所示(其中蓝色数字表示翻转轴): 1 2 3 1 4 7 7 4 1 4 5 6 --> 2 5 ...
- Entity Framework 数据并发访问错误原因分析与系统架构优化
博客地址 http://blog.csdn.net/foxdave 本文主要记录近两天针对项目发生的数据访问问题的分析研究过程与系统架构优化,我喜欢说通俗的白话,高手轻拍 1. 发现问题 系统新模块上 ...
- Mysql查询正在运行的事务以及杀掉它
查询 正在执行的事务:SELECT * FROM information_schema.INNODB_TRX 根据这个事务的线程ID(trx_mysql_thread_id): 可以使用mysql命令 ...