嵌入式linux学习笔记(1)

本文介绍了Linux环境下使用交叉编译器在x86平台编译ARM架构代码,详细阐述了从设置Linux开发环境,包括SSH远程连接和NFS挂载,到解决常见问题的过程。此外,还探讨了I.MX6ULL开发板的使用,并对比了Linux开发与裸机开发的区别。最后,通过编写并运行Hello World程序展示了交叉编译的实际操作。
摘要由CSDN通过智能技术生成

学习目标

了解开发过程


学习内容

1、交叉编译器

概念: 在x86架构上编译arm架构的代码
(linaro公司)


2、linux开发环境

最初:windows(串口)+linux(编译)
最终:ubuntu系统开发

linux远程连接开发板(ssh)
 ssh root@192.168.1.13(开发板ip)
 ip通过ifconfig查看

在linux下挂载同一个目录
ubuntu:
sudo /etc/init.d/nfs-kernel-server start
开发板:
 mount -t nfs -o nolock,nfsvers=3 192.168.1.6(电脑的ip):/home/wyd/linux/mnt /mnt

bug1:连接超时
解决方法:sudo apt install nfs-kernel-server

bug2:开发板出现mount.nfs: requested NFS version or transport protocol is not supported
ubuntu出现[....] Starting nfs-kernel-server (via systemctl): nfs-kernel-server.serviceJob for nfs-server.service canceled. failed!

ubuntu配置问题

sudo vim /etc/exports
在里面添加
/home/wyd/linux/mnt /mnt *(rw,sync,no_root_squash)     
#* 表示允许任何网段 IP 的系统访问该 NFS 目录

第一个程序编写
hello.c
x86架构下编译: gcc -o hello hello.c
运行:./hello

GCC 编译器的编译流程是:预处理、编译、汇编和链接。
预处理就是展开所有的头文件、替换程序中的宏、解析条件编译并添加到文件中。
编译是将经过预编译处理的代码编译成汇编代码,也就是我们常说的程序编译。
汇编就是将汇编语言文件编译成二进制目标文件。
链接就是将汇编出来的多个二进制目标文件链接在一起,形成最终的可执行文件,链接的时候还会涉及到静态库和动态库等问题。
Makefile: 描述哪些文件需要编译、哪些需要重新编译的文件就叫做 Makefile, Makefile 就跟脚本文件一样,Makefile 里面还可以执行系统命令。

arm架构下编译: arm-linux-gnueabihf-gcc -o hello hello.c(在pc上)
运行:/mnt/hello(在开发板上,mnt为共享目录)


3、I.MX6ULL

在这里插入图片描述
在这里插入图片描述


4、linux开发和裸机的区别

在这里插入图片描述
在这里插入图片描述

空格:输入 
换行:输入<br>

学习时间

2021.1.27


学习产出

1、 csdn笔记 1篇

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值