自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

979

  • 博客(63)
  • 收藏
  • 关注

原创 编译随笔(一)makefile基础知识

左耳朵耗子《跟我一起写 Makefile》[野火]i.MX Linux开发实战指南make工具它可以帮助我们找出项目里面修改变更过的文件,并根据依赖关系,找出受修改影响的其他相关文件,然后对这些文件按照规则进行单独的编译,这样一来,就能避免重新编译项目的所有的文件。Makefile文件上面提到的规则、依赖关系主要是定义在这个Makefile文件中的,我们在其中合理地定义好文件的依赖关系之后,make工具就能精准地进行编译工作。

2024-03-08 14:56:57 653

原创 深入理解计算机系统(13)_存储器层次结构

在简单的计算机系统模型中,存储器系统是一个线性的字节数组,而CPU能够在一个常数时间内访问每个存储器位置。实际上,存储器系统(memorysystem)是一个具有不同容量、成本和访问时间的存储设备的层次结构。CPU寄存器保存着最常用的数据。靠近CPU的小的、快速的高速缓存存储器(cachememory)作为一部分存储在相对慢速的主存储器(mainmemory)中数据和指令的缓冲区域。主存缓存存储在容量较大的、慢速磁盘上的数据,

2023-07-23 00:02:29 240

原创 深入理解计算机系统(9)_优化程序性能

写程序最主要的目标:在所有可能的情况下都正确工作+让程序运行得快选择一组适当的算法和数据结构。编写出编译器能够有效优化以转换成高效可执行代码的源代码。针对处理运算量特别大的计算,将一个任务分成多个部分,这些部分可以在多核和多处理器的某种组合上并行地计算。在程序开发和优化的过程中,我们必须考虑代码使用的方式,以及影响它的关键因素。通常,程序员必须在实现和维护程序的简单性与它的运行速度之间做出权衡。对于在性能重要的环境中反复执行的代码,进行大量的优化会比较合适。

2023-07-22 21:10:01 186

原创 深入理解计算机系统(8)_处理器体系结构

一个处理器支持的指令和指令的字节级编码称为它的指令集体系结构(Instruction-SetArchitecture,ISA)。ISA在编译器编写者和处理器设计人员之间提供了一个概念抽象层,编译器编写者只需要知道允许哪些指令,以及它们是如何编码的;而处理器设计者必须建造出执行这些指令的处理器。与一个时刻只执行一条指令相比,通过同时处理多条指令的不同部分,处理器可以获得更高的性能。我们已经看到,指令集体系结构,即ISA,在处理器行为(就指令集合及其编码而言)和如何实现处理器之间提供了一层抽象。

2023-07-22 16:03:37 195

原创 深入理解计算机系统(5)_计算机运算

深入理解计算机系统》《深入浅出计算机组成原理》

2023-07-20 19:56:31 104

原创 深入理解计算机系统(3)_计算机指令

深入理解计算机系统》《深入浅出计算机组成原理》

2023-07-01 20:43:05 296

原创 深入理解计算机系统(2)_计算机基本组成

最近又开始新学一本书了,名字叫《深入理解计算机系统》,这本算是个计算机学科的奠基书籍吧,所以打算拜读下,顺便把闲置了半年的博客再抓起来搞搞,自己老是囫囵吞枣地看没啥收获。附上一个之前跟着课学习时整的思维导图。

2023-06-30 17:53:32 263

原创 深入理解计算机系统(4)_程序的机器级表示

本节主要介绍下计算机系统中的信息是以什么样的方式表示的,主要涉及无符号数、补码、以及浮点数。

2023-03-25 21:52:26 489

原创 零基础学Linux内核之设备驱动篇(11)_设备树2_获取设备节点信息

todo

2022-09-12 21:43:53 1462 1

原创 零基础学Linux内核之设备驱动篇(10)_设备树1_添加设备节点

本节主要介绍设备树的基本概念与框架,以及节点基本格式与属性,最后进行了一个添加设备节点的实验。

2022-09-12 10:59:41 1506

原创 零基础学Linux内核之设备驱动篇(9)_平台设备驱动

本节主要介绍不需要特殊的时序与专用总线的那些设备,所遵循设备驱动模型——平台设备驱动。

2022-09-04 23:54:06 391

原创 零基础学Linux内核之设备驱动篇(8)_设备模型

本节主要介绍总线是如何将设备与驱动之间联系起来的,同时介绍了BUS_ATTR / DEVICE_ATTR / DRIVER_ATTR_RO几个较为特殊的将属性文件从内核导出至用户空间的宏定义,以供用户层进行查询(cat show) / 修改(echo store)。

2022-09-02 16:56:23 528

原创 零基础学Linux内核之设备驱动篇(7)_字符设备_实验篇2

本节主要介绍内存管理单元MMU、地址转换函数,以及一个完整的LED字符设备实验。

2022-08-28 23:31:34 285

原创 零基础学Linux内核之设备驱动篇(6)_字符设备_实验篇1

本节主要介绍如何使用一个驱动进行支持多个设备,以及使用宏定义container_of,将结构体的某个成员的地址,转换为该结构体的地址。

2022-08-28 20:15:23 310

原创 零基础学Linux内核之设备驱动篇(5)_字符设备2_基本步骤

本节主要介绍下字符设备抽象的原理、设置步骤以及程序框架。

2022-08-24 14:30:52 387

原创 零基础学Linux内核之设备驱动篇(4)_字符设备1_基本概念

本节介绍一下字符设备的前置知识,包括设备号 / 设备节点 / 设备文件,以及f_op / inode / file相关结构体,为后续字符设备抽象成文件做个铺垫。

2022-08-22 15:58:10 464

原创 零基础学Linux内核之设备驱动篇(3)_内核模块_实验篇

本节根据上节介绍的内核设备原理,做几个相关的实验。

2022-08-20 23:42:45 496

原创 零基础学Linux内核之设备驱动篇(2)_内核模块_理论篇

本节主要介绍一下内核设备的基本原理,会有涉及符号表的部分,目前还不太理解,所以就暂时先跳过。

2022-08-20 14:30:38 810

原创 零基础学Linux内核之设备驱动篇(1)_设备驱动概述

本节主要介绍一下设备驱动的基本概念,为后续的内核设备、字符设备乃至设备树做铺垫。

2022-08-19 15:39:25 710

原创 深入理解计算机系统(6)_信息表示与处理

本节主要介绍下计算机系统中的信息是以什么样的方式表示的,主要涉及无符号数、补码、以及浮点数。

2022-08-14 16:31:30 505 1

原创 深入理解计算机系统(1)_内容概述

这节主要介绍下第一章总览的内容,讲一下这本书主要学个啥?学完可以对自己有什么帮助。

2022-08-06 14:08:52 1473

原创 零基础学Linux内核之编译相关篇(3)_makefile入门基础

本节主要介绍一下makefile的一些基本语法,当然,了解完这些后并不能对实际工程里的make工程有所帮助,只能算是一个前置知识。

2022-06-28 18:08:54 208

原创 零基础学Linux内核之编译相关篇(2)_静态链接与动态链接

上节说到使一个.c文件变成一个可执行文件需要经历以下几个步骤:预处理(-E得到文本文件.i)、编译(-S得到文本文件.s)、汇编(-c得到二进制文件.o)、链接(gcc最终得到可执行文件)。这节来讲一下链接这个过程主要涉及到的两个知识点:静态链接与动态链接。......

2022-06-24 19:39:18 414

原创 零基础学Linux内核之编译相关篇(1)_GCC编译

首先讲讲最简单的c文件编译过程吧,其中还不涉及二进制文件形态的具体含义。

2022-06-23 14:29:19 212

原创 白话数据结构之基本概念篇(6)_查找算法

本节介绍下最基础的查找算法,以及一些用于查找的数据结构,例如跳表与hash表。

2022-06-22 14:38:19 290

原创 白话数据结构之基本概念篇(5)_排序算法

在介绍完一些基本的数据结构后,接下来介绍一些常见的算法,例如排序、查找、递归等。本节先介绍一下数据结构里应该说是所有人(包括我这种半途而废的人)都会看的排序部分,我会按照不同的时间复杂度进行介绍,分为O(n^2^),O(nlogn),O(n)三种。............

2022-06-17 10:51:42 282

原创 零基础学Linux内核之进程间通信篇(5)_共享内存区

最后介绍一下共享内存区的通信方式,共享内存作为效率最高的一种IPC通信机制,但其也存在缺点,就是需要进程自行维护同步与互斥。

2022-06-09 16:42:55 409

原创 Linux学习笔记之进程间通信篇(4)_同步

在介绍完进程间消息传递后,本节介绍一下同步,主要分为互斥锁、信号量、条件变量等。相较于传递信息,同步更多的用在多个进程对于同一个临界资源的使用。

2022-06-08 18:56:43 492 1

原创 Linux学习笔记之进程间通信篇(3)_消息传递

正式进入进程间通信了,本节主要介绍下消息传递的相关概念和用法,分为管道与消息队列。

2022-06-07 00:10:39 1277

原创 白话数据结构之基本概念篇(4)_栈&堆

本节再介绍一下基于数组和链表引申出来的两种数据结构:栈、堆。这两种数据结构实际上就是多加了一种限制:先进先出与先进后出。当你需要使用一个只允许先进者后出以及只操作一端数据的场景时,这时候栈就派上了用场。............

2022-06-05 17:35:39 143

原创 白话数据结构之基本概念篇(3)_数组&链表

本节介绍一下最基础的两个数据结构:数组、链表。后续的其他数据结构都是可以使用它们来进行表示的。

2022-06-05 02:00:01 197

原创 白话数据结构之基本概念篇(2)_复杂度

数据结构本身就是为了解决性能问题,那么使用什么东西来衡量不同算法间的性能呢?本节介绍的就是复杂度的概念,主要分为时间复杂度与空间复杂度两个。

2022-06-04 23:51:54 153

原创 白话数据结构之基本概念篇(1)_入门概述

数据结构这门课也算是命途多舛,从最早的大学上课完全不听,到找工作时突击准备了下排序和数组链表,到去年十一月花钱买了个课,最后到现在看完了整本的大话数据结构。可算是暂告一段落了,说不上完完全全学会,但也算是勉强入门了吧。再加上工作两年来收集或总结的一些编程思想,搞个博客写写就当对着整段时间的一个总结和提炼吧。.........

2022-06-03 11:11:51 150

原创 Linux学习笔记之进程间通信篇(2)_信号

本节主要介绍下信号的相关概念和用法,其实这玩意不能算在进程间通信的范畴,但是后面会有涉及就把它也给拎进来介绍下。

2022-06-01 14:02:07 490

原创 Linux学习笔记之进程间通信篇(1)_IPC概述

在了解完进程线程概念后,现在正式进入进程间通信的篇章,也按照Unix卷2的方式进行编写吧,分为IPC概述、信号、管道、消息传递、同步、共享内存这几个篇章。

2022-05-30 17:40:54 384

原创 Linux学习笔记之前置知识篇(2)_线程

上一篇讲到进程的基本概念,这篇讲一下线程的基本概念和与进程间的关系。内容有点多,实则只要掌握下如何创建和回收线程即可。

2022-05-30 14:30:00 431

原创 Linux学习笔记之前置知识篇(1)_进程

好久没写博客了,上次的智能家居计划又搁置了。。最近把Unix卷2给看完了,搞个系列来分享一下,顺便学习下怎么总结和精炼知识。这个系列可能不太适合零基础的人系统性学习,内容都是我个人认为比较重要或是奇奇怪怪的知识点。.........

2022-05-26 17:08:08 496

原创 物联网智能家居DIY_TC32篇(2) BLE_AT透传串口点灯

BLE透传下数据解析

2022-02-19 22:05:31 5141

原创 Markdown土拨鼠学习计划

Markdown踩坑记录

2022-02-19 00:38:52 248

原创 物联网智能家居DIY_TC32篇(1) 环境搭建与点灯

系列文章目录文章目录系列文章目录一、前言二、前置条件三、本文参考资料四、正文部分4.1 UB运行环境搭建4.2 TC32编译环境搭建4.3 安装SDK并编译一、前言   遥想当年,大学四年基本上都在跟单片机打交道,接触过的单片机也蛮多了,STM32 / ESP8266 / ESP32 / MSP430 / 51啥的,主要还是靠项目和电赛推动吧。最后一次接触单片机就是毕设的工业网关了,那时候搞了个什么多协议网关,LORA + WIFI + Zigbee啥的统统弄上去,网关选择STM32

2022-02-19 00:03:59 4485

空空如也

空空如也

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

TA关注的人

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