自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 问答 (1)
  • 收藏
  • 关注

原创 pinctrl 子系统学习

pinctrl 子系统简介Linux 驱动讲究驱动分离与分层,是驱动分离与分层思想下的产物。pinctrl 子系统用途获取设备树中 pin 信息。根据获取到的 pin 信息来设置 pin 的复用功能根据获取到的 pin 信息来设置 pin 的电气特性,比如上/下拉、速度、驱动能力等。pinctrl子系统例程&iomuxc { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_hog_1>; imx6ul-ev

2022-05-24 09:15:36 775

原创 Linux 内核定时器

Linux 时间管理和内核定时器简介内核时间管理简介在 CortexA7 内核中有个通用定时器,在《Cortex-A7 Technical ReferenceManua.pdf》的“9:Generic Timer”章节有简单的讲解,关于这个通用定时器的详细内容,可以参考《ARM ArchitectureReferenceManual ARMv7-A and ARMv7-R edition.pdf》的“chapter B8 The Generic Timer”章节。这个通用定时器是可选的。Linux

2022-04-18 19:27:01 914

原创 Linux 并发与竞争

介绍Linux是一个多任务操作系统,肯定会存在多个任务共同操作同一段内存或者设备的情况,多个任务甚至中断都能访问的资源叫做共享资源,就和共享单车一样。在驱动开发中要注意对共享资源的保护,也就是要处理对共享资源的并发访问。比如共享单车,大家按照谁扫谁骑走的原则来共用这个单车,如果没有这个并发访问共享单车的原则存在,只怕到时候为了一辆单车要打起来了。在 Linux 驱动编写过程中对于并发控制的管理非常重要,本章我们就来学习一下如何在 Linux 驱动中处理并发。并发与竞争并发与竞争简介Linux 系统是

2022-04-18 15:47:13 1098

原创 STM32H750VB程序无法下载的问题

问题描述在公司开发过程中写了一个裸机程序,用CubeMX生成的代码,由于忘记是能JTAG导致程序无法正常下载的问题。解决方法首先先将固件修改过来,在CubeMX上把下载口打开:其次,在硬件上将BOOT0拉高重启板子用J-Flash V6.44b.exe连接板子配置J-Flash程序参数选择指定的固件,即可烧录...

2022-04-07 14:48:08 1778

原创 CMake学习

简介cmake 是一个跨平台的自动构建工具, 前面导语部分也已经给大家介绍了, cmake 的诞生主要是为了解决直接使用 make+Makefile 这种方式无法实现跨平台的问题,所以 cmake 是可以实现跨平台的编译工具,这是它最大的特点。cmake和Makefile区别这是我刚开始模糊的原因,就是cmake和Makefile这两者间有什么区别,为什么要用cmake,他有什么优点么?为什么github上很多项目都用camke?他到底是作什么用的。现在我们来看一个图,这是我从正点原子的手册上看到的

2022-03-31 11:38:06 5447

原创 Linux常用命令

简介在工作过程中碰到比较好用的命令,记录下来,方便以后使用。详细内容grep -nR “xx”便利查找文件中包含xx的所有文件

2022-03-30 11:19:49 1180

原创 汇编语法学习

汇编语法学习简介因为 Cortex-A 芯片一上电 SP 指针还没初始化, C 环境还没准备好,所以肯定不能运行 C 代码,必须先用汇编语言设置好 C 环境,比如初始化 DDR、设置 SP指针等等,当汇编把 C 环境设置好了以后才可以运行 C 代码。本章学习Cortex-A 的汇编指令。参考文献《ARM ArchitectureReference Manual ARMv7-A and ARMv7-R edition.pdf》和《ARM CortexA(armV7)编程手册 V4.0.pdf》,第

2022-03-30 10:52:25 547

原创 明远智睿Uboot调试——uboot倒数修改

前言公司使用明远智睿的核心板,突发奇想,改一下他的倒计时,调试过程如下。调试过程先上电看看Uboot目前的倒数值是什么。这是设备上电后的显示,没有我们想要的参数,我们要看到bootdelay这个参数。我们使用print命令查看当前uboot详细参数。在这里我们看到了有bootdelay这个项,目前倒数时间默认为3秒。我们如果想要只修改这个设备倒数时间直接使用uboot下的命令就好。setenv bootdelay 6 //配置倒数时间为6秒saveenv //保存配置设备重新上电

2022-03-28 12:10:25 1265

原创 【printk学习记录】

简介在内核中如何想要打印相关的信息,不能使用printf,内核提供了一个类似的打印函数printk。其中我认为最重要的区别就是printk自带日志级别。printk提供了如下几个打印级别,需要包含头文件<linux/kernel.h>:KERN_EMERG用于紧急时间消息,他们一般是系统崩溃前的提示KERN_ALERT用于需要立即采取动作的情况KERN_CRIT临界状态,通常涉及严重的硬件或软件操作失败KERN_ERR用于报告错误状态。报告硬件问题KERN_WARNING对

2022-03-24 10:43:53 2712

原创 如何计算地址范围(大小)

问题描述今天在学习野火STM32HAL库的过程中,看到了存储器区域功能划分这个章节。他的0x00000000 - 0x1FFFFFFF为什么是512MB。本人曾经参加了一次软考,考的嵌入式系统设计工程师,当时也没准备就去了,结果就是没过…回想当时也有这个题,如何计算地址范围。今天咨询了下同事,经过一顿友好的交流(鄙视~)大概明白了。解决如第一个,0x0000 0000 - 0x1FFF FFFF,总共有29位(1FFF是13BIT, FFFF16BIT,相加是29),那么大小就是2^29次方。那2

2022-03-09 10:07:31 3693

原创 Linux Netlink通信

Linux Netlink通信前言什么是Netlink通信机制那么Netlink有什么优势呢?netlink特点用户态数据结构msghdrsockaddr_lniovecnlmsghdr用户空间Netlink socket API创建socket地址绑定bind发送netlink消息接收netlink消息内核空间Netlink socket API创建Netlink socket发送单播消息 netlink_unicast发送广播消息 netlink_broadcast释放 netlink socket用户

2022-03-04 15:20:17 641

原创 【无标题】

std::numeric_limits根据类型判断其最大和最小值是多少 例如:std::cout << "Minimum value for int: " << std::numeric_limits<int>::max() << '\n';输出结果:Maximum value for int: 2147483647

2021-12-18 22:15:36 49

原创 针对于I.MX6ULL平台下对LIBCURL库的整体使用

对LIBCURL库的二次封装记录对LIBCURL库的移植封装FTP文件上下载相关过程问题记录封装HTTP文件上下载相关过程问题记录通用问题对LIBCURL库的移植封装FTP文件上下载相关过程问题记录无法进行FTP文件上传主要问题需要配置CURLOPT_UPLOAD为1才能进行上传,如果要下载需要配置为0L.配置指定回调上传文件CURLOPT_READFUNCTION以及回调传参CURLOPT_READDATA.文件上行回调和下行回调不能同时绑定curl_easy_setopt(ftpPa

2021-12-16 10:59:07 137

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除