自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 QT入门实战

学习前提要有C或C++开发的基础。下载qt软件包的网站:http://download.qt.io/archive/qt/

2020-05-17 22:36:15 315

原创 linux操作系统相关常用问题总结

关于linux操作系统常用的相关问题总结。Q1: 安装ubuntu这个linux发行版系统,为什么要先安装虚拟机VMware?我们电脑可以直接安装ubuntu吗?A1: 直接在电脑上安装ubuntu,那电脑就真正成为ubuntu电脑了,当然可以选择在安装一个windows系统,但这样的话,电脑就是一个双系统的了。每次开机都要选择其中一个系统,要么windos,要么ubuntu。想想就...

2020-03-22 21:27:43 1097

原创 软件单元测试总结

Unity是一个单元测试框架,核心的unity测试框架有三个文件:一个C 文件和两个头文件。它们共同提供函数与和宏,使测试更加容易。uinty被设计成跨平台的,可以被许多编译器使用,包括:gcc、 IAR、VS等,要实现它与新目标协同工作并不难。软件测试内容由3部分组成,即given(初始状态或前置条件,给软件测试的变量注入“血液”,想要什么条件,ok,满足。当需要从别的模块获取才能实现的,...

2020-03-15 22:42:42 476

原创 C语言编程基础总结

C语言编程主要包含17个部分:排序、求最大值和最小值、链表、大数、高精度运算、字符串常见运算、数组常见运算、四则运算、求数的各种附属数、匹配问题、进制转换、二叉树、规划问题、最短路径问题、图联通问题、对数字进行特殊判断等。这些是基础,所谓“基础不牢,地动 山摇“。熟练掌握这些基础,一般的嵌入式编程是没有什么问题的。排序算法:排序算法有快速排序、选择排序、插入排序、冒泡排序、堆排序、归并排序、...

2020-03-07 23:20:41 321

原创 进程和线程

多进程与多线程:进程是系统资源分配的最小单位,线程是程序执行的最小单位,即CPU调度的基本单位。父子进程的关系:1,关于资源,子进程除了代码段和父进程共享以外,其他的就是一个复制过来的副本,二者并不共享地址空间,两个是单独的进程,之后就没太多关系了,子进程单独运行。2,关于文件描述符,父子进程共享文件表项,一个进程修改,另一个进程也知道此文件被修改了。线程与进程之间的关系:1,一个...

2020-02-26 22:43:16 150

原创 linux内核功能

linux内核的功能包括:内存管理、进程管理、文件管理、设备管理。内核的功能:内存管理内存分配调用:包括静态分配方式、动态分配方式内存保护:通过使用界限寄存器或存储保护键,确保每个程序在自己的内存空间运行,互不干扰。地址映射:实现程序的逻辑地址和存储器物理地址之间的映射功能。内存扩充:操作系统具有请求调用功能和置换功能。从逻辑上扩充物理内存,允许比物理内存更大的程序在机器内运行...

2020-02-21 22:12:04 416

原创 linux系统移植

对linux驱动开发需要将精力放在linux驱动框架上,在进行linux驱动开发之前肯定要先将linux系统移植到开发板上。Linux的移植不像Ucos/FreeRTOS那样从官方的SDK包里面找到一个和自己所用芯片一样的工程编译一下,然后下载到开发板上就可以了。Linux的移植要复杂的多,在移植linux之前,需要先移植一个bootloader代码,这个代码用于启动linux内核。bootloa...

2020-02-20 22:55:39 344

原创 帧解析总结

7E A0(默认为A0,当帧长度超过255时,超过的长度与0x7E进行&操作,计算公式:A0| (0x07 & (帧长度>>8)) ; LL(除了开头和结尾的7E以外的长度;00 02 FE FF(这四个不清楚是啥)0x61(不同的应用层客户端对应的链路层的客户端)0x10(控制域,由rrr和sss决定:里面的值= 0x10| (sss<<1); 里面的值...

2020-02-20 14:47:40 784

原创 音视频开发基础知识

视频是由一幅幅的图像组成的,故学习视频还是要从图像学习开始。视频的学习和音频处理的学习方法相似,需要理解图像的基础知识。

2020-02-12 12:35:05 185

原创 视频编解码流程

文字–>图片–>视频是互联网发展的几个阶段,从最开始的发消息到打电话,过度到可以互相发送图片,再到网络视频和直播的兴起。

2020-02-10 13:49:18 397

原创 嵌入式底层驱动相关知识点总结

嵌入式底层驱动程序一般都是C 语言编写的,若想做驱动开发还要懂硬件相关的知识。软件开发分为win CE下及linux下开发,有操作系统的移植开发,驱动开发和应用软件开发。用户态和内核态的区别和联系操作系统需要两种CPU状态:内核态(kernel mode),运行操作系统程序,操作硬件;用户态(User mode):运行用户程序。CPU两种状态之间的转换用户态 -->内核态:通过...

2020-02-07 20:29:58 1822

原创 多任务抢占式调度器

以ARM9为平台,介绍一个多任务抢占式调度器。抢占式调度器提供:延时,挂起,恢复任务操作。没有加入信号量邮箱等同步通信机制,只是实现一个基本的任务调度功能。多任务原理的印象<建立一个属于自己的AVR的RTOS>,自己要好好看这篇文章。循序渐进,一步步把简单的东西弄懂了,便没有复杂的了,所谓水到渠成。操作系统(operating system (os))是一种系统软件,它在计算...

2020-01-15 17:58:49 613

原创 嵌入式实时操作系统uc_OS-II

什么是计算机操作系统?操作系统是一种为应用程序提供服务的系统软件,是一个完整的计算机系统的有机组成部分。从层次上来看,操作系统位于计算机硬件之上,应用软件之下,所以它也叫做应用软件的运行平台。计算机操作系统的作用?从用户的角度来看操作系统,就是一大堆函数(API和系统函数),用户可以通过调用(普通调用或系统调用),以实现用户读系统资源的操作。一个完整的任务应该有哪些部分组...

2020-01-08 19:21:00 1095

原创 PMP考试重点

PMP考试时间为4小时,共200个单选,其中25道单选是不计分的。一般答对106-131道,便可通过。

2020-01-01 16:54:01 169

原创 sublime软件的安装步骤

sublime软件的安装步骤,相关的安装软件,我会放到百度网盘上。step1: 按照 如何安装和配置java环境,让电脑支持java运行_百度经验.pdf这个文档进行安装javastep2: 按照 使用 Sublime + PlantUML 高效地画图 - 简书.pdf 这个文档进行安装sublime和 graphviz-2.38.msi这个软件step3: 将sublime...

2019-12-26 20:00:23 187

原创 C#学习总结

学习C#,首先需要清楚控制台应用程序、windows窗体应用程序和web网站应用程序。控制台应用程序:是windows系统组件的一部分,通常以Dos窗口的形式输出windows窗体程序是可以在windows平台上可以运行的所有程序。web网站应用程序:是指可以在internet上运行的程序,以网站的形式输出。例如常访问的http://www.www.com就是web网站应用程...

2019-12-19 18:58:25 119

原创 硬件,核心和bash

linux环境下,终端下发的指令,是通过bash环境进行处理的;bash涉及到的东西非常多,包括变量的设定和使用、bash操作环境的搭建、数据流重导向的功能及管线命令。linux系统中,管理整个计算机硬件的其实是操作系统的核心(kernel),应用层只能通过shell进行控制核心。操作系统概述:操作系统其实就是一组软件,这组软件控制整个硬件,且管理系统的活动监测。如果这组软件能被用户随意...

2019-12-17 19:16:11 114

原创 window下安装及配置gtk2.0的详细教程,绝对可用

由于首先gtk官网的升级,导致网上的以前下载和配置gtk的教程都不可用。经过本人1天的摸索,现总结绝对可用的window下安装及配置gtk2.0的详细教程:step1:下载一个gtk+的All-in-one bundles。网址如下:https://download.csdn.net/download/crazyingBird/3386693...

2019-12-15 17:31:17 1403

原创 unix编程艺术

各种操作系统最基本的不同就是:操作系统支持多进程并发的能力。在往上一个层次,操作系统可具有协作式多任务的能力。这种系统可以支持多个进程,但是一个进程运行前必须等待前一个进程主动放弃占用处理器(这样的话,简单的编程错误就会很容易将机器挂起)。...

2019-12-05 20:18:43 268 1

原创 电脑配置虚拟串口的详细教程

1:网上下载vspd.exe软件,安装模拟串口软件;2:安装好后会出现下框中的串口:端口1选择COM10,端口2选择COM11后,点添加端口。端口1选择COM12,端口2选择COM13后,点添加端口。端口1选择COM6,端口2选择COM7后,点添加端口。端口1选择COM8,端口2选择COM9后,点添加端口。以上完成虚拟串口的安装。...

2019-12-04 18:02:44 5777 1

原创 linux设备树

linux驱动开发人员必须要掌握设备树,因为新版本的linux中,ARM相关的驱动全部采用设备树(也有支持老式驱动的,比较少)。

2019-12-02 21:10:58 267

原创 linux系统移植

通过STM32的学习,基本掌握了外设底层的原理。进行linux驱动开发时,需要先将linux系统移植到开发板上。UCOS/FreeRtos移植就是在官方的sdk包中找到一个和自己所有芯片一样的工程编译一下,然后下载到开发板中。linux的移植就不是那么简单了,在移植linux之前要先移植一个bootloader,这个bootliader代码是用来启动linux内核的。常用的bootloader就...

2019-12-01 15:30:49 498

原创 汇编LED灯的实验

嵌入式linux学习的第一步,编写第一个裸机例程—经典的点灯实验。了解如何使用汇编语言进行出书啊I.MAX6U开发板的外设寄存器,了解最基本的IO输出功能。初始化STM32的一个IO口输出功能,初始化代码主要完成以下4个功能:使能指定GPIO的时钟初始化gpio,比如输出功能,上拉,速度等;STM32的IO口复用时,如果IO口作为其他外设的引脚使用的话,需要设置IO口的复用功能;...

2019-11-29 17:44:44 1088

原创 ARM汇编基础

STM32几乎没有用到过汇编,Ucos,FreeRTOS等RTOS类操作系统会接触到一点汇编。linux开发的时候要绝对掌握基本的ARM汇编,因为Cortex-A芯片刚上电时SP指针还没有进行初始化,C环境还没准备好,还不能运行C代码。...

2019-11-28 19:23:49 119

原创 生活哈哈

今天查了下杭州小车摇号的续签,因暂住证过期,导致续签审核没通过 ;顺手又查了下中级职称的评审,因为没有软考证,专利都是上学时写的,评审委员会只认工作后写的专利,导致职称申请也没通过。提交申请表后,我又写了3篇发明专利,但人家专家不认(捂脸)。申请职称之前,工作后没有写专利和论文的意识,这个自己要反思下。一天两个审核都没过,还好知道什么原因导致的,那就解决吧。...

2019-11-25 20:42:03 119

原创 消息队列在linux下实现进程间的通信;消息盒子在单片机中的代码实现

消息队列是进程间通信的一种方式。== 首先介绍下消息盒子在单片机中的代码实现==#include<stdio.h>struct message_t{ int integer; int decimal[32];};struct message_t message;/** 32位位码 */int Bit_Map32[32] ={ 0x00000001, 0x...

2019-11-23 12:48:45 201

原创 Coretx-A7 MPCore架构

Cortex-A7处理器支持1~4核,通常是和Cortex-A15组成big.LITTLE架构。Cortex-A7MPCore使用ARMv7-A架构,主要的特性如下:SIMDv2扩展整形和浮点向量操作

2019-11-21 20:50:01 305

原创 进程间通信

进程间通信(Inter Process Communication),操作系统应该提供两个进程可以同时访问的内存空间,这样才可以实现两个不同的进程间的数据交换。

2019-11-20 21:25:31 74

原创 多线程服务器端的实现

并发服务器端的实现:多个客户端同时发起请求连接服务器时,这时候网络程序中的数据通信时间比CPU运算时间占比更大。针对这个问题,常用的3种代表性并发服务器端实现的模型和方法:多进程服务器:创建多个进程提供服务多路复用服务器:通过捆绑并统一管理I/0对象提供服务多线程服务器:通过生成与客户端等量的线程提供服务。case1多进程服务器,这种方法不适合在windows平台下(win...

2019-11-19 18:42:41 319

原创 套接字的多种可选项

套接字具有多种特性,这些特性可以通过可选项进行修改。套接字的可选项和I/O缓冲大小前面编写的套接字编程,都是采用默认的套接字特性进行数据通信的。前面讲的示例比较简单,无需特别操作套接字的特性。可设置套接字的多种可选项协议层选项名读取设置ipproto_tcptcp_keepalive,tcp_nodelay,tcp_maxsegoo...

2019-11-19 18:36:13 96

原创 利用spyder软件,采用python处理excel的教程

python使用openpyxl库进行处理xlsx表格,openpyxl将工作簿(workbook),工作表(sheet)和单元格(cell)作为excel操作的具体对象。openpyxl对excle操作的总结:创建新的excel表格的操作from openpyxl import Workbook #进行新建一个excel#实例化创建的excelwb = Workbook()#...

2019-11-12 17:32:04 15152 1

原创 python修改图像的教程

利用python软件进行修改图像时,需要安装Opencv和PIL软件。 Opencv是一个基于BSD许可(开源)发行的夸平台的计算机视觉库。可以运行在linux,windows,andriod和mac os操作系统上。由一系列C函数和少量C++类构造成,同时提供了python,ruby,matlab等语言的接口,实现了图像处理和计算机视觉方法的很多通用的算法。opencv-python是open...

2019-11-08 20:57:42 1447

原创 揭开程序员C语言面试笔试的总结

最快的关键字register。register这个关键字请求编译器尽可能的将变量存在CPU的内部寄存器中。而不是通过内存寻址访问,提高效率。

2019-11-05 21:00:44 290

原创 通信编程总结

通信编程总结#include<stdio.h>#include<stdlib.h>enum protocal_name_t{ TCP = 0, local,};//通道所挂载的协议struct commmunication_protocal_list_t{ enum protocal_name_t protocal_name; //协议名称 i...

2019-11-05 20:56:46 272

原创 常用的函数代码编写

#include<stdio.h>//将内存里面的数据进行移动void move_buf(int *source, int *dest, int len){ //先判断源和目的地址是否有交集 if (source + len > dest) { while (len--) { dest[len] = source[len]; //则从后往前进行复制,...

2019-11-01 18:04:52 2671

原创 Ubuntu和Windows下文件互传

一台电脑上既有windows又有Ubuntu时,这时候就需要文件传输。比如在windows下编写好代码,需要拿到ubuntu下进行编译。这时候文件互传就需要FTP服务。ubuntu下自带FTP服务器的,这时候需要在终端下下发命令进行安装FTP服务器:sudo apt-get install vsftpd进行安装;安装完成后重启 FTP服务:sudo /etc/init.d/vsftpd r...

2019-10-30 18:34:57 3756 3

原创 ARM的裸机开发

ARM的逻辑开发,就是不带操作系统的开发。裸机开发是直接操作CPU的寄存器,linux驱动开发最终也是操作寄存器。差别只是linux环境下操作寄存器之前,要先编写一个符合linux的驱动框架。ARM公司的Cortex-A,Cortex-R和Cortex-M内核介绍:名称功能应用场景Cortex-A(开放式操作系统的高性能处理器)可实现高达2Ghz+标准频率的卓越性能...

2019-10-29 19:07:22 1344

原创 Linux下C编程入门和总结

window下使用各种IDE进行编程,如VS,IAR软件编写代码后可以直接进行编译。Ubuntu下,大多使用VIM编辑器进行代码的编辑,用gcc编译器进行编译。vim编辑器的使用方法如下:终端下输入vi,编辑器会进入下图的默认模式,此时不能进行编辑。2.记住aio,例如要进入编辑模式的时候,先按a或者是io即可进入到。a是在光标后面输入文字,i是在光标前面输入文字,o代表...

2019-10-28 19:36:16 354

原创 进程和线程总结

现实中的购物网站可以同时供多个客户浏览,这是由于并发编程实现的。实现并发方式有多种:如多进程,多线程,IO多路复用等。多进程是资源(CPU,内存)分配的基本单元,它是程序执行时的一个实例。程序运行时,系统就会为其创建一个进程,并为它分配资源,然后将该进程放到就绪队列,进程调度器选中它时,就会给它分配CPU时间,程序运行。...

2019-10-25 21:03:03 97

原创 UART串口驱动代码编写及总结

芯片内置UART接口,用于与外部进行异步串行通信。串口控制器有如下特征:1,内置波特率发生器,支持不同波特率的配置;2,数据位宽支持5/7/8bit;3 停止位可配置成1或2bit;4,可支持38Khz红外调制;5 , 支持自动波特率检测。-每个UART口,芯片会分配16K的地址。每个UART相关的寄存器如下图:寄存器名称作用uart_ctluart控制寄存器u...

2019-10-23 18:16:14 4963

listlist.c

双向循环链表的创建,添加,删除及输出的C代码

2019-09-17

空空如也

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

TA关注的人

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