河池网站推广,乐清网站推广,支付通道网站怎么做,淘宝客怎么自己做网站创建VSCode工程
1、将NXP官方的linux内核拷贝到Ubuntu
2、解压缩tar -vxjf linux-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2
NXP官方开发板Linux内核编译
1、将.vscode文件夹复制到NXP官网linux工程中#xff0c;屏蔽一些不需要的文件
2、编译NXP官方EVK开发板对应的Linux系统…创建VSCode工程
1、将NXP官方的linux内核拷贝到Ubuntu
2、解压缩tar -vxjf linux-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2
NXP官方开发板Linux内核编译
1、将.vscode文件夹复制到NXP官网linux工程中屏蔽一些不需要的文件
2、编译NXP官方EVK开发板对应的Linux系统默认配置文件存放路径arch/arm/configs
编写shell脚本
#!/bin/sh
make ARCHarm CROSS_COMPILEarm-linux-gnueabihf- distclean
make ARCHarm CROSS_COMPILEarm-linux-gnueabihf- imx_v7_mfg_defconfig
make ARCHarm CROSS_COMPILEarm-linux-gnueabihf- menuconfig
make ARCHarm CROSS_COMPILEarm-linux-gnueabihf- all -j12
使用命令给予可执行权限
chmod x imx6ull_14x14_evk.sh
执行编译
如果出现下面的错误
scripts/dtc/dtc-parser.tab.o:(.bss0x50): multiple definition of yylloc; scripts/dtc/dtc-lexer.lex.o:(.bss0x0): first defined here
collect2: error: ld returned 1 exit status
原因是gcc版本过高导致解决方法如下
修改scripts/dtc目录下的dtc-lexer.lex.c_shipped文件中找到
YYLTYPE yyloc这一行在640行在之前面加上extern
保存退出
make 编译
最终编译出zImage和imx6ull-14x14-evk-emmc.dtbimx6ull-14x14-evk.dtb
将zImage和imx6ull-14x14-evk-emmc.dtb拷贝到tftpboot目录下
cp arch/arm/boot/zImage /home/zzs/linux/tftpboot/ -f
cp arch/arm/boot/dts/imx6ull-14x14-evk-emmc.dtb /home/zzs/linux/tftpboot/ -f
在Uboot命令行中通过tftp将zImage和imx6ull-14x14-evk-emmc.dtb拷贝到DRAM中
tftp 80800000 zImage
tftp 83000000 imx6ull-14x14-evk-emmc.dtb
在linux中添加自己的开发板
添加imx6ull_alientek_emmc_defconfig默认配置文件
复制NXP官方的arch/arm/configs/defconfig文件修改成我们自己的默认配置文件名
cp imx_v7_mfg_defconfig imx_alientek_emmc_defconfig
添加imx6ull-alientek_emmc.dts编译出来就是dtb文件
添加imx6ull-alientek_emmc.dts编译出来就是dtb文件
修改arch/arm/boot/dts/Makefile 将编译生成的zImage文件和dtb文件复制到tftpboot中如何通过uboot命令行加载到DRAM中启动内核
CPU主频和网络驱动修改
利用bootcmd环境变量设置默认从网络启动通过tftp
setenv bootcmd tftp 80800000 zImage;tftp 83000000 imx6ull-alientek-emmc.dtb;bootz 80800000 - 83000000;
bootargs设置根文件系统存放在emmc的分区2中命令如下
setenv bootargs consolettymxc0,115200 root/dev/mmcblk1p2 rootwait rw
现在的问题就是EMMC驱动有问题在imx6ull_alientek_emmc.dts下找到usdhc2节点进行如下修改
usdhc2 {pinctrl-names default, state_100mhz, state_200mhz;pinctrl-0 pinctrl_usdhc2_8bit;pinctrl-1 pinctrl_usdhc2_8bit_100mhz;pinctrl-2 pinctrl_usdhc2_8bit_200mhz;bus-width 8;non-removable;status okay;
};
修改完编译设备树使用如下命令
make dtbs
查看CPU信息
cat /proc/cpuinfo
处理器性能越强主频越高BogoMIPS值就越大
修改主频
cd /sys/bus/cpu/devices/cpu0/cpufreq 例如输入命令查看当前cpu主频
cat cpuinfo_cur_freq
make menuconfig打开图形化配置界面进入CPU Power Managment 进入路径 CPU Power Management - CPU Frequency scaling - Default CPUFreq governor 修改策略为**ondemand** 重新编译make加载到DRAM 使能8线EMMC
修改设备树imx6ull_alientek_emmc.dts 节点 usdhc2
并加入 no-1-8-v; 网络驱动修改
修改复位引脚
ENET1复位引脚ENET1_RST连接在I.M6ULL的SNVS_TAMPER7这个引脚上。ENET2的复位引脚ENET2_RST连接在I.MX6ULL的SNVS_TAMPER8上
打开设备树文件imx6ull-alientek-emmc.dts删掉588、599行
打开设备树文件imx6ull-alientek-emmc.dts删掉588、599行 删掉 添加
修改ENET1和ENET2的网络时钟引脚配置
修改fec1和fec2节点的pinctrl-0属性和SR8201F的PHY地址 修改fec_main.c文件
找到drivers/net/ethernet/freescale/fec_main.c的fec_reset_phy函数在函数最后加一行200ms的延时