自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 【linux-IMX6ULL-字符设备驱动简单框架实验】

目前的驱动开发一般是分为三类,第一类就是字符设备驱动、块设备驱动、和网络驱动三类,其中字符设备驱动是最多最杂的,现在对字符设备驱动进行一个简要的介绍:通过设备注册使设备能被系统识别;注销则相反;通常包含open,read,write,realse等;处理设备产生的中断,以响应特定事件;通过字符型设备驱动,可以使系统方便统一管理不同的设备,这样就可以给上层应用提供相应的接口函数,方便应用程序与设备之间进行数据交换和通信;

2024-05-24 15:40:39 434

原创 【linux-kernel内核移植记录-踩坑以及注意事项】

通过上述步骤,成功完成了I.MX6ULL开发板的内核移植与驱动修改,实现了系统的正常启动和基本功能的运行。主要修改内容包括CPU频率设置、EMMC驱动模式以及网络驱动配置。在实践中需要特别注意保持编译配置的持久性,避免清理工程导致配置丢失,这里主要是对自己进行linux内核移植过程的关键信息进行了一个介绍和总结,可作为复盘的记录;

2024-05-21 20:16:00 556

原创 【linux-uboot移植-mmc及tftp启动-IMX6ULL】

uboot移植

2024-05-20 21:51:09 1007

原创 【linux-IMX6ULL-uboot初次编译及烧录

使用IMX6ULL的板卡,对uboot源码进行初次编译和烧录,烧录采用uu工具实现一键烧录bin文件

2024-05-13 20:20:37 557

原创 linux裸机编程学习过程中个人错误集合-IMX6ULL开发版】

主要记录了IMX6ULL裸机开发过程中的常见错误集合

2024-05-13 14:46:36 453

原创 【linux-IMX6ULL-RTC-IIC-SPI配置思路】

主要介绍了IMX6ULL的RTC,IIC,SPI外设,并对其进行了基础知识的概述,并对其配置流程进行了简介,最后给出了其配送实现代码,文章非教程类文章

2024-05-13 14:36:11 663

原创 【Linux-IMX6ULL-DDR3简介测试-RGBLCD控制原理】

主要介绍IMX6ULL的DDR3的初始化检测,其次简要的介绍了RGBLCD屏幕,并对其一些关节数据例如:分辨率、像素格式、LCD时钟计算等基本知识进行了介绍,对其行时序图和帧时序图进行了简要说明,最后给出了IMX6ULL的硬件控制接口RGBLCD的控制时序图以及配置总体思路时序图

2024-05-12 15:57:19 783

原创 【linux-IMX6ULL-定时器-GPT-串口配置流程-思路】

主要对IMX6ULL的三部分EPIT定时器、GPT定时器、及UART的这些外设的配置进行了简要的说明,并且对定时器+按键消抖和定时器高精度的延时进行了简要的分析,同时通过异或的结合律可以方便的检测串口通信的奇偶校验

2024-05-12 10:32:38 1026 1

原创 【linux-IMX6ULL中断配置流程】

主要对IMX6ULL的GIC中断控制器和Cortex-7的中断进行了简要说明、然后对中断配置进行底层配置和上层配置两大类,并对这两类配置进行了一个简要的概括,具体细节要针对源码细细揣摩;

2024-05-07 22:04:46 1083

原创 【linux-IMX6ULL配置GPIO通用流程-以及时钟配置】

对IMX6ULL的GPIO的通用配置流程进行了简介,例如:LED、KEY、BEEP都属于次范畴,其次对标准库的实现进行了必要的解释,最后对IMX6ULL的时钟树进行了一个简要的概括

2024-05-05 17:22:20 865

原创 【Linux-点灯烧录-SD卡/USB烧写】

主要记录了正点原子Linux'开发板的编译和烧录过程中的关键步骤和注意事项,同时介绍了两种烧录方式

2024-05-02 17:23:08 840

原创 【linux-汇编-点灯之思路-程序】

主要是记录一下用汇编编写IMXULL的点灯程序中的一些注意事项和关键要点

2024-05-02 16:24:48 1043 1

原创 【linux-1-Ubuntu常用命令-vim编辑器-Vscode链接ubuntu远程开发】

linux-1-Ubuntu常用命令-vi没编辑器-Vscode链接ubuntu远程开发】

2024-04-30 12:09:19 784 1

原创 【基础C-递归的易错思路】

现在要写一个小程序,实现输入整型:4268,输出字符:‘4’,‘2’,‘6’,‘8’,思路很简单,就是进行整数的除10,结果对10求模就行,但是得到的值是逆序排列,因此进行从后往前输出可以采用递归的思路,代码如下,但是其中有个问题:就是其中一行代码写多余了,多余的原因是在递归过程中,有一个不变思维,

2024-04-27 21:18:18 106

原创 【数据结构7-1-查找-线性-二分法-二叉树-哈希表】

数据结构-查找-线性-二分法-二叉树-哈希表-C代码实现

2024-04-26 18:06:01 1060

原创 【数据结构7-2】-二叉排序树(建立、遍历、查找、增加、删除)

二叉树的建立、查找和修改-C语言

2024-04-26 18:03:13 898

原创 【工具】-根源上解决VScode打印输出乱码的问题

你要想办法第一步把这里改成一致,UTF-8或者GBK都行,反正改成一致,(不改的话就要手动在命令窗口输入编译命令,异常繁琐),这个编译命令如何改,一般和你的配置文件有关,其中基本在这两个地方,在。中的就不起作用了,至少在编译阶段是不起作用的;中配置文件如下:这里在编译阶段不起作用。

2024-04-26 17:10:17 572

原创 【数据结构6--图】

图(Graph)是一种数学结构,用于表示对象之间的关系。在图中,通常包含以下元素:一些简单的概念术语就不讨论了,例如:提醒一点下图是一个图还是4个图?(一个图,千万别说成四个图)(x,y)指由x点到y点,且无方向;也就是(x,y)=(y,x);指由x到y,但是有方向;也就是!=;什么是顶点?什么是边?什么是图?什么是子图?—就是从一个图中拿走一部分,这部分就是子图,隶属关系什么是有向图?—只要有一根线带方向就是有向图什么是完全有向图?

2024-04-24 15:11:19 796

原创 【数据结构5-树和二叉树-森林-哈夫曼树】

一般包三个方面:数据对象D:…数据关系R:…数据操作P:重点:}

2024-04-21 21:52:23 806

原创 【数据结构4-串-数组-广义表】

主要是有:串的定长存储结构、和串的串的堆式顺序存储结构。

2024-04-19 21:24:21 484

原创 【基础】gcc-动态库和静态库的创建和使用-命令

这样能编译通过,但是后面项目中如果这些文件使用频繁,那么每次这样输入就是显得很繁琐,尤其是当编译文件非常多的时候。这样编译后,就会将静态库中的代码链接到你的程序中。再建立一个测试文件:test.cpp。工具将目标文件打包成静态库。编译源文件,然后使用。

2024-04-19 12:07:53 1018 1

原创 【基础】在GCC中编译和链接不是一个命令

编译和链接是软件开发过程中的两个重要步骤,它们分别完成不同的任务。通过将编译和链接集成在一个命令中,GCC 提供了一种方便的方式来构建可执行文件。然而,你也可以分别进行编译和链接的步骤。GCC 会自动完成编译和链接的过程,并生成可执行文件。命令来完成,它只会生成目标文件,而不会进行链接。命令,并指定所有相关的目标文件和库文件。

2024-04-18 21:14:31 165

原创 【数据结构3-栈和队列】

【代码】【数据结构3-栈和队列】

2024-04-17 21:41:35 451

原创 【数据结构2-线性表】

 线性表、栈、队列、串和数组都属于线性结构。 线性结构的基本特点是除第一个元素无直接前驱,最后一个元素无直接后继之外,其他每个数据元素都有一个前驱和后继。

2024-04-17 19:57:27 408

原创 【数据结构1-基本概念和术语】

数据,数据元素,数据项,数据对项,数据结构,逻辑结构,存储结构

2024-04-16 21:39:57 766

原创 【力扣】45. 跳跃游戏 II

核心思路,例如nums[i]=5,那么最远能跳五步;那么在这接下来1-5范围内,哪个能让我跳的最远,这个最远指的是超过5的范围最远:而不是1-5步内哪个数最大!!!! //例如: 5 4 1 1 3 1; //下标: 0 1 2 3 4 5 下一步是跳到nums[4]显然能下一步能跳的更远(注意这个更远的含义,指超出5的范围)而

2024-04-14 15:33:13 268

原创 【力扣】55. 跳跃游戏 - 力扣(LeetCode)

Problem:记录自己解答的思路和代码。

2024-04-13 22:14:02 294

原创 【基础】C语言中的qsort()的用法

C语言中没有预置的sort函数。如果在C语言中,遇到有调用sort函数,就是自定义的一个函数,功能一般用于排序。

2024-04-11 21:38:58 175

原创 【力扣】43. 字符串相乘 - 力扣(LeetCode)

不是先得到三个结果,然后再相加,实际是对两个单独的数进行处理然后加上进位和这个位上原本的值,然后把结果进行存储

2024-04-06 21:41:12 190

原创 【力扣】38. 外观数列 - 力扣(LeetCode)

这个题首先想到的就是用递归,如然后就是对上一个的字符串进行遍历,遍历的同时进行判断,每次结束一个最小数量的组,就把这个小片段格式话成字符串,然后依次结束,把每个字符串拼接起来就是最终的结果,然后进入下一次的迭代;总体思路比较简单,但是代码效率非常低

2024-04-06 17:16:28 199

原创 【力扣】22. 括号生成 - 力扣(LeetCode)-C-回溯法

每次记录完毕都进行一个判断例如n=2时,当( 出现两次,那么剩下的一定都是 ),这个很好补全,还有一种就是( ))的情况,也就是R>L,这时候不符合情况,就不要记录了,舍弃这一层的结果返回上一层,依次遍历全部情况;这个本质上使用的还是递归,是一种暴力的求解,只不过处理代码放在了return的后面;理解回溯的前提一定要搞懂递归。这里记录的思路主要是根据代码的流程来进行一个解释,主要是还是使用回溯法,对于括号的判断,每次选择都有两次分支,不是。

2024-04-04 16:52:50 356

原创 【力扣】20. 有效的括号-纯C-栈的理解及运用

这个题要理解透彻采用栈的结构,遇到(,{,[,三种结构就进行入栈,每次出现相对的就与栈顶相比较,如果栈顶没有东西可比较的则也是错误情况返回false,如果不同就返回false;如果相同栈顶指针向下移动,对消完毕,舍弃前面栈顶的值,pt指向新的栈顶。还有一种情况就是最后没有对消完,也就是((((的情况,则要返回假。

2024-04-03 21:19:51 141

原创 【力扣】17. 电话号码的字母组合 - 力扣(LeetCode)

这个回溯法的关键是要理解递归,在递归的基础上再理解回溯法,尤其是当递归结束和循环结束后下一步应该运行到哪里?return可以返回到上一层递归,但是当最后循环结束时也能回到上一层递归,可以调试看看每一步运行过程。对于个题目而言,我使用的均是中心扩散法,但是细节处理有些不同,有两个版本,一个是字符串原地返回,另外一个是申请内存并进行保持符合要求的字符串,然后进行返回;

2024-04-02 12:05:26 471

原创 char (*res)[]与char *res[]的区别

都是关于字符指针的声明,但它们表示的意义有所不同。

2024-04-01 10:52:11 132

原创 【力扣】5. 最长回文子串 - 力扣(LeetCode)

这个问题比较简单,对于字符串"ab"而言,循环中不会进行判断,也就是max的值不会更新,所以返回s时第二个值要截断成’\0’,所以要max预设成1;对于个题目而言,我使用的均是中心扩散法,但是细节处理有些不同,有两个版本,一个是字符串原地返回,另外一个是申请内存并进行保持符合要求的字符串,然后进行返回;如果只按照上面的思路进行写程序,会显得很麻烦,很多细节要考虑到,因此可以选择暴力一点,对每一个字符,我们都认为它既是奇数类又是偶数类,,这时很理所当然的,我当时也是这样认为的,但是结果是错误的!

2024-03-30 14:10:38 260

原创 【基础】单链表基础及实列分析-C

如下图所示,一个基本的单链表就是这样,其原理也是这样:每次使用 malloc()为新结构分配空间时,也为新指针分配空间。但是,还得需要另一个指针来跟踪新分配的指针,用于跟踪新指针的指针本身,也需要一个指针来跟踪,以此类推。

2024-03-27 21:27:13 370

原创 【力扣】36. 有效的数独 - 力扣(LeetCode)

9个小方块如何与循环联系起来,其中可以观察,首先是行数的变换肯定是在最外循环圈,因此每次加三就行,而对于列循环肯定是在内圈,而且行数变换一次,列数就要循环变换三次,因此列数每次加三是在内循环,而最里面的循环就是先进行拉直处理,然后进行判断数组元素是否相等,具体细节可以参考代码,由于使用的是暴力循环,思路比较简单,因此就不梳理整体流程图了。这个是比较好判断的;对于循环判断的难点就是最后一个如何进行判断,因为这不像一行或者一列的进行判断,如果是一行或者是一列就好判断了,因此我们可以思考把这。

2024-03-27 16:39:32 431

原创 【力扣】35. 搜索插入位置 - 力扣(LeetCode)

首先想到是要用二分法,所以做这个题要了解一下二分法的原理及代码实现。对于这个题而言,二分法最后结束的条件最好是。,循环结束后有两类,一种是找到了目标值也就是返回下标mid,另外一种就是没有找到,但是目标值的下标一定跟。,因此对于left对应的值是否等于目标值我们没有判断,所以left对应的值有三种可能,也就是。,这样利于后面的判断因此while循环的条件应当是。而前两种情况可以归为一类,例如:1,3,5,6;,因为我们循环结束的条件是。

2024-03-26 11:28:59 415

原创 【力扣】33. 搜索旋转排序数组 - 力扣(LeetCode)-思路分析及解答

【代码】【力扣】33. 搜索旋转排序数组 - 力扣(LeetCode)-思路分析及解答。

2024-03-25 13:42:58 173

原创 【基础】二进制补码、异或运算、位移运算、对齐

C 区别于许多高级语言的特性之一是访问整数中单独位的能力。该特性通常是与硬件设备和操作系统交互的关键。C有两种访问位的方法。一种方法是通过按位运算符,另一种方法是在结构中创建位字段。C11新增了检查内存对齐要求的功能,而且可以指定比基本对齐值更大的对齐值。通常(但不总是),使用这些特性的程序仅限于特定的硬件平台或操作系统,而且设计为不可移植的。

2024-03-24 22:00:48 937

空空如也

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

TA关注的人

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