自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

CodeAllen的技术博客

热爱软硬件编程/方法论/读书, IT咨询请公众号私信

  • 博客(694)
  • 资源 (10)
  • 论坛 (3)
  • 收藏
  • 关注

原创 嵌入式物联网交流圈(持续不间断更新)

私人的知识分享平台,最近刚开始维护,难免有所欠缺,大家多见谅,目前价格是99元,任何疑问可以私聊我,比如觉得价格贵之类,理由合理我可以免费赠送,还是那句话,知识无价,时间无价(在尽可能早的时候掌握就是优势)福利的话我大致总结了几个,当然还有很多需要加入的同学自己体会可以一对一向Allen(康哥)提问,得到专属解答 号主和嘉宾持续分享技术经验 号主精心整理的学习及提升资源 号主副业及写作心得输出 高质量的志同道合的小伙伴持续交流平台 持续更新。。。微信扫描二维码即可加入,不了解

2021-07-03 09:59:52 1883

原创 我的工程师进阶之路 - 2021更新

修改日期:2019年10月11日我补充了时间轴,从进入大学,不知不觉6年就这样匆匆而过,与其感叹我更想抓紧之后的时间,不知道接下来的六年能创造什么出来,之后每半年补充一次。2013年9月,我开始了大学生涯 我自己是电子信息工程专业毕业,专业原则上来说比较偏“硬”一点,事实上我从大二就开始学习嵌入式,从51入门顺便学了C语言和电路板设计制作(如何更快的学...

2019-10-11 21:51:23 16115 25

原创 推荐优秀书籍系列(C/C++/Java/Python/Linux/算法等)(2021更新)

最近工作需要开始了解下FreeBSD,搜索了很多资料进行了总结参考资料:https://blog.csdn.net/dankes/article/details/2822669https://blog.csdn.net/charleyhuman/article/details/1316999https://linux.cn/article-5927-1.html?prhttp:...

2018-09-05 21:30:35 20764

转载 嵌入式操作系统介绍之 NuttX

目录1 NuttX 实时操作系统2 关键特征3 支持的平台4 支持的板卡5 文件系统6 设备驱动7 C/C++ 库8 网络9 Flash 支持10 USB 支持11 图形支持12 插件13 开发环境14 链接1 NuttX 实时操作系统NuttX 是一个实时操作系统(RTOS),强调标准兼容和小型封装,具有从8位到32位微控制器环境的高度可扩展性。NuttX 主要遵循 Posix 和 ANSI 标准,对...

2021-07-27 08:27:23 120

转载 Gitee和GitHub的区别

Gitee和GitHub的区别GitHub是全英文并且用户基数多,知名的库也多,而Gitee全是中文,而且大部分用户都是国人,优秀的库相对于GitHub也少,在国内访问Github偶尔会有不稳定情况,而Gitee不会出现不稳定情况。GitHubGitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub。GitHub 于 2008 年 4 月 10 日正式上线,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅...

2021-07-27 00:23:22 11

转载 Windows中常用的git GUI客户端的介绍

我是2013年上的大学,大一便接触到了嵌入式物联网实验室

2021-07-27 00:19:31 21

转载 错误“a label can only be part of a statement and a declaration is not a statement”解决方法

本文转自知乎:http://www.zhihu.com/question/20187195 Milo Yip大神的回答 #include <stdio.h> int main() { for (float y = 1.5f; y > -1.5f; y -= 0.1f) { for (float x = -1.5f; x < 1.5f; x += 0.05f) { float a = x * x + y * y - .

2021-07-27 00:12:37 18

转载 50.使用TCP协议进行路由跟踪

当目标主机禁止 ping 时,就无法通过 ICMP 请求包进行路由跟踪,这时可以借助 TCP 协议实施跟踪。用户可以使用 netwox 工具提供的相关模块发送 TCP 包,与目标主机连接,然后通过返回的响应来判断经过的路由信息。构造TCP包进行路由跟踪通过 TCP 包进行路由跟踪实际上也是构造一个 [SYN] 包,向目标主机进行发送,通过控制 TTL 值,从而获取路由信息。例如,向目标主机发送 [SYN] 包后,到达经过的路由器时,TTL 值已经变为 0,但还没有到达目标主机,则该路由器将返回表

2021-07-17 19:38:49 25

转载 49.使用TCP协议检测防火墙

为了安全,主机通常会安装防火墙。防火墙设置的规则可以限制其他主机连接。例如,在防火墙规则中可以设置 IP 地址,允许或阻止该 IP 地址主机对本机的连接;还可以设置监听端口,允许或阻止其他主机连接到本地监听的端口。为了清楚地了解目标主机上是否安装防火墙,以及设置了哪些限制,netwox 工具提供了编号为 76 的模块来实现。它通过发送大量的 TCP[SYN] 包,对目标主机进行防火墙探测,并指定端口通过得到的响应包进行判断。如果目标主机的防火墙处于关闭状态,并且指定的端口没有被监听,将返回 [RST,

2021-07-17 19:37:28 15

转载 48.防止使用TCP协议扫描端口

为了防御攻击者对主机端口的扫描,可以干扰攻击者的判断。例如,当扫描未开放的端口时,也返回 [SYN,ACK] 包,使攻击者认为该端口是开放的。防御扫描干扰需要使用 netwox 工具中编号为 79 的模块。【实例】已知主机 A 的 IP 地址为 192.168.59.135,主机 B 的 IP 地址为 192.168.59.131。在主机 192.168.59.135 上实施防御扫描。1) 查看主机 A 当前监听的端口,执行命令如下:root@daxueba:~# netstat -l输出

2021-07-17 19:35:15 26

转载 47.使用TCP协议批量扫描端口

在 TCP 协议中,计算机与计算机之间的通信都是通过端口识别进行传输的,不同的应用程序使用的端口也不同,通过判断开放的端口,可以了解目标主机运行哪些程序。通过构造 TCP Ping 包实施扫描可以判断端口是否开放,但它一次只能判断一个端口。下面将讲解如何批量扫描端口,以判断端口的开放情况。构造 TCP 端口扫描包TCP 端口扫描也是构造的是 TCP 连接中的第 1 次握手包 [SYN] 包。如果端口开放,将返回第二次握手包 [SYN,ACK];如果端口未开放,将返回 [RST,ACK] 包。用户

2021-07-17 19:33:34 17

转载 46.使用TCP协议扫描主机

当客户端与服务器不再进行通信时,都会以 4 次挥手的方式结束连接。本节将介绍 4 次挥手的过程。第 1 次挥手客户端向服务器端发送断开 TCP 连接请求的 [FIN,ACK] 报文,在报文中随机生成一个序列号 SEQ=x,表示要断开 TCP 连接,如图所示。第 2 次挥手当服务器端收到客户端发来的断开 TCP 连接的请求后,回复发送 ACK 报文,表示已经收到断开请求。回复时,随机生成一个序列号 SEQ=y。由于回复的是客户端发来的请求,所以在客户端请求序列号 SEQ=x的基础上.

2021-07-17 19:30:07 15

原创 i.MX6ULL 系列处理器简介

NXP的i.MX 6ULL系列芯片是一款基于ARM Cortex A7内核的低功耗高性能且低成本的应用处理器,下面是imx6ull处理器的内部功能框图:主要特性如下:ARM Cortex-A7内核可达900 MHz, 128 KB L2缓存。 并行24bit RGB LCD接口,可以支持1366*768分辨率。 8/10/16位 并行摄像头传感器接口(CSI)。 2个MMC 4.5/SD 3.0/SDIO 接口。 2个USB 2.0 OTG, HS/FS, Device or Ho.

2021-07-17 18:40:50 224

原创 SMART - 实现目标任务的5种方法

人们总是喜欢给自己设定目标,但是设定目标并不是就可以实现,这需要专注于目标,并采用合适的方法才能实现它SMART就是其中一种很流行的方法,它来自于咨询领域,SMART代表的是:具体的(Specific)可度量的(Measurable)可实现的(Achievable)相关的(Relevant)时间可控的(Time-boxed)对于任何问题,原则上都需要制定计划,技术还是保证目标实现最有利的武器你要知道,目标只是一种理想状态,通常是短期的,是要努力才能到达的状态,而目标任

2021-07-17 18:33:35 184

原创 创业技能学习网站总结

在行「在行」是全国首创的一对一约聊 App,为用户提供个性化咨询服务、建立与行家之间的深度连接。公司2015年由果壳网孵化,后获得腾讯、红杉、元璟等知名风险资本投资。平台目前已入驻万余名精选行家,覆盖行业经验、个人成长、职场规划、投资理财、市场公关、健康管理、生活方式等70余类话题。公司提供九大城市线下约聊,全国远程通话服务。三节课中国领先的数字化人才战略服务商,面向企业和个人用户提供以 “内容+服务+平台” 为核心的数字化人才战略解决方案人人都是产品经理人人都是产品经理

2021-07-17 18:17:04 178

原创 创业空间/孵化器

联合创业办公社People Squared (P2)于2010年成立,由郑健灵(Bob Zheng)发起创立,至今已在上海、北京、深圳、杭州、宁波、成都等地开设了近40个联合办公空间,总入驻团队数量超过800家,累计服务的创业者也多达4万名,承载诞生了诸如优酷土豆、太合音乐集团、足记、Billboard China、活动行、新氧、猩便利、简书、中国加速、新车间、阅面科技等团队。WalnutWALNUT联合办公社区成立于2015年1月,面向自由职业者、中小型公司、创业者、文化创意等群体。区别于

2021-07-17 18:04:33 183

原创 云服务平台

UCloud七牛云leancloud游密通讯云新浪云DaoCloud

2021-07-17 11:45:24 15

原创 在线协作平台

TowerTeambition

2021-07-17 11:35:46 15

原创 网站/APP统计分析工具及教程

Google Analytics(分析)Google Analytics(分析)是一款免费的应用衡量解决方案,可提供关于应用使用情况和用户互动度的数据分析。The Absolute Beginner's Guide to Google Analytics(Google Analytics初学者指南)Get started with Analytics(官网手册)Google Analytics Academy(视频教程)谷歌流量分析工具Google Analytics使用方法指南教程

2021-07-17 11:28:36 24

转载 strcpy()函数详解

strcpy()函数是C语言中的一个复制字符串的库函数,以下将详细解释说明一下:函数声明以及实现代码char *strcpy(char *dst, const char *src);char * strcpy(char *dst,const char *src) { if((dst==NULL)||(src==NULL)) return NULL; char *ret = dst; //[1] while ((*ds...

2021-07-15 22:51:58 56

转载 C语言read()函数:读文件函数

头文件:#include <unistd.h>定义函数:ssize_t read(int fd, void * buf, size_t count);函数说明:read()会把参数fd 所指的文件传送count 个字节到buf 指针所指的内存中. 若参数count 为0, 则read()不会有作用并返回0. 返回值为实际读取到的字节数, 如果返回0, 表示已到达文件尾或是无可读取的数据,此外文件读写位置会随读取到的字节移动.附加说明:如果顺利 read()会返回实际读到的字节数, 最好能将返回

2021-07-15 22:47:32 35

转载 Vim快捷键

Vim的一些快捷键记录:一、移动光标按键 功能 说明 h,j,k,l 上,下,左,右 ctrl-e 移动页面 ctrl-f 上翻一页 ctrl-b 下翻一页 ctrl-u 上翻半页 ctrl-d 下翻半页 w 跳到下一个字首,按标点或单词分割 W 跳到下一个字首,长跳,如end-of-line被认为是一个字 e 跳到下一个字尾 E 跳到下一个字尾,长跳 b 跳到上一个字 B

2021-07-15 21:54:23 20

转载 vi/vim编辑器必知必会

一、我们为什么要学习vim编辑器?Linux的命令行界面下面有非常多的文本编辑器。比如经常听说的就有Emacs、pico、nano、joe与vim等。vim可以看做是vi的高级版。我们为什么一定要学习vim呢?有以下几个原因:(1)所有的Unix like系统都会内置vi文本编辑器,其他的文本编辑器则不一定会存在。(2)很多软件的编辑接口都会主动调用vi。(3)vim具有程序编辑的能力,可以主动以字体颜色辨别语法的正确性,方便程序设计。(4)程序简单,编辑速度快。二、下面先介绍一

2021-07-15 21:49:04 60

转载 C语言open()函数:打开文件函数

头文件:#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h>定义函数: int open(const char * pathname, int flags); int open(const char * pathname, int flags, mode_t mode);函数说明:参数 pathname 指向欲打开的文件路径字符串. 下列是参数flags 所能...

2021-07-15 21:42:00 40

转载 prctl()函数应用

对于多线程应用程序,如果能够给每个线程命名,那么调试起来的便利是不言而喻的。今天看LWN上的周报,看到有人正在给prctl添加给进程内其它线程命名的接口,并从中得知,给线程自身命名的接口已经存在,不由窃喜,遂写下以下验证代码:#include#include#includevoid* tmain(void *arg){ char name[32]; prctl(PR_SET_NAME, (unsigned long)"xx"); prctl(PR_GET_NAME, (unsi..

2021-07-14 22:26:01 16

转载 ntohs, ntohl, htons,htonl对比详解

ntohs =net to host short int 16位htons=host to net short int 16位ntohl =net to host long int 32位htonl=host to net long int 32位网络字节顺序NBO(Network Byte Order)按从高到低的顺序存储,在网络上使用同一的网络字节顺序,可避免兼容性问题;主机字节顺序HBO(Host Byte Order)不同的机器HBO不相同,与CPU的设计有关,数据的顺序是由CP

2021-07-14 22:17:20 29

转载 SATA、mSATA、M.2、M.2(NVMe)、PCIE固态硬盘接口详解

固态硬盘概念固态驱动器(Solid State Drive),俗称固态硬盘,固态硬盘是用固态电子存储芯片阵列而制成的硬盘,因为台湾英语里把固体电容称之为Solid而得名。SSD由控制单元和存储单元(FLASH芯片、DRAM芯片)组成。固态硬盘在接口的规范和定义、功能及使用方法上与普通硬盘的完全相同,在产品外形和尺寸上也完全与普通硬盘一致。被广泛应用于军事、车载、工控、视频监控、网络监控、网络终端、电力、医疗、航空、导航设备等诸多领域。其芯片的工作温度范围很宽,商规产品(0~70℃)工规产品(-4

2021-07-13 21:28:34 54

转载 C语言access()函数:判断是否具有存取文件的权限

相关函数:stat, open, chmod, chown, setuid, setgid头文件:#include <unistd.h>定义函数:int access(const char * pathname, int mode);函数说明:access()会检查是否可以读/写某一已存在的文件。参数mode 有几种情况组合:1、R_OK, W_OK, X_OK和F_OK. R_OK, W_OK 与X_OK 用来检查文件是否具有读娶写入和执行的权限。2、F_OK 则是用来判断该文件是.

2021-07-13 21:13:04 39

转载 线程取消(pthread_cancel)

基本概念pthread_cancel调用并不等待线程终止,它只提出请求。线程在取消请求(pthread_cancel)发出后会继续运行,直到到达某个取消点(CancellationPoint)。取消点是线程检查是否被取消并按照请求进行动作的一个位置.与线程取消相关的pthread函数int pthread_cancel(pthread_t thread)发送终止信号给thread线程,如果成功则返回0,否则为非0值。发送成功并不意味着thread会终止。int pthread_setcancel

2021-07-12 21:18:59 22

转载 pthread_attr_init线程属性

1.线程属性线程具有属性,用pthread_attr_t表示,在对该结构进行处理之前必须进行初始化,在使用后需要对其去除初始化。我们用pthread_attr_init函数对其初始化,用pthread_attr_destroy对其去除初始化。 名称:: pthread_attr_init/pthread_attr_destroy 功能: 对线程属性初始化/去除初始化 头文件: #inclu

2021-07-12 21:14:00 24

转载 多线程之pthread_create()函数

总述:pthread_create是(Unix、Linux、Mac OS X)等操作系统的创建线程的函数。它的功能是创建线程(实际上就是确定调用该线程函数的入口点),在线程创建以后,就开始运行相关的线程函数。pthread_create的返回值表示成功,返回0;表示出错,返回表示-1。pthread_create函数如何创造线程函数原型声明:#include <pthread.h>int pthread_create( pthread_t *res

2021-07-12 21:05:34 25

转载 pthread_setschedparam(设置线程的优先级)

在linux下我们可以通过int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void*), void *arg);来创建线程,但是如何设置线程的优先级呢?在讨论这个问题的时候,我们先要确定当前线程使用的调度策略,posix提供了int pthread_attr_getschedpolicy(const pthread_attr_t *attr, int *po.

2021-07-12 21:00:11 20

转载 pthread_attr详解

Posix线程中的线程属性pthread_attr_t主要包括scope属性、detach属性、堆栈地址、堆栈大小、优先级。在pthread_create中,把第二个参数设置为NULL的话,将采用默认的属性配置。线程属性结构如下:typedef struct{ int detachstate; 线程的分离状态 int schedpolicy; 线程调度策略

2021-07-12 20:52:36 16

转载 pthread_attr_setinheritsched,pthread_attr_setschedparam函数详解

线程优先级属性在任务的概念当中由于运行的需求,我们常常需要给任务一定分类,在系统里面就诞生出来所谓线程优先级实时线程 单位时间相应能力强,里面拥有1-99个静态优先级,数字越大,优先级越高(所谓的优先级指的经过特殊的处理,我们可以让某个人物能够在系统中被更优先的响应,从而分出的从高到低的级别),需要有管理员权限才能启动实时线程特点:实时线程分99个静态优先级,数字越大,优先级越高高优先级的实时线程会完全抢占低优先级实时线程的资源(指令运行资源)在实时线程当中支持抢占调度策略...

2021-07-12 20:44:33 155

转载 pthread_attr_init () 函数详解

1.【线程属性】线程具有属性,用pthread_attr_t表示,在对该结构进行处理之前必须进行初始化,在使用后需要对其去除初始化。调用pthread_attr_init之后,pthread_t结构所包含的内容就是操作系统实现支持的线程所有属性的默认值。如果要去除对pthread_attr_t结构的初始化,可以调用pthread_attr_destroy函数。如果pthread_attr_init实现时为属性对象分配了动态内存空间,pthread_attr_destroy还会用无效的值初始化属性对象,

2021-07-12 20:33:44 20

原创 <ctype.h> - isgraph()

作用:判断一个字符是否是图形字符声明:int isgraph(int c);参数:要检测的字符。它可以是一个有效的字符(被转换为 int 类型),也可以是 EOF(表示无效的字符)。返回值:返回值为非零(真)表示c是图形字符,返回值为零(假)表示c不是图形字符。实例:#include <stdio.h>#include <ctype.h>int main () { int var1 = '3'; int var2 = 'm'; in...

2021-07-07 21:45:24 26

原创 <ctype.h> - isdigit()

作用:判断一个字符是否是十进制数字声明:int isdigit(int c);参数:要检测的字符。它可以是一个有效的字符(被转换为 int 类型),也可以是 EOF(表示无效的字符)。返回值:返回值为非零(真)表示c是十进制数字,返回值为零(假)表示c不是十进制数字。实例:#include <stdio.h>#include <ctype.h>int main () { int var1 = 'h'; int var2 = '2';...

2021-07-07 21:40:49 23

原创 <ctype.h> - iscntrl()

作用:判断一个字符是否是控制字符声明:int iscntrl(int c);参数:要检测的字符。它可以是一个有效的字符(被转换为 int 类型),也可以是 EOF(表示无效的字符)。返回值:返回值为非零(真)表示c是控制字符,返回值为零(假)表示c不是控制字符。实例:#include <stdio.h>#include <ctype.h>int main () { int i = 0, j = 0; char str1[] = "all

2021-07-07 21:34:54 18

原创 <ctype.h> - isalpha()

作用:检查所传的字符是否是字母声明:int isalpha(int c);参数:要检测的字符。它可以是一个有效的字符(被转换为 int 类型),也可以是 EOF(表示无效的字符)返回值:返回值为非零(真)表示c是字母,返回值为零(假)表示c不是字母。实例:#include <stdio.h>#include <ctype.h>int main () { int var1 = 'd'; int var2 = '2';

2021-07-07 21:27:48 19

原创 <ctype.h> - isalnum()

作用:C 库函数 int isalnum(int c) 检查传递的字符是否为字母或者十进制数字。如果仅仅检测一个字符是否是字母,可以使用 isalpha() 函数;如果仅仅检测一个字符是否是十进制数字,可以使用 isdigit() 函数。如果一个字符被 isalpha() 或者 isdigit() 检测后返回“真”,那么它被 isalnum() 检测后也一定会返回“真”。声明:int isalnum(int c);参数:c: 要检测的字符。它可以是一个有效的字符(被转换为 int

2021-07-07 21:19:27 21

STM32F103c8t6最小系统(AD)

STM32F103c8t6最小系统(AD) STM32F103c8t6最小系统(AD)

2017-11-21

Modbus调试精灵1.024.rar

Modbus调试精灵1.024.rar-

2018-11-11

VC++2010权威开发指南源代码

VC++2010权威开发指南源代码 VC++2010权威开发指南源代码

2017-11-21

modbus主机源码.rar

modbus主机源码.rar。

2018-11-11

Modbus通信协议.pdf

Modbus通信协议。。

2018-11-11

spi读写历程

/*功能: 从高到低接收一个字节,高位先接收*/ /*输出: 接收到的数据*/ /*下降沿时,数据出现在SO,低电平的时候把数据读到*/

2017-09-29

RKF30-60系列.pdf

之前去中发买的电源,价格150 基本参数:18-36输入,稳定12输出 效果很好,几乎没有跳变

2019-06-06

完整版UCOS-II V2.52源代码

完整版UCOS-II V2.52源代码 完整版UCOS-II V2.52源代码

2017-11-21

CRC16检验小工具 1.1绿色版.rar

CRC16检验小工具 1.1绿色版.rar

2018-11-11

C语言程序设计-现代方法 配套源码

《C语言程序设计:现代方法(第2版)》是C程序员的理想参考书,在国外也被众多大学采用为C语言课程的教材。

2017-09-29

opo7c 运算放大器 电路问题

发表于 2018-06-01 最后回复 2020-05-16

Allen李康的留言板

发表于 2020-01-02 最后回复 2020-05-15

在linux中调用XML文件

发表于 2018-06-20 最后回复 2018-06-24

空空如也

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

TA关注的人 TA的粉丝

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