5 薛建强

美律电子(深圳)有限公司 - 软件工程师

我要认证

开发工具:keil5、STM32CubeMX、git、Source Insight、VSCode。 单片机 :stm32、mm32、nrf51、n76e003、arm9、esp8266。 通讯协议:I2C、SPI、UART、RS232、RS485、CAN、LWIP、MQTT、蓝牙/ANT+协议栈、QC2.0/QC3.0充电协议、PD充电协议。 RTOS :RTX、FreeRTOS、Linux。 GUI :enWin、QT嵌入式。 linux :文件I/O、多线程、多进程和网络编程了解linux下字符驱动的编写,能够查看芯片手册解决相关问题。 能独立开发PC、APP上位机,及简单html5编程

等级
TA的排名 9w+

[I.MX6UL] 新字符设备驱动原理和框架

一、分配和释放设备号动态申请设备号:/* dev:设备号--dev_t devid; count:是要申请的数量,一般都是一个; name:是设备名字*/int alloc_chrdev_region(dev_t *dev, unsigned baseminor, unsigned count, const char *name)静态申请设备号:/* from:是要申请的起始设备号,也就是给定的设备号; count:是要申请的数量,一般都是一个; name:是设备名字*/int

2020-06-08 23:06:15

编写嵌入式软件代码的10个技巧

代码维护是应用程序开发的重要方面,而为了缩短上市时间,通常会忽略代码维护。对于某些应用程序,这可能不会造成重大问题,因为这些应用程序的寿命很短,或者已部署该应用程序,并且再也不会碰它。但是,嵌入式系统应用程序的使用寿命可能长达数十年,这意味着一些早期的错误可能会在以后导致可观的成本。在开发可能具有长寿命的嵌入式应用程序时,在设计和实现上都必须考虑维护。以下技巧绝不会构成一个完整列表,但是它们解决了一些常见问题,这些问题可能会使您的应用程序维护者有理由诅咒您的名字,并且不要忘记您可能是其中之一!提示1:

2020-05-29 10:36:18

[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

[I.MX6UL] Linux 内核移植(二) 在 Linux 中添加自己的开发板

添加开发板默认配置文件将 arch/arm/configs 目 录 下 的 imx_v7_mfg_defconfig 重 新 复 制 一 份 , 命 名 为imx_mybsp_emmc_defconfig,命令如下:当前路径:~/linux/IMX6ULL/linux-imx-rel_imx_4.1.15_2.1.0_ga_mybsp$cd arch/arm/configscp imx_v7_mfg_defconfig imx_mybsp_emmc_defconfigmake imx_mybs

2020-05-23 11:58:26

[I.MX6UL] Linux 内核移植(一)

NXP 官方原版 Linux 4.1.15_2.1.0源码:https://cloud.189.cn/t/JZriMvVNJJBf一定要先安装:sudo apt-get install lzop终端输入:mkdir IMX6ULL将上面的 Linux 4.1.15_2.1.0源码放入IMX6ULL文件夹中。终端输入:tar -vxjf linux-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2mv linux-imx-rel_imx_4.1.15_2.1.0_ga

2020-05-23 10:53:57

[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

[I.MX6UL] U-Boot 命令使用(四) 网络操作命令

uboot支持大量的网络相关命令, 比如 dhcp、ping、nfs 和 tftpboot。

2020-05-22 11:11:57

[I.MX6UL] U-Boot 命令使用(三) 内存操作命令

1、md 命令md 命令用于显示内存值,格式如下:md[.b, .w, .l] address [# of objects]命令中的[.b .w .l]对应 byte、word 和 long,也就是分别以 1 个字节、2 个字节、4 个字节来显示内存值。address 就是要查看的内存起始地址[# of objects]表示要查看的数据长度(根据参数1来决定)uboot 命令中的数字都是十六进制的!不是十进制的!比如你想查看以 0X80000000 开始的 20 个字节的内存值,显示

2020-05-22 08:53:18

[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

[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

[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

[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

[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

[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

[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

[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

[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

[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

[I.MX6UL] 用STM32的方式来写I.MX6UL程序

/**************************************************************Copyright © zuozhongkai Co., Ltd. 1998-2019. All rights reserved.文件名 : mian.c作者 : 左忠凯版本 : V1.0描述 : I.MX6U开发板裸机实验3 STM32模式的LED灯开发 使用STM32开发模式来编写LED灯驱动,学习如何从STM32来转入...

2020-05-19 18:03:35

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

查看更多

勋章 我的勋章
  • 签到达人
    签到达人
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。
  • 原力探索 · S
    原力探索 · S
    在《原力计划【第二季】》打卡挑战活动中,发布 12 篇原创文章参与活动的博主,即可获得此勋章。(本次活动结束后统一统计发放)
  • 分享宗师
    分享宗师
    成功上传21个资源即可获取