嵌入式系统开发-麦子学院(13)-linux底层系统开发(1)
1. 嵌入式系统移植:
(1)交叉编译链: 不同平台的对指令集的编码译码不同。
将交叉编译器增加到环境变量中: ① PATH=$PATH:目录 ② vi /etc/environmet 文件中添加
交叉编译的工具集:
readelf -h 读取文件的ELF头信息
size 读取文件ELF头的大小
nm 查看可执行程序的符号表
strip 剔除符号表
strings 查看可执行程序中的字符串
objdump -d 反编译
objcopy 剔除ELF头信息
addr2line 标出错误信息的行号
2.虚拟机配置双网卡
1)点击虚拟机设置,然后点击添加按钮,添加网络适配器,点击下一步完成,虚拟机会自动设置。
2)使用“ifconfig”命令,可看到双网卡已经设置好了。
3. u-boot常用的命令:
print 查看uboot的环境变量
setenv 设置/修改/删除uboot变量
saveenv 保存设置的uboot变量
nand erase :擦拭 write:写 read:读
tftp 使用tftp传输
bootm 启动内核 需要bootargs环境参数
go 内核从一段地址运行起来 需要bootargs环境参数
md 显示一段内存信息
ipaddr 设置ipv4 地址
bootargs启动参数:
root = 启动的根文件系在那个设备(设备信息initrd,size)init= 内核启动后,第一个可执行文件init进程从哪来console= 内核启动时,使用哪个设备作为控制台
4. 安装tftp服务
服务端安装tftp服务:
安装:
sudo apt-get install tftpd-hpa //32位
sudo apt-get install tftpd openbsc-xinetd //64位
配置:
sudo vim /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot" //指定将来下位机的下载目录为上位机的/tftpboot,此目录随意指定即可
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s"
修改完毕,保存退出
sudo mkdir /tftpboot //创建tftpd-hpa网络服务的下载目录
修改下载目录的用户和组权限为当前用户(例如carspiriter用户)
sudo chown carspiriter /tftpboot -R
sudo chgrp carspiriter /tftpboot -R
修改下载目录的权限
sudo chmod 777 /tftpboot
查看是否成功开启tftp服务:
netstat -ua //可看到tftp服务
客户端使用tftp服务:
- 设置好网络ip
- tftp [内存地址] 文件
5. nand 命令
nand中5M空间表示:
5M : 5* 1M 5*2*20 --> 5*1000000000000000000000 -->5 * 0x10000 --> 0x500000
nand [动词] [内存地址] [nandflash地址]
例1:nand 中5M空间读到内存21000000,1K
nand read 2100000 0500000 1024
例2:内存21000000内容写到nand 中5M空间,1K
nand write 2100000 500000 1024
例3:擦拭nand 中5M空间,1K
nand erase 500000 1024
6.NFS服务
Ubuntu 系统 安装NFS server
1)执行命令:
sudo apt-get install nfs-kernel-server
2)在用户目录下,建立一个nfs服务的专有的文件夹
mkdir nfs
3)执行命令:sudo vim /etc/exports
配置nfs
4)在文件的最后一行添加:
/~/nfs *(rw,sync,no_root_squash,no_subtree_check)
5)解释
/~/nfs:与nfs服务客户端共享的目录,这个路径必须和你前面设置的文件的路径一致!*:允许所有的网段访问,也可以使用具体的IPrw:挂接此目录的客户端对该共享目录具有读写权限sync:资料同步写入内存和硬盘no_root_squash:root用户具有对根目录的完全管理访问权限。no_subtree_check:不检查父目录的权限。
6)修改完上述配置文件保存退出。
7)执行命令:sudo /etc/init.d/portmap restart
重启portmap服务。
8)执行命令:sudo /etc/init.d/nfs-kernel-server restart
重启nfs服务。
将nfs作为文件系统启动
在uboot命令行,设置bootargs启动参数:
bootargs root=/dev/nfs nfsroot=192.168.1.11:/home/jxm/nfs ip=192.168.1.22 init=/linuxrc console=ttyPS0
嵌入式系统开发-麦子学院(13)-linux底层系统开发(1)相关推荐
- linux底层驱动内核,Linux底层驱动开发需要学习哪些内容
Linux底层驱动开发需要学习哪些内容想必这是很多学习Linux的朋友十分头疼的问题,今天就让我来告诉大家我们到底该学习哪些内容呢? 1. 要会一些硬件知识,比如Arm接口编程 2. 学会写简单的ma ...
- 嵌入式系统开发-麦子学院(4)——Linux C初级编程2
上篇文章讲到了Linux C初级编程的C语言基础部分:https://blog.csdn.net/QiHsMing/article/details/84947781 下面接着Linux C初级编程的L ...
- 【嵌入式Linux(基础篇)】嵌入式Linux底层系统开发流程和应用开发流程
1.嵌入式Linux系统体系架构 一个完整的嵌入式Linux系统体系架构如图,大概可以分为三步: 硬件PCB板设计 底层系统开发 应用开发 2.硬件PCB设计流程 ① 获取所用芯片芯片手册: ② 建立 ...
- 【教程】迅为iTOP-4412精英版exynos4412开发板搭建原生Linux最小系统(一)
概述 迅为iTOP-4412开发板采用的CPU芯片为三星的exynos4412,开发板分为三种:(1)POP封装+1GB内存(2)SCP封装+1GB内存(3)SCP封装+2GB内存.笔者用的是SCP ...
- 服务器linux系统支持php好,关于Linux服务器系统的七大优势,你知道几个?
Linux是开源的操作系统,主要支持PHP,在目前市场上Linux系统在互联网企业中使用率也是非常广泛的,具有不可或缺的作用,那么Linux服务器有哪些优势?总结了七点,你都知道吗? 1.开源:Lin ...
- xp系统上安装linux系统教程,XP系统如何安装fedora linux双系统?WinXP安装fedora linux双系统的方法...
有位朋友因为想在linux中熟悉下hadoop的配置开发环境,所以就开始于WinXP系统中安装fedora linux双系统,可是操作了很久都没成功.这该如何怎么办呢?接下来,小编就给大家介绍WinX ...
- 怎么装win7与linux双,装双系统win7和linux_win7与linux双系统
2016-05-05 18:50:12 把两个系统放在不同磁盘.只要电脑上有其中一个系统,然后就可以安装另一个系统.制作个U盘启动盘安装 步骤: 1.将制作好的大番薯U盘插入电脑USB接口中,启动电脑 ...
- linux 开发设计软件,在Linux平台下开发和设计聊天软件
在网络无所不在的今天,在Internet上,有ICQ.MSN.Gtalk.OICQ等网络聊天软件,极大程度上方便了处于在世界各地的友人之间的相互联系,也使世界好像一下子缩小了,不管你在哪里,只要你上了 ...
- linux桌面系统 5种经典的Linux桌面系统
最近一直在准备Linux相关的PPT,对于一个老码农来说Linux系统自然是比较熟悉了,随口可以说出好几种Linux的版本,然而对于计算机初学者可能就知道windows操作系统.也许你告诉他你可以安装 ...
- linux系统创建硬盘分区,介绍Linux硬盘系统创建分区步骤
本人很喜欢Linux硬盘系统,在工做中也很喜欢总结关于Linux的经验教训.Linux硬盘系统的知识里面介绍了些通常经常使用的挂载点,用户们学会就彻底能够操做Linux系统. Linux硬盘系统下,硬 ...
最新文章
- 好多Javascript日期选择器呀-4
- 看了这7篇论文,你会完全掌握卷积神经网络!
- 独家 | 无人驾驶项目实战: 使用OpenCV进行实时车道检测
- 我是怎么用机器学习技术找到女票的
- Adjacent Node Sum(邻接表处理)
- IPv4地址分类及特征
- C++ 标准库之cctype
- qn模块java脚本_Qn271 对于网络编程 反射 IO 线程的一些一本入门程序 多多联系会加快 速度 WinSock-NDIS 269万源代码下载- www.pudn.com...
- 程序员的算法课(4)-二分查找
- 安卓手机软件开发_奇怪!苹果手机运存小,流畅度反而胜于安卓,今天终于明白了...
- MySQL-安全对调两个表名
- ubuntu 安装永中office 2009
- SAP License:影响中国信息化全面预算管理八大成功案例
- Swift5使用KVC报setValue:forUndefinedKey
- LTE中阻塞干扰,杂散干扰,邻信道干扰,交调干扰,加性噪声干扰分析
- 梦殇 chapter two
- vue 只要一杯卡布奇诺时间,就能简单上手的Dialog对话框
- uniapp请求的封装
- Python坦克大战小游戏(三):背景
- SSD的使用寿命一般有多久
热门文章
- Java个人职业规划目标改进_java个人职业发展方向规划范文
- Aras Innovator: 自定义TOC目录,Form的基本过程
- [点评] [电子科技大学][TCP/IP协议原理][杨宁]
- 分享三种在Excel表格中自动求和的方法
- 前端组件化埋点方案与实现
- MongoTemplate根据时间查询的大坑
- CentOS7修改Locale为zh_CN.UTF-8
- android webview静态方法,在android webview中加载静态页面
- IT人才异军突起 有招网引领业界精英
- python实现税后工资_Python实现扣除个人税后的工资计算器示例