一、 ubuntu和板子网络设置
【正点原子】I.MX6U网络环境TFTP&NFS搭建手册V1.3.1
中1.4 电脑wifi上网,开发板直连
uboot设置
setenv ipaddr 192.168.10.50 setenv ethaddr 00:04:9f:04:d2:35 setenv gatewayip 192.168.10.1 setenv netmask 255.255.255.0 setenv serverip 192.168.10.100 saveenv ping 192.168.10.100
在使用板子前,在板子上设置ip
ifconfig eth0 up ifconfig eth0 192.168.10.50 ifconfig
二、 交叉编译器设置
【正点原子】I.MX6U用户快速体验V1.9
中4.1和4.2 安装交叉编译链
交叉编译
- 使能环境变量
交叉编译工具的环境进行设置,使用 source 执行安装目录下的
environment-setup-cortexa7hf-neon-poky-linux-gnueabi 脚本文件即可
source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi
- 编译
$CC test_add.c -o test_add_im6ull
CC 变量其实就是交叉编译工具
- $ CC :$是取值符号,取终端的环境变量 CC 的值.
- main.c :c 文件
- -o :参数-o,后面加编译的目标文件
三、Cmake编译
使用Cmake生成makefile,再用make编译
cmake安装
sudo apt-get install cmake
camke配置
C文件、H文件和CMakeLists.txt文件放在同一文件夹内
其中CMakeLists.txt为配置cmake
CMakeLists.txt内容
gcc编译版本
cmake_minimum_required(VERSION 2.8.12) project(C_and_CPP CXX C) message(STATUS "CMake version: " ${CMAKE_VERSION}) message(STATUS "CMake system name: " ${CMAKE_SYSTEM_NAME}) message(STATUS "CMake system processor: " ${CMAKE_SYSTEM_PROCESSOR}) set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) include_directories(${CMAKE_SOURCE_DIR}/include) file(GLOB SRC_FILES "${PROJECT_SOURCE_DIR}/src/*.c" "${PROJECT_SOURCE_DIR}/src/*.cpp" ) add_executable(${CMAKE_PROJECT_NAME} ${SRC_FILES}) target_link_libraries(C_and_CPP pthread)
交叉编译i.m6ull版本
源文件和头文件分开管理版本
cmake_minimum_required(VERSION 2.8.12) project(C_and_CPP CXX C) ################################## # 配置ARM交叉编译 ################################# set(CMAKE_SYSTEM_NAME Linux) #设置目标系统名字 set(CMAKE_SYSTEM_PROCESSOR arm) #设置目标处理器架构 #指定编译器的sysroot路径 set(TOOLCHAIN_DIR /opt/fsl-imx-x11/4.1.15-2.1.0/sysroots) set(CMAKE_SYSROOT ${TOOLCHAIN_DIR}/cortexa7hf-neon-poky-linux-gnueabi) # 指定交叉编译器arm-linux-gcc set(CMAKE_C_COMPILER ${TOOLCHAIN_DIR}/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc) set(CMAKE_CXX_COMPILER ${TOOLCHAIN_DIR}/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++) # 为编译器添加编译选项 set(CMAKE_C_FLAGS "-march=armv7ve -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7") set(CMAKE_CXX_FLAGS "-march=armv7ve -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7") set(CMAKE_CXX_STANDARD 11) set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) ################################# # end ################################## message(STATUS "CMake version: " ${CMAKE_VERSION}) message(STATUS "CMake system name: " ${CMAKE_SYSTEM_NAME}) message(STATUS "CMake system processor: " ${CMAKE_SYSTEM_PROCESSOR}) set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) include_directories(${CMAKE_SOURCE_DIR}/include) file(GLOB SRC_FILES "${PROJECT_SOURCE_DIR}/src/*.c" "${PROJECT_SOURCE_DIR}/src/*.cpp" ) add_executable(${CMAKE_PROJECT_NAME} ${SRC_FILES}) target_link_libraries(C_and_CPP pthread)
cmake使用
在文件夹内新建build 文件夹
进入build文件夹
cmake ..
cmake生成makefile,再make编译
make
结果在build文件夹内bin文件夹
四、传输文件到板子上
使用scp 命令
1、从本地将文件传输到服务器
scp【本地文件的路径】【服务器用户名】@【服务器地址】:【服务器上存放文件的路径】
scp /Users/mac_pc/Desktop/test.png root@192.168.1.1:/root
2、从本地将文件夹传输到服务器
scp -r【本地文件的路径】【服务器用户名】@【服务器地址】:【服务器上存放文件的路径】
scp -r /Users/mac_pc/Desktop/test root@192.168.1.1:/root
3、将服务器上的文件传输到本地
scp 【服务器用户名】@【服务器地址】:【服务器上存放文件的路径】【本地文件的路径】
scp root@192.168.1.1:/data/wwwroot/default/111.png /Users/mac_pc/Desktop
4、将服务器上的文件夹传输到本地
scp -r 【服务器用户名】@【服务器地址】:【服务器上存放文件的路径】【本地文件的路径】
scp -r root@192.168.1.1:/data/wwwroot/default/test /Users/mac_pc/Desktop
五、下载uboot到板子上
../../imxdownload u-boot.bin /dev/sdb
六、uboot启动Linux
从MMC中
mmc dev 1 //切换到 EMMC fatls mmc 1:1 //查看mmc内文件 fatload mmc 1:1 0x80800000 zImage //读取 zImage 到 0x80800000 处 fatload mmc 1:1 0x83000000 imx6ull-14x14-evk.dtb //读取设备树到 0x83000000 处 bootz 0x80800000 - 0x83000000 //启动 Linux
从网络
tftp 80800000 zImage tftp 83000000 imx6ull-alientek-emmc.dtb bootz 80800000 - 83000000