- 博客(24)
- 收藏
- 关注
原创 【已解决】Makefile—warning: libxxx.so* needed by libxxx.so* not found (try using -rpath or -rpath-link)
继之前的博客解决交叉编译libpng、zlib和freetype遇到的问题后,执行应用程序的Makefile进行编译生成可执行程序。但在执行Makefile后没有编程成功,出现了warning警告信息:warning: libxxx.so* needed by libxxx.so* not found (try using -rpath or -rpath-link)
2023-12-05 01:53:43 3205
原创 【已解决】交叉编译freetype第三方库报错../arm-linux-gnueabihf/bin/ld: cannot find -lz/cannot find -lpng
继上一篇博客解决交叉编译libpng和zlib过程遇到的问题后,接下来就是对libpng和zlib存在依赖的freetype进行交叉编译,在执行./configure配置选项后成功生成Makefile, 但在执行Makefile后却出现了报错:
2023-12-04 17:13:56 998
原创 【已解决】交叉编译libpng第三方库报错 “configure: error: zlib not installed”
在首先编译完zlib第三方库后,交叉编译libpng第三方库却报错 “configure: error: zlib not installed”,但是zlib确实已经安装好了啊,为什么报错说没有安装呢?很疑惑?
2023-12-04 15:33:40 1607 3
原创 【已解决】Makefile编译openlldp源码程序包出现multiple definition of
项目需要安装openlldp软件包,在网上下载了源码包进行编译安装,前面./configure生成Makefile很顺利,但是下一步make就报错了,居然显示multiple definition of ,这种报错只在自己编写的C程序中出现过,没想到软件源码包也会有这种问题???
2023-08-16 14:22:13 287
原创 Ubuntu initramfs映像文件的解压 和 打包
Initramfs(Initial RAM File System)是Linux系统中的一个临时文件系统,用于在系统引导过程中提供必要的文件和工具。它被加载到内存中,并在系统引导过程的早期阶段使用。Initramfs包含了用于处理器微代码更新的.bin文件,以及真正的根文件系统。在系统引导过程中,initramfs会被挂载为根文件系统,并执行一系列初始化和准备工作,包括硬件初始化、加载驱动程序、检测和挂载根文件系统等。
2023-08-05 23:41:16 1754 2
原创 C++手撕LeetCode——双指针(滑动窗口)
滑动窗口法是一种常用的算法技巧,它通常用于数组或字符串的遍历,以及子串或子序列的搜索等问题。该算法的基本思想是维护一个滑动窗口,每次移动窗口,通过更新窗口的左右边界,来得到新的结果
2023-04-10 01:36:50 184
原创 C++手撕LeetCode——二叉树遍历(BFS层序遍历)
BFS算法的优点是找到的路径一定是最短路径,缺点是空间复杂度较高,因为需要保存所有已经访问过的节点。此外,在面对大规模的图时,BFS算法可能会陷入无限循环,因为搜索过程需要访问所有可达节点,有两大应用场景:「层序遍历」、「最短路径」
2023-04-10 00:24:18 393
原创 C++手撕 ACM——换座位-桌椅高度(取模运算)
大厂笔试编程真题:最近发现有些笔试中的编程题或者面试中的手撕算法是ACM模式的,即代码中需要包含输入和输出的操作者,所以也借一个大厂的笔试真题练习以下这种模式下的刷题
2023-04-09 15:11:57 609
原创 C++手撕LeetCode——二叉树递归(根据前中后序构造)
递归是一种算法或函数的设计技巧,通过在函数定义中调用自身来解决问题。在数据结构与算法中,递归通常用于解决可分解为多个相似子问题的问题。递归算法通常包含两部分:基本情况和递归情况。基本情况是递归的出口,即在问题可以直接解决或不需要递归时的情况。递归情况则是指通过将问题分解成更小的子问题,并将子问题递归地解决来解决原始问题的情况
2023-04-05 00:41:32 213
原创 【Linux移植第三方库找不到头文件/库文件的解决办法】
在做一个Linux应用开发项目时需要移植第三方库:freetype、tslib、libpng等,在Ubuntu上编写应用程序,需要先手工交叉编译这些库软件,但在最终交叉编译应用程序时,总是出现找不到头文件和库文件的报错情况,这就涉及到Linux开发中程序运行的一些基础知识
2023-03-24 21:47:48 1433
原创 Linux驱动开发之【Platform总线驱动模型】
自内核2.6版本开始,需要关注的是总线、设备和驱动这3个实体:总线将设备和驱动绑定。在Linux内核系统中注册一个设备的时候,会寻找与之对应驱动进行匹配;相反地,系统中注册一个驱动的时候,会去寻找一个对应的设备进行匹配。匹配的的工作由总线来完成。在Linux设备中有的是没有对应的物理总线的,但为了适配Linux的总线模型,内核针对这种没有物理总线的设备开发了一种虚拟总线--platform总线
2023-03-19 15:37:07 892
原创 Linux驱动开发之【MISC驱动】
misc 的意思是混合、杂项的,因此 MISC 驱动也叫做杂项驱动,也就是当我们板子上的某些外设无法进行分类的时候就可以使用 MISC 驱动。MISC 驱动其实就是最简单的字符设备驱动,通常嵌套在 platform 总线驱动中,实现复杂的驱动
2023-03-19 13:42:17 275
原创 Linux驱动开发之【pinctrl和gpio子系统】
Linux 是一个庞大而完善的系统,尤其是驱动框架,像 GPIO 这种最基本的驱动不可能采用“原始”的裸机驱动开发方式。Linux 内核提供了 pinctrl 和 gpio 子系统用于GPIO 驱动,Linux 驱动讲究驱动分离与分层,pinctrl 和 gpio 子系统就是驱动分离与分层思想下的产物要先设置某个 PIN 的复用功能、速度、上下拉等,然后再设置 PIN 所对应的 GPIO。其实对于大多数的 32 位 SOC 而言,引脚的设置基本都是这两方面,因此 Linux 内核针对 PIN 的配置
2023-03-17 15:37:26 1287
原创 Linux多进程/线程编程之【fork()和exec()】
在多进程中fork()和exec()通常是结合起来一起使用,在多线程中,通常不建议使用fork()和exec()
2023-03-17 14:27:45 2877
原创 Linux网络通信之【Socket编程】
套接字(socket)是 Linux 下的一种进程间通信机制(socket IPC),socket 是应用层与 TCP/IP 协议通信的中间软件抽象层,它是一组接口,还是一个标准BSD socket,能在不同平台很方便移植SocketTCP/IP协议族包括运输层、网络层、链路层,而socket所在位置如图,Socket是应用层与TCP/IP协议族通信的中间软件抽象层。
2023-03-15 22:52:23 751
原创 Linux系统编程之【多线程同步】
线程同步——为什么需要线程同步?每个线程都是系统调用的基本单元,参与到系统调度队列中;对于多个线程间的共享资源,并发执行会导致对共享资源的并发访问,并发访问所带来的问题就是竞争,并发访问就可能会出现数据一致性问题
2023-03-15 20:20:37 320
原创 数据结构之【环形缓冲区buffer】
环形缓冲区是一个先进先出(FIFO)的闭环存储空间,用于表示一个固定尺寸、头尾相连的缓冲区的数据结构,适合缓存数据流,在内存用尽后,剩余未存的数据从这段内存的起始位置开始存放,适用于多线程、多进程和网络IO的数据处理,一个读一个写,反复使用内存,降低空间复杂度。
2023-03-15 18:05:26 1734
原创 【基于IMX6ULL开发板开机摄像头的自启动】
首先基于正点原子IMX6ULL开发板移植摄像头模块,配置启动文件实现开发板开机摄像头的自启动,后续再进行内核调试,优化开机`
2023-03-12 17:51:20 1349 2
原创 关于IMX6ULL挂载内核失败解决办法(2)Retry count exceeded; starting again
关于IMX6ULL挂载内核失败解决办法(tftp下载内核超时出错:Retry count exceeded; starting again)
2023-02-27 23:05:32 839
原创 关于IMX6ULL挂载内核失败解决办法(1)Retry count exceeded; starting again
关于IMX6ULL挂载内核失败解决办法(tftp下载内核超时出错:Retry count exceeded; starting again)
2023-02-23 23:48:17 613
原创 C++手撕LeetCode——双指针(相对位置不变)
双指针法即通过一个快指针和慢指针在一个for循环下完成两个for循环的工作。在数组和链表的操作中是非常常见的,很多考察数组、链表、字符串等操作的面试题,都使用双指针法,可降低算法时间复杂度和保持元素相对位置不变
2023-02-13 23:02:14 204
原创 Linux驱动框架学习——I2C驱动体系
Linux系统定义了I2C驱动体系结构,将I2C驱动分为三部分:I2C核心、I2C总线驱动和I2C设备驱动
2023-02-10 22:45:36 884 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人