自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 网络笔试题

1.查看B电脑网络是否能够通信(假设A的IP:1.100,B的IP:1.200,从A测试B)答:在电脑A命令行输入:ping 1.0检查电脑A路由是否正常。如果电脑A能够与路由1.0通信,说明电脑A网络能正常通信。然后再从A测试B,再A命令行中输入:ping 1.200如果电脑A收到电脑B的回复,说明电脑B网络能够正常通信。2.查看B设备80端口是否对外开放。(假设A的IP:1.100,B的IP:1.200,从A测试B)答:第一步检查AB设备是否能够正常通信,在A设备命令行中输入:ping 1.200

2021-01-06 17:13:40 521

原创 keepalived关于vrrp协议的vip偏移情况

keepalived关于vrrp协议的vip偏移情况1)首先看优先级高低,优先级高的抢占vip,成为master2)再看vip与实际ip是否相同,相同的为master3)最后看实际ip地址的主机号,高的为master举例:(主从模式)假设有两台同一网段的主机,192.168.6.1 与 192.168.6.2虚拟ip,vip:192.168.6.100 |'' MASTER :100优先级 BACKUP:90优先级 vip

2021-01-06 16:32:55 692 2

原创 单链表的创建,初始化,插入,删除,修改,查询

/** study linklist1: dan lian biao* with create init insert del change lookup* date: 2020/12/11*/#include <stdio.h>#include <stdlib.h>#define OK 0#define ERROR -1typedef struct linklist{ int data; struct linklist * next

2020-12-16 15:33:00 350

原创 WireShark分析三次握手,四次挥手,http请求与响应

三次握手TCP包信息(第一次握手):(1)Frame 2:所抓帧序号为2,大小66 bytes(2)Ethernet II:数据链路层,源mac地址(00:50:56:c0:00:08),目的mac地址(00:0c:29:09:27:24)(3)Internet Protocol Version 4:IPV4协议, Src ip: 192.168.222.1, Dst ip: 192.168.222.128(4)Transmission Control Protocol:TCP协议, Src P

2020-11-27 13:55:05 861

原创 Rt_Thread_env

添加进右键菜单打开env.exe文件,右击顶部空白,点击settings,点击左侧integration设置完成后,进入工程右键Conemu here即可打开对应文件的env.exe。指令1)scons --target=mdk5编译生成mdk5工程文件2)scons编译生成可执行文件,供板子使用3)menuconfig配置项目4)pkgs --upgrade升级软件包和env配置,建议在每次使用软件包之前使用5)pkgs --update更新 或者 删除 menuconfig配

2020-09-22 18:57:29 503

原创 Rt_Thread_IPC_API

信号量初始化与脱离静态信号量:rt_err_t rt_sem_init( rt_sem_t sem, const char* name, rt_uint32_t value, rt_uint8_t flag );rt_err_t rt_sem_detach( rt_sem_t sem );创建与删除动态信号量:rt_err_t rt_sem_create( const char* name, rt_uint32_t value, rt_uint8_t flag );rt_err_t rt_

2020-09-22 10:38:23 230

原创 Rt-Thread基础API

动态内存管理示例:char *ptr = RT_NULL;ptr = (char *)rt_malloc(10);...if(ptr!=RT_NULL)//如果分配成功{rt_memset(ptr, 0, 10);//清0,内存复位}...rt_free(ptr);//释放内存,防止内存泄漏堆的地址范围配置:动态内存分配是在heap堆中rt_system_heap_init((void *)HEAP_BEGIN, (void *)HEAP_END);END地址 - BEGIN

2020-09-21 10:53:45 504

原创 SPI与IIC的异同

1)SPI需要的线比IIC多

2020-09-15 11:11:18 4701

原创 进程与线程基础知识

进程是资源(CPU、内存等)分配的基本单位,线程是CPU调度和分配的基本单位(程序执行的最小单位)。线程是进程的一个执行流,进程其实是不能用来运行代码的,真正运行代码的是进程里的线程。多进程更健壮,性能更好,但系统资源开销大,多进程通讯因为需要跨越进程边界,不适合大量数据的传送。多线程相反。安全稳定选进程;快速频繁选线程;进程间通讯:(1)管道/无名管道(2)信号(3)共享内存(4)消息队列(5)信号量(6)socket。线程通讯:(1)信号量(2)读写锁(3)条件变量(4)互斥锁(5)自旋锁进

2020-09-08 10:56:29 189

转载 EPOLL

epoll使用详解:epoll_create、epoll_ctl、epoll_wait、closeepoll - I/O event notification facility在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linux/po

2020-08-16 09:44:46 136

原创 简易多线程

process与pthread1)两者都可以干多件事1)process耗费内存大,但干扰小2)pthread共享内存,所以干扰大创建线程pthread_t th;//线程idpthread_create(&th, NULL, myfunc, NULL);//最后NULL为myfunc的传递参数线程执行函数mgfunc:void* myfunc(void* args){}线程阻塞,退出函数1)pthread_join(th, NULL);//主函数调用,用于阻塞等待线程结束

2020-08-15 20:58:49 176

原创 stm32f10x_SPI编程

1,初始化SPI对应的GPIO引脚1)打开对应引脚:SCK,MISO,MOSI,CS等引脚所在GPIO的时钟2)配置对应引脚:SCK,MISO,MOSI的模式(查看参考手册GPIO部分),速度注意CS(NSS)用软件控制,设置成推挽输出e.g:#define FLASH_SPI_CS_HIGH GPIO_SetBits(FLASH_SPI_CS_PORT,FLASH_SPI_CS_PIN);#define FLASH_SPI_CS_LOW GPIO_ResetBits(FLASH_

2020-08-12 12:29:20 551

原创 stm32f10x_SysTick

SysTick简介系统定时器,24位,只能递减,存在于内核,嵌套在NVIC中,所有的Coetex-M内核的单片机中都具有这个寄存器。SysTick寄存器CTRL 控制及状态寄存器 (4位有效)第16位: COUNTFLAG (R/W)如果在上次读取本寄存器后, SysTick 已经计到了 0,则该位为 1。第2位: CLKSOURCE (R/W)时钟源选择位,0=AHB/8 ,时钟为9M1=处理器时钟AHB,时钟为72M第1位: TICKINT (R/W)1=SysTick倒数计数到

2020-08-04 16:48:28 268

原创 stm32f10x_中断编程框架

中断编程流程1,初始化NVIC,用于处理中断2,初始化要连接到EXTI的GPIO3,初始化EXTI用于产生中断/事件4,编写中断服务函数5,main函数1,初始化NVIC,用于处理中断1)设置优先级分组misc.h中void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup);2)配置NVIC初始化结构体,中断源,主优先级,子优先级,使能。void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruc

2020-08-04 10:43:27 853

原创 stm32f10x_中断_EXTI

EXTI: 外部中断/事件控制器结构体typedef struct{ uint32_t EXTI_Line; /*!< Specifies the EXTI lines to be enabled or disabled. This parameter can be any combination of @ref EXTI_Lines */ EXTIMode_TypeD

2020-08-04 09:47:16 476 1

原创 stm32f10x_中断_NVIC

STM32 中断非常强大,每个外设都可以产生中断中断类型:1)系统异常,体现在内核(的外设)水平,有10个2)外部中断,体现在外设水平,有60个NVIC嵌套向量中断控制器,属于内核外设,管理包括内核和片上系统的所有外设的中断相关的功能。(core_cm3.h) NVIC 结构体定义,来自固件库头文件:core_cm3.h1 typedef struct {2 __IO uint32_t ISER[8]; // 中断使能寄存器3 uint32_t RESERVED0[24];4 __IO

2020-08-03 11:24:44 423

翻译 stm32F10x_固件库文件包含,固件库编程模板

//截取于野火视频

2020-07-27 18:16:04 267

原创 stm32F10xx_点灯进阶

#ifndef #define #endif 防止该头文件被重复引用具体用法例如引用头文件stm32f10xx.h#ifndef __STM32F10XX_H#define __STM32F10XX_H头文件内容#endif /* __STM32F10XX_H */main.c#include "stm32f10xx.h"#include "stm32f10xx_gpio.h"int main(void){#if 0 //存储器映射,直接访问内存地址 //打开APB2总线

2020-07-27 15:44:59 390 1

原创 stm32F10xx_操作内存点灯

假如我们的开发板LED灯电路是这样的,我们来点亮绿灯流程:首先要把PB0置0才能点亮,就要用到输出数据寄存器ODR来控制PB0来输出0。假设我们用到了GPIOB的ODR寄存器,但是要想输出的话。1)首先要有时钟(时钟是必要的心脏),找到时钟RCC寄存器控制APB2外设时钟使能寄存器并打开(因为GPIOB外设在APB2总线上)。2)时钟有了,我们还要控制端口配置低寄存器配置成输出模式(stm32有输入输出模式,需要控制)。3)最后让ODR寄存器输出0。具体代码:#include "stm32f

2020-07-26 15:40:47 326

原创 stm32F10xx_寄存器映射

最小系统电源(VBAT VDD VSS VDDA VSSA VREF+ VREF-)等晶振IO(主晶振IO,RTC晶振IO)下载IO(用于JTAG下载的IO:JTMS、JTCK、JTDI、JTDO、NJTRST)BOOT IO(BOOTIO、BOOTI,用于设置系统的启动方式)复位IO(NRST,用于外部复位)这5部分IO组成的系统称为最小系统。F10xx系统框图黄色部分是ARM内核部分,右边是stm32的外设部分。ICode:内核必须要通过ICode总线来读取FLASH里编译好的指令

2020-07-25 20:01:50 396

转载 vim默认信息编写

很多程序员都想给自己的程序添加一些作者信息之类的信息,那么我们应该怎么实现这个要求呐?已shell脚本为例,只需要修改/etc/vimrc配置文件,在文件末尾添加如下内容即可注:vimrc文件中,注释行是以"标记的,否则会报错"当按F4键时添加作者信息,如果需要在添加一个python可以添加F5map <F4> ms:call TitleDet()<cr>'sfunction AddTitle() call append(0,"#!/bin/bash") c

2020-07-16 13:49:08 172

原创 shell指令进阶

ls#ls -la:显示该目录下所有的文件,文件夹信息,包含隐藏文件 .amkdir#mkdir -p project/test/hello:创建多层目录,这个例子是在这个目录下创建了project下的test下的hello。cp#cp -r ./project …/test:把本目录下的project目录所有文件复制到上一级目录下的test,test自动创建。clear#clear : 清屏。wc#wc -lwc 文件路径查看文件内容有多少行(lines),多少单词(words

2020-07-16 10:24:42 447

原创 sshd服务安装

ubuntu下#apt-get install openssh-server可能要使用root用户权限:# sudo apt-get install openssh-server安装完启动服务:# /etc/init.d/sshd startputty等软件连接被拒绝的原因之一

2020-07-14 09:37:58 306

原创 arm-linux-gcc4.4.3.tar.gz交叉编译环境

友善之臂压缩包的wget下载#wget http://112.124.9.243/arm9net/mini2440/linux/arm-linux-gcc-4.4.3-20100728.tar.gz比较慢,建议直接网页下载http://www.arm9.net/download.asp1,解压文件#tar zxvf arm-linux-gcc-4.4.3.tar.gz -C/( 直接解压后就可以,-C/会让解压的文件自动放在根目录下指定路径,不用管)。2,解压过程中可以看到解压的具体路径。3,添

2020-07-13 10:54:49 1071

原创 Makefile的简易编写

需要知道的gcc简单流程{gcc -E main.c -o main.i //预处理,生成.i文件gcc -S main.i -o main.s //编译,生成汇编文件.sgcc -c main.s -o main.o //汇编生成目标文件.o}makefile框架:target:dependencies //依赖关系command //具体操作流程make优点在linux中,我们编译用到了gcc编译。一般情况下,假如有一个main

2020-07-07 17:39:55 324

原创 windows,linux下的git使用

1)git流程图2)创建本地仓库windows:创建一个文件夹作为本地仓库地址,可以去官网下载git,然后创建本地仓库也可以利用git命令行创建创建完成是这个样子我们可以把工作区的文件添加到我们的本地仓库中/**********************************************/linux下ubuntu为例:下载git:#apt-get install git看版本信息:#git --version绑定用户:#cd etc/gitconfig#git con

2020-07-07 11:09:07 286

空空如也

空空如也

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

TA关注的人

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