自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (1)
  • 收藏
  • 关注

原创 Linux C 之搭建HTTP服务(二)

搭建服务器之处理目录上节,(link)搭建HTTP中我们只处理了普通文件,这节,我们尝试处理一下文件夹。要处理文件夹要明白文件夹以什么形式回馈给客户端。而且要清楚我要打开的文件夹不一样,应该反馈给客户端不一样的我们接上节的处理。生成html当打开文件夹时把文件夹中的所有文件给用(html)发送出来。所以如何写html就成了问题。这里建议使用唯一的id去定义这个html。因为我们要处理的并不是一个客户端,而是多个,如果仅有一个html的话容易出现错误,一般的处理是使用时间戳去定义(当然这里看自己的

2020-08-27 19:57:05 226

原创 Linux C之搭建HTTP服务器(一)

HTTP请求消息请求消息分为四部分内容请求行(请求类型,访问资源,http的版本)请求类型:GET和POST(绝大多数都是,还有很多如head,put,可以自己了解了解)请求头 (附加信息)空行 (不能省略 \r\n)请求数据(特定的请求内容)HTTP响应消息...

2020-08-26 21:06:38 998

原创 Linux c 建立高并发服务器(select)实现

什么是select,为什么要用select我们前面介绍过如何使用多进程的方式实现服务器,使服务器能同时和多个客户端相连接,那我可不可以使用一个进程就解决这个问题,答案是肯定的。使用select的主旨就是不让应用程序自己去监视连接,取而代之的使用内核来监视。而且select具有跨平台性,是不是觉得立马高端了不少,但是select的缺点也很明显我们后面在谈。select的各个参数先来看看selet这个函数...

2020-08-21 21:35:16 964

原创 DSP TMS320C6678 CIC片级中断控制器

CIC片级中断控制器CIC的作用CIC的操作EnableStatusChannel mapping (programmable)Host interrupt mapping (fixed)Prioritization中断服务流程CIC的作用KeyStone结构有许多外设和大量的事件源,EDMA3信道控制器(EDMA3CC)和C66xCorePac都能够直接接收事件。然而,每个EDMA3CC和C66xCorePac的可接受事件的数量是有限的。因此,在将这些事件路由到EDMA3CC和C66xCorePaC

2021-09-01 10:43:08 1078

原创 TMS320C6678多核程序的实现,执行与同步

TMS320C6678多核程序的实现,执行与同步实现在多核处理器上处理应用程序的第一步就是识别任务并行性,然后选择合适的处理模型.设备模型主/从模型原理主从模型主要在多核中定义了一个主核的概念,由一个主核和7个从核组成(以6678为例)。由主核调度各种执行线程,分配给其他的从核,还将线程所需的资源传给从核适用程序1.程序由许多独立线程组成2.包含大量的控制代码,并经常以随机顺序访问内存3.通常在linux等高级os上运行,并且定义了多个执行线程,os是主核数据流模型原理数据流模型

2021-08-30 11:05:14 2332

原创 TMS320C6678 多核学习 中断分析 实例+解析

TMS320C6678 多核学习 中断分析 实例+解析TMS320C6678了解c66x内核C66x corepac的位置内部架构中断事件中断控制器中断例程环境运行结果分析TMS320C6678了解c66x内核C66x corepac的位置内部架构可以看到66x corepac的组成模块一.首当其冲就是C66x DSP,这块的知识可以了解一下C66x DSP的结构图========================= 66x dsp结构图=========================

2021-08-26 19:47:35 11392 5

原创 Qemu学习笔记

Qemu 学习笔记QemuQemu的主要原理与机制Qemu的两种运行模式Qemu的主要执行流程Qemu开门见山,Qemu可以看成一款虚拟机,他可以模拟很多CPU架构。比如Alpha, ARM, Cris, i386, M68K, PPC, Sparc, Mips等;以及大部分的硬件设备,也就可以模拟出不同的目标系统。Qemu的主要原理与机制Qemu可以实现目标平台的仿真,但是arm平台的程序怎么能在我们电脑上运行呢?这是Qemu主要要做的事情,翻译,那如何进行翻译呢。大致上就是下面这样:客户代码

2021-08-06 17:35:44 3570

原创 力扣每日一题 把二叉搜索树转换成累加树

二叉树的遍历先复习一般二叉树如何进行遍历。先序遍历先访问二叉树的节点,在访问二叉树的左节点,最后访问二叉树的右节点中序遍历先访问二叉树的左节点,在访问二叉树的结点,最后访问二叉树的右节点后序遍历先访问左,在访问右,最后访问节点可能情况在这道题目中我们需要求出 当前节点与比当前节点更大的节点值的和来代替当前节点。我们可以分一下当前结点的可能情况。若当前节点有右节点,当前节点的值为当前值加所有右节点的值如a=a+c若当前节点有父节点,且当前节点为父节点的左节点,当前节点

2020-09-21 19:13:31 184

原创 Arduino 按键模块统计按键次数

这几天在Arduino的实验中,为了方便完成一个键就可以进行操控,使用了按键模块,但是发现,按键模块返回的值与我想要的值不同。先说下最终得目标:** 统计5秒内得按键次数 **模块选择** LCD1602 ** :在液晶屏上显示信息** DS1302 **:电子时钟模块问题当我使用while(s<5)时,并不是只循环了5次而是5秒,在这5秒有无限可能,所以当我按下一次时并不是只返回按键次数,而是返回得是我从摁下到松手while了几次。这就不太好。思路只有在提示之后,才会出现摁键行为

2020-09-08 08:58:15 3316

原创 C++之静态链表添加

#include <iostream>#include <unistd.h>using namespace std;class Node{private: int num; static Node *head; Node *next;public: Node(int num); //~Node(); static void printList(); static void deleteList();};Node *Node::head = NULL;

2020-09-03 19:53:59 133

原创 C到++ 之封装

#include <iostream>#include <unistd.h>using namespace std;class Node{private: int num; static Node *head; Node *next;public: Node(int num); //~Node(); static void printList(); static void deleteList();};Node *Node::head = NULL;

2020-09-03 19:31:31 199

原创 C到++之从零开始(一)

输入输出如果你是从C到++,那么感观一定很大,首先就是标准头文件的区别,c的标准头文件为stdio而++的标准头文件为iostream。这个类继承了istream和osteam实现输入和输出。cin对应了C++的标准输入,使用>>.cout对应了C++的标准输出,使用<<.当然作为从C来的语言,也可以使用printf,包含头文件就可以。表演一下 #include <iostream> int main(){ char str[10]; cout &l

2020-09-01 20:00:47 195

原创 shell正则表达式

正则表达式在Linux中,我们查找文件中的字符串一般会用grep。但我们不可能记住所有的东西,用邮箱来举例,我们记不住别人的邮箱,但我们一眼就能看出这是不是邮箱,要从一段话中找出哪些句子是邮箱,就可以使用正则表达式帮我们筛选。规定一些特殊语法表示字符类、数量限定符和位置关系,然后用这些特殊语法和普通字符一起表示一个模式,这就是 正则表达式。grep的正则表达式有Basic和Extendedegrep相当于grep -E,表示采用Extended正则表达式语法。fgrep相当于grep -F,表示只

2020-08-31 19:38:39 129

原创 Linux c 使用epoll搭建TCP服务器

为什么用epoll我们上次介绍过如何使用select去搭建TCP服务器,那一定对select的使用麻烦记忆尤深,主要还是select还是输入输出并不分离且内核和用户空间copy。想解决这种问题,可以采用poll或epoll,这样的方法,不仅解决了输入和输出分离的问题,还可以突破1024的上限,即使poll跟epoll跨平台较差,但他们优秀的性能的条件下这些都不是问题。要问他们有什么区别,一寸长,一寸强,从名字来看就知道epoll比poll更强大,他只会对活跃的连接起反应,所以在实际操作下,epoll的效率

2020-08-24 19:48:26 862

原创 服务端(子进程创建)与多个客户端通信

思路创建socket绑定 bind IP+端口侦听 listen 第二个参数backlog循环获取对端连接 accept ,获取到则创建一个子进程用来进行通信父进程进行回收设置捕捉信号量在子进程死亡时退出退出释放资源#include <unistd.h>#include <sys/types.h>#include <sys/socket.h>#include <string.h>#include <stdio.h>#i

2020-08-20 20:11:15 840

原创 TCP三次握手和四次挥手理解

建立三次握手过程1.发送端,发送SYN表示请求连接,同时还会包含编号。2.接收端,回应ACK,包括请求报编号+1+报数据长度,同时向发送端发送自己的SYN。3.发送端,发送ACK应答A和B打电话A:喂,我是A,能听到吗B:我是B,能听到。你能听到吗A:能图示解释一下中间的数据发送端,发送 SYN请求连接并发送了自己的 编号200 和 数据0接收端,接收到数据,同时发送自己的SYN 包括编号 300 和 数据 0,同时发送应答信号ACK,ACK的值为应答编号+数据+1(表示自己度过

2020-08-20 19:42:00 727 1

原创 ARP获取硬件地址

ARP协议  在进行网络通信时,源主机中的发送程序只知道目的主机的ip地址和端口号,却不知道目的主机的硬件地址,而数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃。因此在通讯前必须获得目的主机的硬件地址。ARP就应运而生  打个比方,我们想给朋友写信,去找邮局(源主机)寄信。邮局(源主机)会派出邮递员(进程),根据地址(ip地址)和门牌号(端口)送到朋友家(目的主机)。但是你给的地址(ip)是某某小区。这时候邮局需要将某某小区翻译成什么什么大道(硬件地址)才

2020-08-19 19:50:46 748

原创 Linux c哲学家进餐问题(多线程版)

Linux c 实现哲学家吃饭问题(多线程版)哲学家进餐思路如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入哲学家进餐五个哲学家在一个桌子上就餐,只有五只筷子,一碗面,只有同时拿到了两根筷子才可以开始进餐,如何让这五个哲学家吃到饭。思路哲学家的问题也是一个死锁的问题,在计算机中代表当多个进程开始请

2020-08-18 22:24:14 3628

RFID522.rar

Arduino中库管理中的MFRC522所带的头文件着实复杂,这里整理了简洁版的MFRC522所用到的头文件和测试文件

2020-08-26

空空如也

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

TA关注的人

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