- 博客(151)
- 资源 (16)
- 收藏
- 关注
原创 单链表的构造和反转
单链表构造(头结点存放数据信息)和链表反转头插法构造单链表(为了存入1->2->3->4->5的链表,需要按照1,5,4,3,2的顺序进行输入,即不考虑头结点的话是逆序的)尾插法构造单链表(为了存入1->2->3->4->5的链表,需要按照1,2,3,4,5的顺序进行输入)链表反转原地反转开辟新空间头插法构造单链表(为了存入1->2->3->4->5的链表,需要按照1,5,4,3,2的顺序进行输入,即不考虑头结点的话是逆序的)#in
2020-09-13 21:56:45
381
原创 LDD3中第一个程序MAKEFILE的学习
MAKEFILE分析MAKEFILE全部内容执行过程分析?=符号讲解MAKEFILE全部内容#DEBUG = yifeq ($(DEBUG),y) DEBFLGAS = -O -g -DSCULL_DEBUGelse DEBFLAGS = -O2endifCFLAGS += $(DEBFLAGS)CFLAGS += -I$(LDDINC)ifneq ($(KERNELRELEASE),)scull-objs := main.o pipe.o access.oobj-m :=
2020-07-07 23:03:52
416
原创 MATLAB中多个if-elseif-else语句分支同时使用的逻辑关系
最近看雷达的恒虚警检测GO-FAR算法,在两个if-elseif-else 语句中迷失了。大致结构如下:if A process1elseif B process2else process3endif C process4elseif D process5else process6end 在这里A和C是相反的条件,之前以为如果满足条件A,那么就执行process1,那么必然不满足C,也就不会执行process4,5,6。但是实际上当满足条件A,执行process1
2020-07-02 23:46:34
20363
原创 二维vector数组初始化方法
在用devcpp编译程序时发现,二维vector数组如果只定义的话,不指定元素个数也不进行初始化的时候会导致编译出错。通常情况下,可以只提供vector对象容纳的元素数量而略去初始值。此时库会创建一个值初始化的元素初值,并把它赋给容器中的所有元素。这个初值由vector对象中元素的类型决定。二维数组初始化方法目前有以下两种:第一种初始化方法(以元素类型为int为例)初始化为1:`vect...
2020-04-14 21:42:11
17780
1
原创 透过全排列问题分析for循环递归的过程
全排列问题问题描述程序递归过程分析问题描述全排列:元素的所有可能的排列。例如:由a,b,c三个字母的全排列为abc,acb,bac,bca,cab,cba六个排列程序#include <iostream>using namespace std;void swap(char &a, char &b){ char tmp = a; a = b; b = ...
2020-04-14 15:55:08
266
原创 左神贪心问题,递归,动态规划学习(C++)
参考:左 . 算法— 前缀树/贪心策略/递归/ 动态规划专题题目总结贪心问题程序利润最大化问题程序有限时间会议宣讲最多程序贪心问题一块金条切成两半,是需要花费和长度数值一样的铜板的。比如长度为20的 金条,不管切成长度多大的两半,都要花费20个铜板。一群人想整分整块金条,怎么分最省铜板?例如,给定数组{10,20,30},代表一共三个人,整块金条长度为10+20+30=60. 金条要分成1...
2020-04-14 00:21:16
229
原创 二维vector数组排序问题
参考:使用vector创建二维动态数组,并使用sort对其进行排序程序首先构建二维vector数组viA,然后对其进行打印,之后,按照不同的方式对其进行排序。程序如下:#include <iostream>#include <vector>#include <stdlib.h>#include <algorithm>using name...
2020-04-13 23:08:48
2502
1
原创 Linux设备驱动程序学习1-环境搭建和第三章学习
在这里是按照百度里面“小爱程序员”的相关文章进行环境搭建,搭建完成之后运行第三章中scull程序,没有问题。环境搭建系列文章:linux设备驱动程序(LDD3)环境搭建1 - vmware虚拟机设置linux设备驱动程序(LDD3)环境搭建2 - Ubuntu5.04的安装linux设备驱动程序(LDD3)环境搭建3 - linux2.6.10的编译linux设备驱动程序(LDD3)环境...
2020-04-12 15:32:26
430
原创 C++中多态与虚拟函数的学习
本文内容摘录自:从零开始学C++程序设计,仅作为入门使用如果基类指针指向派生类的对象之后再调用其成员函数,结果仍然是调用到基类的成员函数。可以通过下面的程序看出来:#include <iostream>using namespace std;class vehicle { public: void start(){ cout<<"交通运输工具启动"&l...
2020-03-23 20:44:23
223
原创 C++中this指针学习
本文内容摘录自:从零开始学C++程序设计,仅作为入门使用。在创建类的对象的同时,对象会自动创建属于它自己的指针,在引用时可以用“this”指令来表示,this指针为指向对象本身的指针,指向内存中存储该对象的地址。通过this指针可以存取到该类的数据成员和成员函数,语法如下所示:this->数据成员(*this).数据成员范例程序用于示范当函数返回值为类对象时的方法。#incl...
2020-03-23 19:13:17
176
原创 C++构造函数与析构函数学习
本文内容摘录自:从零开始学C++程序设计,仅作为入门使用。构造函数可以用于对象初始化的工作。也就是在声明对象后希望能设置对象中数据成员的初值,可以使用构造函数来声明。析构函数用于在对象生命周期结束时释放对象所占用的内存空间。构造函数具有以下四个特性:构造函数的名称必须与类名称相同不需要指定返回类型,没有返回值当对象被创建时自动产生默认的构造函数,默认的构造函数不提供参数行构造函数...
2020-03-23 18:07:29
148
原创 C++模板功能学习
本文内容摘录自:从零开始学C++程序设计,仅作为入门使用函数模板函数模板把具有相同程序代码的函数集中写成一个函数,并且把各个函数不同数据类型的部分改以模板形式参数来替代,即可通过传递不同的数据类型的参数来创建实例函数。函数模板的声明格式与说明如下:template <class 模板形式参数1, class 模板形式参数2,…>返回数据类型 函数名称(参数1, 参数2, …)...
2020-03-23 15:22:09
175
原创 无序数组排序后相邻两数的最大差值(不能用计数排序)
给你n个任意整数,求排序后相邻两个数之间的最大差值,这里n可能有10^5,整数为任意32位整型。要求求解算法的时间复杂度为O(n)。思路描述参考:求无序数组排序后相邻俩数最大差值代码C++描述如下:#include <iostream>using namespace std;int max(int x, int y) { int z = x > y ? x : y;...
2020-03-20 10:45:24
368
原创 堆排序的非递归方法
堆是一种完全二叉树,第i个节点的左孩子是2 * i + 1,右孩子是 2 * i + 2,可以通过子节点求父节点:(i - 1)/ 2 。不管是左孩子还是右孩子都可以通过这种方式求的其父节点。对于一个数组,可以先将数组中的元素构建为一个大根堆,这样数组中的第一个数就是最大的值,将这个数与最后一个位置上的数进行交换,最后一个数就是最大值了,之后考虑对去掉这个元素的数组重新调整为一个大根堆,再将这个数...
2020-03-19 12:25:33
561
原创 快速排序的递归解法(C++实现)
快速的排序在这里讨论两种常规解法和一种考虑数组中有相同值情况时的简便解法。首先来看常规解法一:参考快速排序—(面试碰到过好几次)。如下图所示,假设要给由4个元素7,13,5,9组成的数组进行排序。最开始的基准数据为数组第一个元素7。首先用一个临时变量tmp来存储基准数据,然后分别从数组的两端扫描整个数组,设两个指示标志:L指向左边的起始位置,R指向右边的末尾位置。首先,从末尾位置开始,如...
2020-03-16 20:38:30
1321
原创 指针、数组与字符串知识点整理
1.结构体嵌套时的sizeof运算写出下面各结构体的sizeof计算结构:struct s1 {char a[4];};struct s2 {s1 a;char b;};结构体s1所占用的空间为4个字节。结构体s2的第一个成员a占用4个空间,第二个成员b占用1个空间,而结构体s1类型中占用空间最大的类型为char类型,是1个字节,因此结构体s2的sizeof运算结果只要是1的整...
2020-03-15 17:24:47
496
原创 嵌入式笔试面试问题积累
1.高级IO和低级IO的区别?2.fp从用户态到内核态在整个操作系统中的调用流程3.pcb,tcb,资源分配,栈共享实现4.手写cas5.程序为什么从main函数开始,谁调用的,没有操作系统又是谁调用的6.写一个管道通信的例子7.用过什么面向对象的知识,举例说明8.介绍ARM体系9.指令集哪几种,流水线工作方式,为什么流水线好?10.中断机制,有哪些中断种类,怎么中断,为什么会有...
2020-03-13 21:25:40
763
原创 如何追踪fp的系统调用过程
为了能够分析fp从用户态到内核态在整个操作系统中的调用流程,可以通过strace这个命令来进行分析。首先,写出一个使用标准库函数对文件进行读写操作的程序:#include <stdio.h>#include <string.h>#define FILENAME ("/home/tl/UNIX-programme/self-practice/file.txt")#d...
2020-03-10 17:23:36
286
原创 归并排序及求小和问题
归并排序归并排序是先将序列的每相邻的两个数字进行归并操作,形成两两一对排序好的元素,接着将上述序列再次归并,形成包含四个元素的序列。重复上述步骤,直到所有元素排序完毕。归并排序的C++版本完整程序及测试代码如下:#include <iostream>using namespace std;void mergeSort(int arr[], int length);void ...
2020-03-05 19:12:33
506
2
原创 插入排序算法的简单分析
听到一个很形象的比喻,插入排序就像是在整理扑克牌,每从桌上拿起一张,就要把它插入到手上之前已经按顺序拍好的扑克牌中,这样,直到拿起最后一张,将它放在合适的位置之后,手上的扑克牌就整体有序了。插入排序的程序如下:#include <iostream>using namespace std;void swap(int arr[], int a, int b){ if(a == b...
2020-03-05 11:04:47
175
原创 用递归方法求最大值的程序调用层次分析
在B站上学习左程云算法课,对递归的过程有了新的认识,将用递归方法求最大值的程序进行调用层次分析,先将程序粘贴过来:C++版本#include <iostream>using namespace std;int getMax(int *arr, int leftIndex, int rightIndex){ if(leftIndex == rightIndex) { re...
2020-03-04 23:06:58
315
原创 win10自动修复电脑无法正常启动
问题描述:昨天遇到的这个问题,起因是电脑卡,反复重启后还是觉得卡,于是强制关机,结果出现蓝屏,自动修复,电脑无法正常启动。参考了网上的相关解决方法,尝试在高级选项里面选择“禁用驱动程序强制签名”,仍然是自动修复状态。解决方法:参考https://blog.csdn.net/happycell188/article/details/78082655这篇博客,其中几个步骤描述不够清晰,将过程整理...
2020-03-03 12:55:32
5582
转载 Unix时间戳和标准时间格式之间的转换-C语言库函数版
整理一下c中关于标准时间格式和时间戳之间的相互转换。在标准时间格式和时间戳之间的转换中,有一个转换介质或者说是桥梁:时间...
2019-10-28 15:21:54
2320
原创 嵌入式笔试面试题整理
XX研究所:说一下静态库和动态库的优缺点在windows中静态库是以.lib为后缀的文件,共享库是以.dll为后缀的文件。在Linux中静态库是以.a为后缀的文件,共享库是以.so为后缀的文件。以linux下的静态库和动态库为例我们研究一下,首先我们看一下他们的生成方式静态库:首先将源文件编译成目标文件:gcc –c a.c b.c生成静态库:ar –rc libstatic.a a...
2019-10-27 17:31:03
841
原创 串口中断方式使用如何区分是发射信号还是接收信号及其它相关问题
如何区分发射信号还是接收关键代码:saio.sa_flags|=SA_SIGINFO;fcntl(fd,F_SETSIG,SIGIO);信号处理函数:void signal_handler_IO(int status,siginfo_t *info,void *context){ int flag; flag = info->si_code;}这里的flag就可以...
2019-10-17 22:19:57
717
转载 Bootloader和Linux启动过程总结
ARM Linux启动过程分析是本文要介绍的内容,嵌入式 Linux 的可移植性使得我们可以在各种电子产品上看到它的身影。对于不同体系结构的处理器来说Linux的启动过程也有所不同。本文以S3C2410 ARM处理器为例,详细分析了系统上电后 bootloader的执行流程及 ARM Linux的启动过程。1、引 言Linux 最初是由瑞典赫尔辛基大学的学生 Linus Torvalds在1...
2019-09-07 08:57:17
354
转载 pthread_cond_wait和pthread_cond_signal函数详解
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...
2019-09-07 08:42:19
764
转载 线性调频信号(LFM chirp)产生-复数式&余弦式
%线性调频信号的产生的matlab仿真代码 %...................................................................................% clear all;clc; %%信号的参数设置T=10e-6; %pulse duration10usB=30e6; ...
2019-05-04 16:54:08
5305
1
原创 matlab中iniFile函数的使用
iniFile 从标准ini(ASCII)创建、读取或写入数据文件。这样的文件被分成若干部分([节名]),小节(用{小节名}括起来),和键(键=值)。空行和第一个非空的字符;(注释行)被忽略。iniFile(fileName,‘write’,keys,<‘style’>)写入以字符串的元胞数组给定的键值,可选样式变量:“tabbed”写入节,以标签样式显示子章节和键,以提高可读性...
2019-04-23 17:13:12
2849
原创 分享一个通用的MAKEFILE模板
CC = arm-none-linux-gnueabi-gccCFLAGS = -Wall -ffloat-store -fPIC -Wunused -Dfar= -ggdb -D DEBUG LDFLAGS = -ggdb -Wall -Wl,-Map=$@.mapLDLIBS = -lpthread -lc -lrtsrcs = $(wildcard *.c) ...
2019-04-11 22:54:17
300
1
原创 omapl138在中断基础上实现异步通知的按键驱动(针对开发板上的SW8和SW9按键)
目标:按下按键时,驱动程序通知应用程序,而不是应用程序自己查询步骤:1.应用程序注册信号处理函数;2.谁发?驱动程序发;3.发给谁?应用程序要告诉驱动它的pid号;4.怎么发?驱动程序调用某个函数,kill_fasync函数。驱动程序:#include <linux/module.h>#include <linux/kernel.h>#include &l...
2019-03-23 20:14:17
235
原创 Omapl138实现中断方式的按键驱动
学习了韦东山一期视频,关于按键驱动部分,他用了查询的方式,中断的方式,poll机制,和异步通知的方式来做,并渗透了同步互斥,阻塞的知识。其中,我对中断的方式和异步通知很感兴趣,这两种方式对于推进自己所做的项目有很大的指导意义。但是课程中使用的开发板是JZ 2440,并且内核版本为2.6,所以需根据手头的omapl138开发板和Linux3.3内核做一些改进。本文分为两部分,第一部分总结一下异常处...
2019-03-23 19:29:16
495
转载 Linux内核module_param的使用
1.定义模块参数的方法:module_param(name, type, perm);其中,name:表示参数的名字;type:表示参数的类型;perm:表示参数的访问权限;数组类型模块参数的定义:用逗号间隔的列表提供的值;声明一个数组参数:module_param_array(name, type, num, perm);其中,name:表示数组的名字;type:表示参数...
2019-03-10 20:47:19
228
原创 结合字符串分隔问题学习string类型substr,append等函数的使用
substr是用来截取字符串中一段子字符的函数,最常用的形式如下:string s("abcdefghijk");string a=s.substr(0,8);//获得字符串s中0位开始,长度为8的子串得到的a为:abcdefgh。substr(start,length);start为原字符串的起始位置;length为从原字符串中要截取的长度,如果为0的话,表示从起始位置开始一直到结...
2019-03-10 10:09:40
391
原创 getline,cin的使用场合以及string类型中每个字符的含义
在编程题中,需要输入字符的时候,到底改用getline还是cin,getline默认是以回车为结束符的,所以如果需要输入的是一个含有空格的字符串,那么直接用默认的getline函数一次就可以了,而cin是以空格为结束符的,所以如果要将一个含有空格的字符串里面的字符全部输入的话,需要用一个循环while(cin>>str);string类型的每个字符str[i]是int类型的,不再是s...
2019-03-10 09:36:09
241
原创 请编写一段代码,实现两个单向有序链表的合并
#include <iostream>#include <malloc.h>#include <vector>using namespace std;typedef struct Node{ int data; struct Node* next; }LNode,*Linklist;void PrintList(Linkl...
2019-03-06 00:20:07
815
转载 输入多组字符串,vector可以对输入的字符串进行类似二维数组的操作
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&a
2019-01-26 09:40:56
1300
转载 程序存储问题(贪心算法)
//blog.csdn.net/Adusts/article/details/80562828 程序存储问题问题描述:设有n 个程序{1,2,…, n }要存放在长度为L的磁带上。程序i存放在磁带上的长度是i l , 1 ≤i ≤n。程序存储问题要求确定这n 个程序在磁带上的一个存储方案,使得能够在磁带上存储尽可能多的程序。对于给定的n个程序存放在磁带上的长度,编程计算磁带上最多可以存...
2019-01-13 20:37:08
2366
原创 Omapl138双核通信中断及共享内存搬运的代码实现分析(二)
接着分析下半部分ARM等待DSP的中断 // 等待结束信号,即等待DSP触发ARM的中断 IRQEvent *event = irq_event_new("/dev/input/c674x_irq_events");(1) uint32_t line assert(irq_event_wait(event, &line) && line == EV...
2019-01-11 21:54:39
730
原创 Linux中__set_bit函数分析
/** * __set_bit - 在内存中设置一位 * @nr: 要设置的那一位 * @addr: 开始计数的地址 * * 与set_bit()不同,此函数是非原子的,可以重新排序。如果同时调用同一个内存区域,则可能只有一个操作成功。 */static inline void __set_bit(int nr, volatile unsigned long *addr){ u...
2019-01-11 20:38:01
5186
c674x-irq-events.ko
2019-01-11
以创龙Omapl138所使用的uboot2014.04.01为例分析uboot执行流程
2018-10-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人