猪哥-嵌入式
码龄9年
  • 1,693,973
    被访问
  • 346
    原创
  • 784
    排名
  • 1,770
    粉丝
关注
提问 私信
  • 加入CSDN时间: 2013-10-07
博客简介:

猪哥的专栏

查看详细资料
  • 6
    领奖
    总分 2,729 当月 103
个人成就
  • 博客专家认证
  • 获得1,152次点赞
  • 内容获得229次评论
  • 获得4,539次收藏
创作历程
  • 13篇
    2022年
  • 53篇
    2021年
  • 42篇
    2020年
  • 94篇
    2019年
  • 41篇
    2018年
  • 83篇
    2017年
  • 20篇
    2016年
  • 33篇
    2015年
成就勋章
  • 入选《嵌入式领域内容榜》第41名
TA的专栏
  • 操作系统
    11篇
  • FreeRTOS
    3篇
  • mDNS
    1篇
  • Unix/Linux环境编程
    31篇
  • Java
    1篇
  • TLS
    4篇
  • go
    3篇
  • OPC UA
    1篇
  • NUC980
    1篇
  • Linux
    98篇
  • ARM
    39篇
  • 嵌入式
    43篇
  • C/C++
    57篇
  • uC/OS
    8篇
  • 电子技术
    44篇
  • 阿里云IOT
    16篇
  • M-BUS
    2篇
  • Linux-0.11注解
    2篇
  • U-boot
    20篇
  • Makefile
    17篇
  • 自动控制
    3篇
  • MQTT
    16篇
  • 程序人生
    9篇
  • TCP/IP
    12篇
  • 超低功耗-STM32L
    6篇
  • SQLite
    7篇
  • git
    5篇
  • 算法与数据结构
    3篇
兴趣领域 设置
  • 数据库管理
    数据仓库
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

FreeRTOS系列文章(3): 为什么将SysTick和PendSV的优先级设置为最低

FreeRTOS系列(1):基础知识——中断嵌套FreeRTOS系列文章(2):PendSV功能,为什么需要PendSV前言在上一篇文章中,我们详细分析了PendSV的功能,也分析了SysTick和PendSV结合,实现OS任务调度,简单的分析了SysTick的优先级。我觉得有必要针对SysTick的优先级,单独写一篇文章分析。结论概述嵌入式实时OS的【实时】不仅仅是OS对任务调度及时,更重要的是要求嵌入式OS具有【可剥夺/抢占】的特性,既允许高优先级任务抢占低优先级任务,又要允许外部中断能够抢占
原创
发布博客 2022.05.17 ·
202 阅读 ·
0 点赞 ·
0 评论

FreeRTOS系列文章(2):PendSV功能,为什么需要PendSV

背景大多数嵌入式RTOS在Cortex-M3/M4上的移植都需要PendSV,比如uCOS、RT-Thread、FreeRTOS等,本文就对PendSV的功能作用,以及为什么需要PendSV进行详细的分析。PendSV是什么?我们先引用《Cortex-M3权威指南》对PendSV的介绍:PendSV(可悬起的系统调用),它是一种CPU系统级别的异常,它可以像普通外设中断一样被悬起,而不会像SVC服务那样,因为没有及时响应处理,而触发Fault。个人理解PendSV的英文全称应该是:Pend S
原创
发布博客 2022.05.17 ·
44 阅读 ·
1 点赞 ·
0 评论

FreeRTOS系列(1):基础知识——中断嵌套

背景我们在单片机编程,嵌入式RTOS编程,甚至其他OS下的系统编程时,可能会忽略“中断嵌套”背景知识,在之前的工作和编码过程中,我也没有深入的了解或者注意过“中断嵌套”,直到当我想要深入了解嵌入式RTOS的运行原理时,才发现,原来“中断嵌套”的概念是如此的重要,以至于各种RTOS的基础配置,以及设计,都是围绕着“中断嵌套”的机制来设计和配置的。什么是中断嵌套中断嵌套的书面解释如下:中断嵌套指中断系统正在执行一个中断服务L时,有另一个优先级更高的中断H触发,这时中断系统会暂时中止当前正在执行低优先级
原创
发布博客 2022.05.15 ·
147 阅读 ·
0 点赞 ·
0 评论

mDNSResponder源码地址

苹果官方 mDNSResponder 源码地址记录如下:Apple mDNSResponder源码地址
原创
发布博客 2022.04.27 ·
193 阅读 ·
0 点赞 ·
0 评论

一个非常好的各种算法动画图演示网站

http://www.u396.com/wp-content/collection/data-structure-visualizations/
原创
发布博客 2022.04.23 ·
67 阅读 ·
0 点赞 ·
0 评论

AliOS Things代码风格

原地址AliOS Things代码风格1. 前言本文是AliOS Things提供的一套C语言代码规范,适用的对象为符合C99标准的C语言工程。2. 命名本节内容均为建议,不作强制要求。2.1. 总则各种命名均使用英文单词及其缩写,非特殊情况不能使用汉语拼音或其他语言。2.2. 文件命名文件名全部使用小写字母,用_连接。源文件使用.c后缀。头文件使用.h后缀。2.3. 类型命名2.3.1. 简单类型命名使用typedef自定义的简单类型命名全部使用小写字母,用_连接,以_t结尾。
转载
发布博客 2022.04.23 ·
21 阅读 ·
0 点赞 ·
0 评论

深入理解Linux 条件变量4:pthread_cond_signal惊群现象及解决方法(while判断)

前言
原创
发布博客 2022.03.31 ·
322 阅读 ·
0 点赞 ·
0 评论

深入理解Linux 条件变量3:条件变量为什么要配合着锁使用?

https://zhuanlan.zhihu.com/p/55123862为什么要与pthread_mutex 一起使用呢? 这是为了应对 线程1在调用pthread_cond_wait()但线程1还没有进入wait cond的状态的时候,此时线程2调用了 cond_singal 的情况。 如果不用mutex锁的话,这个cond_singal就丢失了。加了锁的情况是,线程2必须等到 mutex 被释放(也就是 pthread_cod_wait() 释放锁并进入wait_cond状态 ,此时线程2上锁) 的
原创
发布博客 2022.03.30 ·
371 阅读 ·
0 点赞 ·
0 评论

深入理解Linux 条件变量2:使用条件变量实现[生产-消费]框架

前言
原创
发布博客 2022.03.29 ·
252 阅读 ·
0 点赞 ·
0 评论

深入理解Linux 条件变量1:使用场景、接口说明

背景
原创
发布博客 2022.03.29 ·
342 阅读 ·
0 点赞 ·
0 评论

Linux时间相关知识小结:struct timeval、timespec、gettimeofday、time、localtime....

前言我们在linux平台进行开发时,时间相关的操作基本上都会遇到,本文就对常用的时间相关的结构体、接口进行分析小结。常见类型、结构体定义timespec原型struct timespec{ __time_t tv_sec; /* Seconds. 秒 */ __syscall_slong_t tv_nsec; /* Nanoseconds. 纳秒*/};说明该结构体只是包括秒和纳秒,并没有任何其他含义,比如1970年以来的秒数等。只是个存放空间。为clock_gettime的
原创
发布博客 2022.02.06 ·
805 阅读 ·
0 点赞 ·
0 评论

Visual Paradigm简单教程(2):绘制序列图

Visual Paradigm简单教程(1):绘制状态机图1. 前言在上一篇文章中,介绍了使用Visual Paradigm简单教程(1):绘制状态机图,本文我们接着介绍如何使用visual paradigm绘制序列图。2. 相关概念2.1 序列图概念所谓序列图可以理解为软件不同部分,比如组件之间的交互序列图,序列2字说明了交互序列流程,比如我们想要描述一个软件的使用顺序、业务流程顺序等待,都可以通过序列图来实现。2.2 生命线这里使用“生命线”可能不够形象,个人理解 应该称为 节点,即序列图
原创
发布博客 2022.01.15 ·
1048 阅读 ·
3 点赞 ·
1 评论

Visual Paradigm简单教程(1):绘制状态机图

1. 前言最近发现了一款堪称宝藏的软件:visual paradigm,这个软件是一款强大的UML工具,UML的意思是统一建模。使用这个软件可以画流程图、状态机图、序列图,不过不知道为什么,这个软件的教程非常少,本系列文章简单讲述该软件如何使用。2. 绘制状态机图步骤2.1 状态机机制关键概念state/状态状态是对象生命期间的条件,在此期间它满足某些条件,执行某些活动或等待某些外部事件,简单的说就是我们状态机里的状态。event/事件触发状态转换的条件transition/过渡两个状态之
原创
发布博客 2022.01.15 ·
1047 阅读 ·
2 点赞 ·
0 评论

int、long、long int、long long、uint64_t字节长度

前言我们在进行编程时,对于int、long、long long经常使用,但是对于这些类型占用的字节长度可能不会太确定,尤其是在32位平台、64位平台,会有差异,这些知识点为基础知识,容易忽略的基础知识,本文做下分析记录。不同平台整型字节长度区别平台/类型charshortintlonglong long16位1224832位1244864位12488小结在32位平台下,int型和long型是一致的,都是占用4个字节。lo
原创
发布博客 2021.12.19 ·
1600 阅读 ·
0 点赞 ·
0 评论

为什么要使用git,git架构分析

前言本文面向的是像作者一样,是git小白的程序员,很多程序员是不使用git的,这很正常,比如嵌入式程序员,嵌入式程序员一般使用IDE进行开发,比如MDK、IAR等,嵌入式的软件程序相比较互联网的程序,代码量要少很多,功能也相对简单,再加上小厂很多也没有使用git的习惯,所以就会出现前面所说的,很多程序员不使用git。当然啦,git只是一个工具,会与不会也不能代表什么,程序员的能力还是要靠代码来体现的。git应用场景git的介绍在网上有太多,就算是不太熟悉git的程序员大概也知道git是一种版本管理工具
原创
发布博客 2021.11.21 ·
517 阅读 ·
0 点赞 ·
0 评论

C语言函数参数:一级指针、二级指针的应用小结

在之前的文章 《二级指针的作为函数形参的深入理解》 我们分析了二级指针的使用,这里我们再简单的的做个小结。一级指针作为入参一级指针作为入参,在函数内部是要对该指针进行 简介引用,操作一级指针指向的内存,也就是这个入参的是直接 引用和修改的。不能作为 内存地址返回。 ,如果想要返回一个地址,可以直接让函数进行返回。// 错误 -- 指针是[传值调用]int func(char *p){ char *a = malloc(10*sizeof(char)); p = a; // 指针是传值调用
原创
发布博客 2021.10.24 ·
1958 阅读 ·
0 点赞 ·
0 评论

JAVA中调用C语言函数简单教程

这里写自定义目录标题背景知识本地代码历史原因本地代码的应用场景JNIJNI开发流程JNI头文件规则1. 使用native创建一个本地方法。2. 使用javac -h生成头文件3. 编写本地方法的C代码4. 在linux下,编写该C代码的动态库5. 在JAVA程序中加载步骤5中生成的类库,执行背景知识本地代码在JAVA中使用其他语言的代码(如C/C++)称为本地代码。历史原因JAVA的早期阶段,很多人认为使用C和C++来加速JAVA应用中的关键部分是个好主意,但是实际上,虽然JAVA的代码确实没有纯
原创
发布博客 2021.10.08 ·
454 阅读 ·
0 点赞 ·
0 评论

>/dev/null 2>&1分析

这里写自定义目录标题背景知识Linux中与输入输出相关的文件描述符Linux shell 输出重定向的目的Linux Bash支持的输出重定向语法背景知识Linux的重定向指的是[改变输入/输出的方向],一般情况下,我们都是从键盘读取用户输入的数据,然后再把数据拿到程序中使用,这就是标准的输入方向,反过来,程序也会产生数据,这些数据都是呈现在显示器上,这就是标准输出方向。简单的说:输入方向就是数据从哪里流向程序,数据默认从键盘流向程序,如果改变它的方向,数据就从其他地方流入,这就是输入重定向。
原创
发布博客 2021.08.16 ·
56 阅读 ·
0 点赞 ·
0 评论

字符串转数字函数 atol、atoll和strtol、strtoll、strtoul、strtoull 分析

前言在C/C++编程中,经常会遇到将字符串转换成数值的场景需求,其实在C标准库中已经给我们提供了很多功能函数。常用字符串转数值函数列表头文件#include <stdlib.h>ato-x函数名称含义相似功能函数double atof(const char *nptr)将字符串转换成double值strtod(nptr, NULL)int atoi(const char *nptr)将字符串转换成int值strtol(nptr, NULL, 10
原创
发布博客 2021.07.25 ·
563 阅读 ·
1 点赞 ·
2 评论

内存泄露和内存溢出的区别

前言对于程序员来讲,这是两个学术性的概念,虽然大多数人都会遇到,可能叫不上名字。内存泄露Memory Leak:指程序在申请内存后,用完后,没有释放。通俗解释1: 用完内存扔了,没有归还。通俗解释2: 甲向乙借了100万,花完,没有还。内存溢出Memory Overflow:指程序申请内存时,没有足够的内存共申请者使用。通俗解释1: 霸占了不属于你的资源。通俗解释2: 甲向乙借1000万,但是乙只有100万。...
原创
发布博客 2021.07.23 ·
74 阅读 ·
0 点赞 ·
0 评论
加载更多