[I.MX6U] 嵌入式 Linux
文章平均质量分 80
I.MX6U 嵌入式 Linux 驱动 学习过程
jianqiang.xue
欢迎交流,寻找小众MCU厂商代理合作
展开
-
[I.MX6UL] 添加永不休眠功能和选项
添加英文选项 修改packages/apps/Settings/res/values/arrays.xml文件 +表示添加当前行<item>30 minutes</item>+<item>Never</item> <item>1800000</item>+<!-- Do not translate. -->+<item>-1</item>添加中文选项 修改pack.原创 2021-12-03 10:59:41 · 1804 阅读 · 0 评论 -
[I.MX6UL] 裸机点灯 C语言 GPIO的使用
(3) 00011111 将 r0 的低 5 位清零,也就是 cpsr 的 M0~M4。(4) 00010011 r0 或上 0x13,表示使用 SVC 模式。(2) 将特殊寄存器 CPSR 里面的数据复制到 R0 中。(4) 设置GPIO1_IO03输出低电平,打开LED0。(5) 将 r0 的数据写入到 cpsr_c 中。(7) 跳转到main函数。(1) 进入SVC模式。(1) 初始化IO复用。(3) 初始化GPIO。(2) 配置IO属性。原创 2020-09-20 14:48:33 · 298 阅读 · 0 评论 -
[I.MX6UL] 新字符设备驱动原理和框架
终端输入,进行编译:arm-linux-gnueabihf-gcc App.c -o App。当在终端使用“insmod”命令加载驱动的时候,xxx_init 这个函数就会被调用。当在终端使用“rmmod”命令卸载具体驱动的时候 xxx_exit 函数就会被调用。编译成功以后就会生成一个名为“newchr.ko”的驱动模块文件。depmod //第一次加载驱动的时候需要运行此命令。终端输入:make -j32。原创 2020-06-08 23:06:15 · 201 阅读 · 0 评论 -
[I.MX6UL] Linux 内核移植(三) 网络驱动修改 配置文件另存为
使能 8 线 EMMC 驱动Linux 内核驱动里面 EMMC 默认是 4 线模式的,4 线模式肯定没有 8 线模式的速度快,所以将 EMMC 的驱动修改为 8 线模式。修改方法很简单,直接修改设备树即可,打开文件 imx6ull-mybsp-emmc.dts,找到如下所示内容:gedit arch/arm/boot/dts/imx6ull-mybsp-emmc.dts关键字:&usdhc2只需要将其改为如下代码即可:&usdhc2 { pinctrl-names = "原创 2020-05-23 16:47:49 · 9946 阅读 · 0 评论 -
[I.MX6UL] Linux 内核移植(二) 在 Linux 中添加自己的开发板
设置uboot环境变量:https://blog.csdn.net/qq_29246181/article/details/106265362。当前路径:~/linux/IMX6ULL/linux-imx-rel_imx_4.1.15_2.1.0_ga_mybsp$当前路径:~/linux/IMX6ULL/linux-imx-rel_imx_4.1.15_2.1.0_ga_mybsp$当前路径:~/linux/IMX6ULL/linux-imx-rel_imx_4.1.15_2.1.0_ga_mybsp$原创 2020-05-23 11:58:26 · 914 阅读 · 0 评论 -
[I.MX6UL] Linux 内核移植(一)
NXP 官方原版 Linux 4.1.15_2.1.0源码:https://cloud.189.cn/t/JZriMvVNJJBf。原创 2020-05-23 10:53:57 · 1102 阅读 · 1 评论 -
[I.MX6UL] U-Boot 命令使用(五) EMMC 和 SD 卡操作命令
uboot 支持 EMMC 和 SD 卡, 因此也要提供 EMMC 和 SD 卡的操作命令。一般认为 EMMC和 SD 卡是同一个东西,所以没有特殊说明,本教程统一使用 MMC 来代指 EMMC 和 SD 卡。uboot 中常用于操作 MMC 设备的命令为“mmc” 。1、mmc info 命令mmc info 命令用于输出当前选中的 mmc info 设备的信息,输入命令“mmc info”即可,如图所示:2、mmc rescan 命令mmc rescan 命令用于扫描当前开发板上所有的原创 2020-05-23 10:31:25 · 1993 阅读 · 0 评论 -
[I.MX6UL] U-Boot 命令使用(四) 网络操作命令
uboot支持大量的网络相关命令, 比如 dhcp、ping、nfs 和 tftpboot。原创 2020-05-22 11:11:57 · 1313 阅读 · 0 评论 -
[I.MX6UL] U-Boot 命令使用(三) 内存操作命令
cp 是数据拷贝命令, 用于将 DRAM 中的数据从一段内存拷贝到另一段内存中, 或者把 Nor Flash 中的数据拷贝到 DRAM 中。mm 命令也是修改指定地址内存值的,但是每次修改会递增地址,而nm不会递增。原创 2020-05-22 08:53:18 · 676 阅读 · 0 评论 -
[I.MX6UL] U-Boot 命令使用(二) 环境变量操作命令
1、修改环境变量环境变量的操作涉及到两个命令:setenv 和 saveenv,命令 setenv 用于设置或者修改环境变量的值。命令 saveenv 用于保存修改后的环境变量,一般环境变量是存放在外部 flash 中的,uboot 启动的时候会将环境变量从 flash 读取到 DRAM 中。 所以使用命令 setenv 修改的是 DRAM中的环境变量值,修改以后要使用 saveenv 命令将修改后的环境变量保存到 flash 中,否则的话uboot 下一次重启会继续使用以前的环境变量值。命令 save原创 2020-05-21 18:57:27 · 466 阅读 · 0 评论 -
[I.MX6UL] U-Boot 命令使用(一) 信息查询命令
CRT进入 uboot 的命令行模式以后输入“help”或者“?” ,然后按下回车即可查看当前 uboot 所支持的命令。常用的和信息查询有关的命令有 3 个:bdinfo、printenv 和 version。先来看一下 bdinfo 命令,此命令用于查看板子信息,直接输入“bdinfo”即可,结果如图所示:命令 “printenv” 用于输出环境变量信息, uboot 也支持 TAB 键自动补全功能, 输入 “print”然后按下 TAB 键就会自动补全命令, 直接输入 “print” 也可以原创 2020-05-21 18:47:51 · 268 阅读 · 0 评论 -
[I.MX6UL] U-Boot 图形化配置体验
uboot 或 Linux 内核可以通过输入“make menuconfig”来打开图形化配置界面,menuconfig是一套图形化的配置工具,需要 ncurses 库支持。ncurses 库提供了一系列的 API 函数供调用者生成基于文本的图形界面,因此需要先在 Ubuntu 中安装 ncurses 库,命令如下:sudo apt-get install build-essentialsudo apt-get install libncurses5-dev打开menuconfig图形界面ma原创 2020-05-21 17:03:00 · 510 阅读 · 1 评论 -
[I.MX6UL] U-Boot移植(六) 网络驱动修改 LAN8720A
I.MX6UL/ULL 内部有个以太网 MAC 外设,也就是 ENET,需要外接一个 PHY 芯片来实现网络通信功能,也就是内部MAC+外部 PHY 芯片的方案。I.MX6UL/ULL 有两个网络接口 ENET1 和 ENET2,I.MX6U-ALPHA 开发板提供了这两个网络接口,其中 ENET1 和 ENET2 都使用 LAN8720A 作为 PHY 芯片。NXP 官方的I.MX6ULL EVK 开发板使用 KSZ8081 这颗 PHY 芯片,LAN8720A 相比 KSZ8081 具有体积小、.原创 2020-05-21 15:00:22 · 3937 阅读 · 4 评论 -
[I.MX6UL] U-Boot移植(五) LCD 驱动修改
一般修改 LCD 驱动重点注意以下几点:①、LCD 所使用的 GPIO,查看 uboot 中 LCD 的 IO 配置是否正确。②、LCD 背光引脚 GPIO 的配置。③、LCD 配置参数是否正确。I.MX6U-ALPHA 开发板 LCD 原理图和 NXP 官方 I.MX6ULL 开发板一致,也就是 LCD 的 IO 和背光 IO 都一样的, 所以 IO 部分就不用修改了。 需要修改的之后 LCD 参数,打开文件mx6ull_mybsp_emmc.c,找到如下所示内容:gedit board/.原创 2020-05-21 11:52:38 · 1882 阅读 · 1 评论 -
[I.MX6UL] U-Boot移植(四) 添加开发板对应的板级文件夹+修改 U-Boot 图形界面配置文件
终端输入:cd board/freescale/cp mx6ullevk/ -r mx6ull_mybsp_emmc进 入 mx6ull_alientek_emmc 目 录 中 , 将 其 中 的 mx6ullevk.c 文 件 重 命 名 为mx6ull_alientek_emmc.c,命令如下:cd mx6ull_mybsp_emmcmv mx6ullevk.c mx6ull_mybsp_emmc.c1、修改 mx6ull_mybsp_emmc 目录下的 Makefile 文件ged原创 2020-05-21 11:22:08 · 795 阅读 · 0 评论 -
[I.MX6UL] U-Boot移植(三) 在 U-Boot 中添加自己的开发板
添加开发板默认配置文件①先在 configs 目录下创建默认配置文件,复制 mx6ull_14x14_evk_emmc_defconfig,然后重命名为 mx6ull_mybsp_emmc_defconfig,命令如下:cd configs cp mx6ull_14x14_evk_emmc_defconfig mx6ull_mybsp_emmc_defconfig ②终端输入:sudo gedit mx6ull_mybsp_emmc_defconfig然后将文件 mx6ull_mybsp_原创 2020-05-21 10:19:22 · 2053 阅读 · 0 评论 -
[I.MX6UL] U-Boot移植(二)
1、SD 卡和 EMMC 驱动检查检查一下 SD卡和 EMMC驱动是否正常,在SecureCRT 中使用命令 mmc list 列出当前的 MMC 设备,结果如图所示:从图可以看出当前有两个 MMC 设备, 检查每个 MMC 设备信息, 先检查 MMC 设备 0,输入如下命令(在SecureCRT 中):mmc dev 0 mmc info2、LCD 驱动检查如果 uboot 中的 LCD 驱动正确的话,启动 uboot 以后 LCD 上应该会显示出 NXP 的 logo,如下图所示:原创 2020-05-21 08:19:06 · 436 阅读 · 0 评论 -
[I.MX6UL] U-Boot移植(一)
uboot 官网为 :ftp://ftp.denx.de/pub/u-boot/NXP 的uboot:https://cloud.189.cn/t/yInEfqMV7Jru首先需要安装支持。终端输入:sudo apt-get install libncurses5-devmkdir /home/xue1995/linux/ubootcd /home/xue1995/linux/uboot/将NXP 的uboot放入/uboot/文件夹中,并解压。tar -vxjf uboot-imx-re原创 2020-05-20 18:16:14 · 664 阅读 · 1 评论 -
[I.MX6UL]官方 SDK 移植实验
我们参考 ST 官方给 STM32 编写的 stm32f10x.h 来自行编写 I.MX6U的寄存器定义文件。自己编写这些寄存器定义不仅费时费力,没有任何意义,而且很容易写错,幸好NXP 官方为 I.MX6ULL 编写了 SDK包,在 SDK 包里面 NXP 已经编写好了寄存器定义文件,所以我们可以直接移植 SDK 包里面的文件来用。虽然NXP 是为I.MX6ULL 编写的 SDK 包,但是 I.MX6UL 也是可以使用的!本章我们就来讲解如何移植 SDK包里面重要的文件,方便我们的开发。/*****.原创 2020-05-20 16:30:45 · 1596 阅读 · 1 评论 -
[I.MX6UL] 用STM32的方式来写I.MX6UL程序
【代码】[I.MX6UL] 用STM32的方式来写I.MX6UL程序。原创 2020-05-19 18:03:35 · 583 阅读 · 1 评论 -
Linux Ubuntu 交叉编译工具链 arm-linux-gnueabihf 安装 32 64
Linaro 出品的交叉编译器4.9:https://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/arm-linux-gnueabihf/终端输入:mkdir tool将刚刚下载的[gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz]放入tool文件夹中。在 Ubuntu 中创建目录:/usr/local/arm,命令如下:sudo mkdir /原创 2020-05-19 14:27:57 · 1280 阅读 · 0 评论 -
Ubuntu 下 NFS 和 SSH 服务开启
NFS 服务开启终端输入安装命令:sudo apt-get install nfs-kernel-server rpcbind用户根目录下创建一个名为“linux”的文件夹:mkdir linux用户linux目录下创建一个名为“nfs”的文件夹:mkdir nfs创建的 nfs 文件夹供 nfs 服务器使用,以后我们可以在开发板上通过网络文件系统来访问 nfs 文件夹,要先配置 nfs,使用如下命令打开 nfs 配置文件/etc/exports:终端输入:sudo gedit /etc/exp原创 2020-05-19 13:52:02 · 251 阅读 · 0 评论 -
开启 Ubuntu 下的 FTP 服务
终端输入:sudo apt-get install vsftpdsudo gedit /etc/vsftpd.conf打开以后 vsftpd.conf 文件以后找到如下两行: (把#删除即可)local_enable=YESwrite_enable=YES修改完 vsftpd.conf 以后保存退出,使用如下命令重启 FTP 服务:sudo /etc/init.d/vsftpd restartWindows 下 FTP 客户端安装:下载地址如下:https://www.filezilla原创 2020-05-19 13:37:10 · 3153 阅读 · 1 评论 -
Linux C语言 Makefile 的使用 函数
创建三个.c文件终端输入:创建目录:mkdir Makefile进入目录:cd Makefile使用gedit:gedit第一个文件:main.c#include <stdio.h> #include "input.h" #include "calcu.h" int main(int argc, char *argv[]) { int a, b, num; input_int(&a, &b); num = calcu(a,原创 2020-05-19 11:18:12 · 507 阅读 · 0 评论 -
Linux下的C语言编写
终端下输入:创建目录:mkdir C_Program进入目录:cd C_Program创建目录:mkdir hello_world进入目录:cd hello_world使用gedit:gedit输入以下代码并保存:#include <stdio.h> int main(int argc, char *argv[]) { printf("Hello World!\n"); } 编译C语言代码:终端输入:gcc hello_world.c出现a.out的文原创 2020-05-19 10:22:10 · 477 阅读 · 0 评论 -
安装 Ubuntu 操作系统 16.04.5
此时虚拟机已经自动开始安装系统了。。。。。。。。稍后一段时间。等待10分钟后,出现完毕界面:登录后,进行一些基础配置。比如切换到中文:请参考下面链接:https://blog.csdn.net/fx_yzjy101/article/details/80238014安装软件:终端打开后输入:串口工具:sudo apt-get install minicom...原创 2020-05-19 09:55:19 · 245 阅读 · 0 评论