文章目录
基于正点原子 ALPHA开发板
开发环境的搭建
文件互传
FTP
打开Ubuntu的FTP服务
sudo apt-get install vsftpd #失败重启重新执行即可
打开配置文件
sudo vi /etc/vsftpd.conf
#确保
#local_enable=YES
#write_enable=YES
重启ftp
sudo /etc/init.d/vsftpd restart
window安装FileZilla客户端软件。
通过FTP协议互传文档
samba
NFS和SSH服务
NFS就是Network File System的缩写,它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利
安装nfs
sudo apt-get install nfs-kernel-server rpcbind
创建nfs文件夹
创建的文件夹供 nfs 服务器使用,以后我们可以在开发板上通过网络文件系统来访问 nfs 文件夹,要先配置 nfs
sudo vi /etc/exports
添加下面的内容
/home/zuozhongkai/linux/nfs *(rw,sync,no_root_squash)
重启NFS
sudo /etc/init.d/nfs-kernel-server restart
开启 Ubuntu 的 SSH 服务以后我们就可以在 Windwos 下使用终端软件登陆到 Ubuntu
安装命令
sudo apt-get install openssh-server
交叉编译器的安装
官网下载64位(gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz)交叉编译工具
开始操作:
创建目录
sudo mkdir /usr/local/arm
将文件拷贝到该目录
sudo cp gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz /usr/local/arm/ -f
解压
sudo tar -vxf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz
添加环境变量
配置文件/etc/profile
最后一行添加
export PATH=$PATH:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin
安装相关库
sudo apt-get install lsb-core lib32stdc++6
验证是否安装成功
arm-linux-gnueabihf-gcc -v
重启Ubuntu
使用汇编简单点亮LED灯
本程序基于正点原子Linux开发板。灯对应引脚为GPIO1_IO3
为什么要学习Cortex-A汇编
①、需要用汇编初始化一些SOC外设。
②、使用汇编初始化DDR,I.MX6U不需要。
③、设置sp指针,一般指向DDR,设置好C语言运行环境。
ALPHA开发板LED灯硬件驱动流程
STM32 IO初始化流程:
①、使能GPIO时钟。
②、设置IO复用,将其复用为GPIO
③、配置GPIO的电气属性。
④、使用GPIO,输出高/低电平。
I.MX6ULL IO初始化:
①、使能时钟,CCGR0CCGR6这7个寄存器控制着6ULL所有外设时钟的使能。为了简单,设置CCGR0CCGR6这7个寄存器全部为0XFFFFFFFF,相当于使能所有外设时钟。
②、IO复用,将寄存器IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO03的bit3~0设置为0101=5,这样GPIO1_IO03就复用为GPIO。
③、寄存器IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO03是设置GPIO1_IO03的电气属性。包括压摆率、速度、驱动能力、开漏、上下拉等。
④、配置GPIO功能,设置输入输出。设置GPIO1_DR寄存器bit3为1,也就是设置为输出模式。设置GPIO1_DR寄存器的bit3,为1表示输出高电平,为0表示输出低电平。
汇编简介
汇编由一条一条指令构成,指令就涉及到汇编指令。
假设a地址为0X20,b地址为0x30
C赋值:
int a,b;
a=b;
Contex-A汇编赋值
LDR R0, =0X30
LDR R1, [R0]
LDR R0, =0X20
STR R1, [R0]
在使用汇编编写驱动的时