自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

R先生一天不学习就浑身难受

Rome was not built in one day.

  • 博客(451)
  • 资源 (133)
  • 论坛 (4)
  • 收藏
  • 关注

原创 物联网简史

物联网是什么?物联网其实到目前为止也没有一个精确的定义,但通常会引用 2005年国际电信联盟(ITU)给出的描述:物联网(Internet of Things,简称 IoT)是通过射频识别(RFID)、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议,通过网络把任何物品与互联网连接起来,进行信息交换和通信,从而实现智能化识别、定位、跟踪、监控和管理的一种网络。简单来说,就是:物物相联的互联网。将其分解,其有两层含义:第一,物联网的核心和基础仍然是互联网,是在互联网基础上延伸和扩.

2021-04-01 23:55:54 1593 2

原创 从菜鸟到起飞的 RT-Thread 开发指南

Hello,大家好,我是 RT-Thread 宣传委员(自封的)????我经常给大家安利 RT-Thread,尤其是那些还没用上 RT-Thread、在纠结选择哪个 RTOS、要不要学习 RTOS 的朋友。RT-Thread 简介RT-Thread 是什么据不完全统计,世界有成千上万个 RTOS(Real-time operating system,实时操作系统),RT-Thread 就是其中一个优秀的作品。RT-Thread 内核的第一个版本是熊谱翔先生在 2006 年年初发布的 0.1 版本。

2020-12-26 03:56:51 3774 7

原创 Read the Docs 从懵逼到入门

继《GitBook 从懵逼到入门》,时隔两年,终于推出姐妹篇《Read the Docs 从懵逼到入门》。从阅读量来看,笔者已经感受到大家对 GitBook 和 Markdown 写作的关注度,所以决定再给大家介绍一种常见的文档管理方案 —— Sphinx + GitHub + Read the Docs 的文档管理方法。简单来说,就是先用 Sphinx 生成文档,然后用 GitHub 托管文档,再导入到 Read the Docs 生成在线文档。无论是管理技术文档、写书、写笔记,亦或想搭建一个属于你的

2020-10-11 00:16:46 1761 4

原创 10分钟入门 - 微信小程序开发

注册微信小程序如果你还没有微信公众平台的账号,请先进入微信公众平台首页,点击 “立即注册” 按钮进行注册。注册的账号类型可以是订阅号、服务号、小程序以及企业微信,我们选择 “小程序” 即可。接着填写账号信息,需要注意的是,填写的邮箱必须是未被微信公众平台注册、未被个人微信号绑定的邮箱,而且每个邮箱仅能申请一个小程序。激活邮箱之后,选择主体类型为 “个人类型”,并按要求登记主体信息。主体信息提...

2019-01-09 21:33:14 78467 17

原创 GitBook 从懵逼到入门

  本文从 “是什么”、“为什么”、“怎么办”、“好不好” 四个维度来介绍 GitBook,带你从黑暗之中走出来,get 这种美妙的写作方式。是什么?  在我认识 GitBook 之前,我已经在使用 Git 了,毋容置疑,Git 是目前世界上最先进的分布式版本控制系统。  我认为 Git 不仅是程序员管理代码的工具,它的分布式协作方式同样适用于很多场合,其中一个就是写作(这会是一个...

2018-07-18 16:36:57 150797 94

原创 开启终身学习之旅

Linux公社(LinuxIDC.com)于2006年9月25日注册并开通网站,Linux现在已经成为一种广受关注和支持的一种操作系统,IDC是互联网数据中心,LinuxIDC就是关于Linux的数据中心。Linux公社是专业的Linux系统门户网站,实时发布最新Linux资讯,包括Linux、Ubuntu、Fedora、RedHat、红旗Linux、Linux教程、Linux认证、SUSE ...

2016-04-27 21:42:37 3919 1

原创 Modbus 简介

什么是 ModbusModbus 是工业界常用的一种通讯协议,可以理解为是一种通讯的约定。Modbus 协议包括 RTU、ASCII、TCP,其中 Modbus-RTU 最常用,比较简单,在单片机上很容易实现。Modbus RTU 协议定义了一个与下层通信层无关的简单协议数据单元(PDU),串行链路上的 Modbus RTU 帧格式如下图所示。其中,地址字段只含有从机地址;功能码指示指令要执行何种操作;功能码的后续数据是请求或响应数据字段;差错检验字段是“报文内容”数据进行“循环冗余校验”计算所得.

2021-07-12 16:00:29 194

原创 【i.MX8 Linux】systemd 系统服务管理 - 开关机自动执行

Systemd 介绍Systemd 是目前 Linux 系统上主要的系统守护进程管理工具,由于 init 一方面对于进程的管理是串行化的,容易出现阻塞情况,另一方面 init 也仅仅是执行启动脚本,并不能对服务本身进行更多的管理。所以许多 Linux 发行版都由 systemd 取代了 init 作为默认的系统进程管理工具。设置开机自动执行假设需要在系统开机时自动运行一个基于 Qt 图形界面的应用程序,那么可以在 /etc/systemd/system 目录添加一个 autorun.service 文

2021-06-28 17:57:16 66

原创 gcc 命令详解及最佳实践

介绍GCC(英文全拼:GNU Compiler Collection)是 GNU 工具链的主要组成部分,是一套以 GPL 和 LGPL 许可证发布的程序语言编译器自由软件,由 Richard Stallman 于 1985 年开始开发。GCC 原名为 GNU C语言编译器,因为它原本只能处理 C 语言,但如今的 GCC 不仅可以编译 C、C++ 和 Objective-C,还可以通过不同的前端模块支持各种语言,包括 Java、Fortran、Ada、Pascal、Go 和 D 语言等等。编译过程GC

2021-06-12 15:48:57 1029 3

原创 为什么 STEM 很重要?STEM 教育对社会的影响

STEM education goes beyond school subjects. It gives a skill set that governs the way we think and behave. Merging science, technology, engineering, and mathematics, STEM education helps us to solve the challenges the world faces today. Let’s see what STE.

2021-06-10 12:50:37 279 3

原创 Shell 判断语句出错 [: ==: unexpected operator

有时候,原来运行得好好的 shell 程序,换个平台就运行不了,例如下面 shell 程序。#!/bin/shif [ $1 == "hello" ]; then echo "Well done!"fi在 Ubuntu 上运行,会出现如下的错误:[: ==: unexpected operator这是因为 shell 脚本开头使用 #!/bin/sh,而不是 #!/bin/bash。而 /bin/sh 使用的是 dash,dash 中默认的判断语句是 =,而不是 bash 使用的

2021-05-28 20:58:48 260

原创 【i.MX8 Linux】构建并安装 i.MX8 交叉编译工具链

使用 Yocto 可以构建一套特定硬件平台的 SDK,里面包含编译器、链接器、调试器和源码头文件等,通常也称它们为编译工具链(toolchain)。所谓的交叉编译,就是在某架构平台上(例如 x86_64)进行编译,但编译出来的二进制文件却是用在另一个架构平台的(例如 i.MX8)。构建工具链通用 SDK当我们执行 source setup-environment <build> 配置构建环境时,会看到如下提示:You can now run 'bitbake <target>

2021-05-25 17:30:38 496

原创 printk 内核打印

printk 在内核源码中用来记录日志信息的函数,只能在内核源码范围内使用,用法类似于 printf 函数。printk 函数主要做两件事情:将信息记录到 log 中;调用控制台驱动来将信息输出。printk 介绍printk 将内核信息输出到内核信息缓冲区中,内核缓冲区在 kernel/printk/printk.c 中定义:static char __log_buf[__LOG_BUF_LEN] __aligned(LOG_ALIGN);内核信息缓冲区是一个环形缓冲区(Ring Bu

2021-05-15 01:52:03 199

原创 i.MX8 Yocto 使用 systemd 配置网络

通常我们在 Linux 中使用 ifconfig 或 ip 命令来配置网络,但这样配置是临时的,重启系统之后又没了。那怎么样才能优雅地配置网络呢?其实在 iMX8 Yocto BSP 中,默认使用 systemd 系统管理程序作为第一个进程,并且提供了 systemd-networkd 服务,该服务会从 /etc/systemd/network 目录读取配置文件来管理网络设备。网络管理命令Yocto 默认提供了 systemd,使用 Systemd-Networkd 接管网络配置(位于 /lib/sy

2021-05-12 19:42:05 212

原创 初识 Yocto 项目

初识 Yocto 项目本章开始介绍 Yocto 项目,将阐述主要概念,贯穿本专栏的种种概念,都会在本章里一一说明。我们将要简述 Yocto 专案的发展历史、建置系统、Poky、OpenEmbedded-Core、BitBake、后设资料(metadata),以及使用 Yocto 的工作流程。Yocto 项目Yocto 是项总括计划,犹如一把大伞,涵盖与嵌入式 Linux 系统相关的各种技术,其涵盖范围非常广。尚请注意,Yocto 本身并不是 Linux 发行版(distribution)。其官方网站如

2021-05-09 16:04:23 109

原创 Valgrind 基本用法

介绍Valgrind 是一套 Linux 下的开源仿真调试工具集,遵循 GPLv2 许可协议,可用于内存调试、内存泄漏检测以及性能分析。Valgrind 由内核(core)以及基于内核的其他调试工具组成,内核类似于一个框架(framework),它模拟了一个 CPU 环境,并提供服务给其他工具;而其他工具则类似于插件 (plug-in),利用内核提供的服务完成各种特定的内存调试任务。Valgrind 包含下列一些工具:Memcheck:内存错误检测器(memory error detector)

2021-04-12 17:06:21 89

原创 3D 打印简介

概述3D 打印(英语:3D printing),属于快速成形技术(rapid prototyping)的一种,它是一种数字模型文件为基础,运用粉末状金属或塑料等可粘合材料,通过逐层堆叠累积的方式来构造物体的技术。因此也称为增材制造(Additive Manufacturing,AM)。过去其常在模具制造、工业设计等领域被用于制造模型,现正逐渐用于一些产品的直接制造。特别是一些高价值应用(比如髋关节或牙齿,或一些飞机零部件)已经有使用这种技术打印而成的零部件,意味着“3D打印”这项技术的普及。如今,

2021-04-10 12:12:15 252 1

原创 Linux 设置开机启动程序的方法总结

方法一编辑 /etc/rc.local 文件,在合适的地方(比如末尾,exit 之前)添加想要开机执行的命令。需要注意的是,如果文件开头是 #!/bin/sh -e,那么中途有任务执行失败的话会退出脚本,导致后面添加的命令没有执行。方法二执行 runlevel 查看当前系统等级$ runlevel N 5比如 5,那么创建 /etc/rc5.d/S97run_app.sh,内容如下#!/bin/sh/home/root/k37x_ui &exit 0自动登录 root如果

2021-04-09 18:23:27 288

原创 C语言标准——C89、C99、C11、C17、C2x ...

C的标准化过程C语言自诞生到现在,期间经历了多次标准化过程,主要分成以下几个阶段:Traditional C此时的 C 语言还没有标准化,来自“C Programming Language, First Edition, by Brian W. Kernighan, Dennis M. Ritchie. Prentice Hall PTR 1978”的 C 描述可算作“正式”的标准,所以此时的 C 也称为“K&R” C。期间 C 语言一直不断的发生细微的变化,各编译器厂商也有自己的扩展,这.

2021-04-09 00:55:28 984 2

原创 开源硬件介绍

电子电路是人类社会发展的重要成果,在早期的硬件设计和实现上都是公开的,包括电子设备、电器设备、计算机设备以及各种外围设备的设计原理图。大家认为公开是十分正常的事情,所以早期公开的设计图并不称为开源。1960年左右,很多公司根据自身利益选择了闭源,由此出现了贸易壁垒、技术壁垒、专利版权等问题,以及不同公司之间的互相起诉现象。例如,国内外的 IT 公司之间由于知识产权而法庭相见的案例屡见不鲜。虽然这种做法在一定程度上有利于公司自身的利益,但不利于小公司或者个体创新者的发展。特别是在互联网进入 Web 2.

2021-04-03 19:15:15 381

原创 俏皮的 Markdown Emoji 表情

❓ 如果不懂外语,在互联网上怎么交流?—— 别慌,可以用互联网时代全球通用语言 Emoji 呀!Emoji 的发展史???? ​Emoji 的演变主要分为三个阶段。1️⃣ 符号表情(颜文字)早在 1967 年,美国《Reader’s Digest》的一篇文章就提出了用符号表达情绪的概念,但这个想法并未付诸实践。直到 1982 年,卡耐基梅隆大学的 Scott Fahlman 教授提议在留言板上使用 :-) 和 :-( 符号来区分严肃的帖子和笑话。19-Sep-82 11:44 Scott

2021-03-07 23:07:08 208

原创 了解常用 Markdown 扩展语法

虽然 Markdown 扩展语法不在 CommonMark Spec 标准中,但许多 Markdown 编辑器也都尽量支持,因此学习一些常用的 Markdown 扩展语法也是有必要的。本文介绍的主要是 GitHub Flavored Markdown,也就是 GitHub 风格的 Markdown 扩展语法。删除线使用两个飘号 ~~ 包裹需要表示删除的文字。~~抽烟~~下划线由于 Markdown 和 HTML 的暧昧关系,因此在 Markdown 中,下划线可以通过 <u> &lt

2021-03-07 21:04:54 713

原创 快速了解 Markdown 基础语法

快速了解 Markdown 基础语法语法规则是 Markdown 的核心,本节我们就来学习一下 Markdown 的基础语法,记不住不要紧,小伙伴们可以在用到的时候及时查阅,反复练习即可。用不了几天,你一定会掌握的!在前面《三分钟成为 Markdown 专家》提到,目前有许多 Markdown-like language,还有一个提供无歧义语法规范的 CommonMark 项目。这就导致了各种存在差异的 Markdown 的语法,对初学者来说造成疑惑,比如在一个 Markdown 编辑器这么写没问题,换

2021-03-07 17:40:13 646

原创 盘点好用的 Markdown 编辑器

Markdown 是以文本形式保存的,基本上任何一款编辑器都可以完成 Markdown 写作(包括 Windows 的记事本、Linux 的 Vim 等等)。不过,如果你想更专注于写作,一款支持语法显示和实时渲染的工具能让你事半功倍!下面列出的是我个人使用过一些 Markdown 编辑器,小伙伴们可以根据自己的需要安装使用。名称特点支持平台费用MarkdownPadWindows 平台最好用的 Markdown 编辑器Windows免费 + 付费Atom开源,跨平台

2021-03-07 13:06:56 687

原创 三分钟成为 Markdown 专家

当你点开这篇文章的时候,相信你已经听过,甚至使用过 Markdown 了。现在,你希望进一步了解,使用好 Markdown。那么,请先回答 3 个问题:Markdown 是什么?Markdown 不是什么?为什么使用 Markdown?Markdown 是什么Markdown 是一种轻量级标记语言。别被「标记语言」这个词吓到,其实就是用一些足够简单的符号作为标记来对文本内容进行修饰。比如像下面这张图,左边就是用 Markdown 进行标记的文本,右边是经过渲染后呈现给用户的效果。Mar

2021-03-07 00:32:03 174

原创 【i.MX8 Linux】构建 i.MX8 Yocto Project 映像

本文所使用的主机是 i5 四核 8GB 内存的 Ubuntu 20.04,官方建议在 Ubuntu 18.04 上操作,不过实测都 OK!Tips:本文主要介绍构建 i.MX8 Yocto Project 映像的步骤,限于篇幅不能详细介绍 Yocto 和 BitBake 等工具的详细用法,关于 Yocto 的更多介绍请参见我的另一个专栏《Yocto 最佳实践》。Yocto 概述什么是 YoctoYocto Project 起源于一群年轻人想给他们自己的 PDA 编写一个操作系统,当时没有一家公司

2021-03-05 15:33:58 913

原创 【i.MX8 Linux】i.MX8 硬件平台介绍(MCIMX8M-EVK)

本专栏基于恩智浦半导体 i.MX 8M 应用处理器的 MCIMX8M-EVK 评估套件修改而来的硬件平台进行开发。大部分电路兼容 MCIMX8M-EVK 评估套件,有差别的部分会在具体驱动开发中提供局部电路图进行说明,对于 Linux 开发来说,思路和开发过程是通用的。下面对 MCIMX8M-EVK 板和 i.MX8 处理器做一个简单地介绍,帮助大家快速了解 i.MX8 家族和 MCIMX8M-EVK 的硬件概况。i.MX8 系列概述i.MX 8 系列应用处理器是一种功能和性能可扩展的多核平台,包括基

2021-03-05 12:18:21 1055 2

原创 为 Hexo 博客添加 valine 评论系统

注册 LeanCloud由于 valine 评论系统是放在 LeanCloud 上的,因此需要先打开 https://www.leancloud.cn/ 网址注册一个 LeanCloud 账号。注册完成后创建一个应用,比如名字为 blog,然后进入应用,在 设置 -> 应用 Keys 中找到 APP ID 和 APP Key。Hexo 配置在 hexo 工程下执行如下命令安装插件npm install next-theme/hexo-next-valine在 _config.yml 文件

2021-02-28 14:10:12 206 3

原创 Hexo + NexT 通过自定义样式添加 Bilibili 图标

NexT 默认使用 Font Awesome 库作为 icon 库。美中不足的是,有一些中国的社交网站的图标在 Font Awesome 库中并没有提供,包括我们熟悉的哔哩哔哩、豆瓣、简书等等。所以如果想使用这些图标,就需要我们使用本地图标进行手动添加。首先,可以在 阿里巴巴矢量图标库 之类的网站找到你需要的图标,下载 SVG 格式文件。以 Bilibili 为例,将 SVG 文件放置在 hexo 工程的 /source/images/bilibili.svg 中。编辑 source/_data/sty

2021-02-27 17:19:24 274

原创 《开源指北》之我和开源的故事

【开源指北 1.0 发布】和你做过最酷的事,就是一起「写书」去年参加的《开源指北》编写计划最近正式发布啦!我大概是最早加入该项目的非官方成员之一,因为我几乎每天都会登陆 Gitee 网站,在去年十月中旬就看到该项目的招募计划,然后就领取了第一章第一节的编写任务 —— 初识开源: 什么是开源?,接下来两个月里又陆陆续续补充了其他章节的内容。(文章末尾看到「阿基米东」的就是啦~) 【开源指北 1.0 发布】和你做过最酷的事.

2021-01-29 19:33:45 156 1

原创 Linux 模块导出符号 EXPORT_SYMBOL

概述EXPORT_SYMBOL 宏的使用时出现在 Linux 2.6 版本之后,在 Linux 2.4 内核中,默认的非 static 函数和变量都会自动导入到内核空间,不需要用 EXPORT_SYMBOL() 做标记的。出于安全考虑,不久之后 Linux 2.6 修改为默认不导出所有的符号,需要导出的符号使用 EXPORT_SYMBOL() 进行标记。1. EXPORT_SYMBOL 宏的作用EXPORT_SYMBOL 标签内指定的符号(函数或变量)对全部内核代码公开,不用修改内核代码就可以在内核模

2021-01-20 17:41:17 212

原创 【Funpack】使用 pygatt 读取 Thunderboard 温度数值并控制 LED

pygatt 是一个用于读写蓝牙设备的 GATT 描述符的 Python 模块,可用于任何符合标准 GATT 描述符行为的设备,例如健身追踪器、传感器等等。pygatt 支持两种不同后端并提供了 Pythonic API:BlueZ (requires Linux), using the gatttool command-line utility.Bluegiga’s BGAPI, compatible with USB adapters like the BLED112.我们在 Linux 上

2021-01-07 13:19:09 413

原创 【Funpack】BlueZ gatttool 操作 Thunderboard 蓝牙开发板

BlueZ 是 Linux 官方蓝牙协议栈。它是一个基于 GPL 发布的开源项目,从 Linux2.4.6 开始便成为 Linux 内核的一部分。其基础代码均是由就职于 Qualcomm 的 Maxim Krasnyansky 完成,包括 HCI、L2CAP、RFCOMM 和基本 socket 的实现。安装$ sudo apt install bluez安装完 Bluez 协议栈后,系统会增加一些调试工具,包括 bluetootchctl、hciconfig、hcitool 和 gatttool。

2021-01-07 12:57:45 283

原创 【Funpack】低功耗蓝牙 BLE 协议架构

想要开发蓝牙应用,了解蓝牙协议架构是必不可少的。本文以低功耗蓝牙 BLE 为例,简要介绍 BLE 蓝牙协议架构,帮助开发者快速了解蓝牙协议概况。BLE 协议分层BLE 协议栈主要由如下几部分组成:PHY 层(Physical layer 物理层)。PHY层用来指定 BLE 所用的无线频段,调制解调方式和方法等。PHY层做得好不好,直接决定整个 BLE 芯片的功耗,灵敏度以及 selectivity 等射频指标。LL 层(Link Layer 链路层)。LL层是整个 BLE 协议栈的核心,也是 B

2021-01-07 12:36:26 407 2

原创 【Funpack】蓝牙技术 Q&A

蓝牙技术的应用场景?蓝牙其实有很多应用场景。目前很多的消费品类产品如蓝牙耳机、蓝牙音箱、车载多媒体、蓝牙手环、蓝牙防丢器、蓝牙血压计、蓝牙体重秤,都使用蓝牙进行数据交互与控制。比如开车时,开启导航将手机蓝牙与车载蓝牙连接,可以将音频视频数据流通过手机蓝牙传送到耳机、音箱等设备上。都是智能设备与蓝牙手机连接,将数据发送到手机终端。在某一些应用场景当中,需要考虑低于安卓5.0系统的手机不支持 BLE,所以选择双模,以保证手机的兼容性。但随着手机产品的迭代和更新,较老的型号被淘汰,价格等因素,双模逐渐被单模替

2021-01-07 12:00:28 196

原创 【Funpack】Thunderboard BG22 蓝牙开发板

硬件平台Thunderboard BG22 是一款来自 Silicon Labs(芯科科技)的蓝牙开发套件。Silicon Labs 公司一直提供丰富的业内先进的无线连接产品,BG22 是 2020 年推出的第二代蓝牙 SoC。蓝牙通信是短距离无线通信中增长最快的协议之一,其最大的优势是其低功耗特色。BG22 相对于之前 BG13 和 BG21 系列功耗更低,主要定位于电池供电带定位功能的极低功耗物联网应用。支持蓝牙 5.2 协议,更快的传输速度,更高精度和安全性,同时易于开发。开发板上有 USB M

2021-01-07 11:38:51 440

原创 已初始化和未初始化的局部变量和全局变量在内存中如何分布?

在 C 语言中,通常可以把内存理解为四个分区:栈、堆、全局/静态存储区和常量存储区。栈(stack,也称“堆栈”)通常是用于存储在编译期间就能确定存储大小的变量,用于在函数作用域内创建,在离开作用域后自动销毁的变量的存储区。通常是局部变量、函数参数等的存储区。它的存储空间是连续的,两个紧密挨着定义的局部变量,它们的存储空间也是紧挨着的。栈的大小是有限的,在 Linux 中可以通过命令 ulimit -s 查看默认栈空间大小,默认情况下为 8192 KB(即 8MB)。因此如果在程序内部分配超大的数据

2020-12-31 01:00:22 846

原创 【C语言】assert() 断言的作用

assert 是宏,而不是函数。它的原型定义在头文件 assert.h 中:void assert( int expression );宏 assert 经常用于在函数开始处检验传入参数的合法性,可以将其看作是异常处理的一种高级形式。assert 的作用是 先计算表达式 expression,然后判断:如果表达式值为假,那么它先向 stderr 打印错误信息,然后通过调用 abort 来终止程序运行。如果表达式值为真,继续运行后面的程序。注意:assert 只在 DEBUG 下生效,在调试结

2020-12-31 00:12:12 246

原创 static 和 extern 的作用

问题:static 和 extern 修饰变量和函数时有什么作用?请举例说明。static简单来说,static 关键字有两个作用:限制变量的作用域设置变量的存储域具体来说,在不同的使用场景有不同的表现。(函数名也是变量)静态全局变量用 static 声明静态全局变量:限制本文件外使用static int a;定义全局变量时加一个 static 声明,该变量只限于被本文件引用,而不能被其他文件引用。静态全局变量和全局变量一样存放在静态区。静态局部变量使用 static 修饰局部

2020-12-30 23:46:11 221

原创 【经典面试题】strlen 函数的实现

分析strlen 是 C 库函数,它的作用是计算字符串的长度。函数 strlen 的原型是:size_t strlen(const char *str);strlen 函数从字符串的开头位置依次向后计数,直到遇见 \0,然后返回计时器的值。最终统计的字符串长度不包括 \0。实现int strlen(const char* str){ assert(str != NULL); int len = 0; while((*str++) != '\0') ++len; return le

2020-12-30 22:27:01 154

STM32H7数据手册

STM32H7数据手册(STM32H7x3_rm.pdf)英文版

2017-06-20

ATKKPING工具

一款小型、免安装的Windows上的ping包测试工具

2017-07-28

libpng-1.6.26.tar.gz

libpng-1.6.26.tar.gz

2016-12-29

FreeRTOS_ST_April_Training(北京麦克泰FreeRTOS培训课件)

FreeRTOS_ST_April_Training(2017年4月 北京麦克泰FreeRTOS培训课件)

2017-05-04

POSIX标准文档

POSIX标准文档,压缩包中包含以下文件: 《POSIX Base Definitions》 《POSIX Base Specifications, Issue 7》 《POSIX Rationale (Informative)》 《POSIX Realtime and Embedded Application Support》 《POSIX Shell and Utilities》 《POSIX System Interfaces》 《POSIX Technical Corrigendum 1》 《POSIX Technical Corrigendum 2》

2017-03-07

STM32F7高性能应用_Hands-On代码

STM32F7高性能应用_Hands-On代码,基于STM32F769I-DISCO,2017年10月

2017-11-05

如何将coremark程序移植到STM32上

如何将coremark程序移植到STM32上

2016-12-05

netperf-2.5.0.tar.bz2

netperf-2.5.0.tar.bz2,网络性能监控工具

2017-03-20

使用mbed进行STM32开发

关于:使用mbed进行STM32开发及STM32F0的时钟问题

2016-12-23

LwIP协议栈源码详解——TCP/IP协议的实现

《LwIP协议栈源码详解——TCP/IP协议的实现》,老衲五木

2017-07-24

MPU-6050 六轴传感器数据手册(英文)

MPU-6050 六轴传感器数据手册(英文)

2016-06-13

侯捷《Word排版艺术》

侯捷《Word排版艺术》

2017-03-14

CoDeSys 软件

CoDeSys 软件版本 23928,运动控制软件,工业机器人,电机控制

2019-04-07

Redhat U盘安装图解详细过程

Redhat U盘安装图解详细过程

2016-11-28

tuxboot-0.8

Clonezilla 再生龍,在 Windows 下執行 Tuxboot 並依 指示 來安裝再生龍至您的 USB 裝置。 压缩包中包含 tuxboot-0.8 的源代码和 Windows 工具。

2017-02-27

STM32 HAL 库开发实战指南—基于F7

野火新书《STM32 HAL 库开发实战指南—基于F7》,该书基于野火挑战者F7开发板,使用的是HAL库,全书共980页。该书只有电子版,纸质版不会出版,因为F7只是ST在Cortex-M7内核中的一个过渡产品,真正的大杀器是H7。后面会出版H7的书籍,但跟F7的内容差别不大,只是小改。欢迎下载!

2018-05-30

《CPU源代码分析与芯片设计及Linux移植》

《CPU源代码分析与芯片设计及Linux移植》 倪继利

2017-01-30

getevent 源码

getevent源码,可用于测试Linux内核input事件

2016-11-11

OtoStudio可视化界面开发示例代码

OtoStudio可视化界面开发示例代码 move_car、robot、Machine Tool 三个项目代码

2019-04-07

华邦 W25Q80 数据手册

华邦 W25Q80英文版数据手册,注意是英文版,是英文版!

2018-05-28

一步一步使用STemWin 在STM32 上开发一个简单的应用

由于STemWin 提供的文档只是比较详细的介绍了这些API 使用功能,但是对于初次接触和使用STemWin 开发应用的工程师来说希望有一个简单的类似一个helloworld 的小应用来简述一下整个开发过程。一步一步使用STemWin 在STM32 上开发一个简单的应用,这篇文章就是针对这个目的而来的。

2017-03-14

STM32计算CPU使用率的方法及其实现原理

一种计算CPU使用率的方法及其实现原理

2016-12-06

xenomai-2.6-2.6.5.tar.bz2

xenomai-2.6-2.6.5.tar.bz2

2017-01-05

《R语言实战》(中文完整版)

《R语言实战》(中文完整版),卡巴科弗 (Robert I.Kabacoff) (作者), 高涛 肖楠 陈钢 译

2016-11-09

Linux/Unix 的 libjpeg 库(v9b)

Linux/Unix 的 libjpeg 库(v8c) 安装方法:1、configure,2、make,3、make install make test 命令用来测试这个库是否安装成功,执行该命令后,你会看到 libjpeg 解压后所在目录下多了几张图片。

2016-11-23

flex-2.6.0.tar.bz2

flex-2.6.0.tar.bz2

2017-03-28

新型智能垃圾桶的设计方案

《新型智能垃圾桶的设计方案》周慧珺,许锦标(2006年) ------------------- 提出了一种新型智能垃圾桶的设计方案.采用基于单片机的智能化红外感应控制系统、无线通信系统,实现自动开关桶盖并调节开盖角度、遥控垃圾桶走动、智能封袋的功能.与传统智能垃圾桶相比较,功能性更强,智能化程度更高.

2017-10-09

Xenomai 3 Programmer's Reference Manual

Xenomai 3 Programmer's Reference Manual

2017-01-05

I210 MAC EEPROM(包含 Eeupdate.exe)

Intel I210网卡芯片MAC地址更新工具。 ---------------------------- 更新方法: 1. 将附件解压缩并复制到U盘DOS启动盘, 2. 开机引导进入DOS启动盘后,输入EEUPDATE命令并敲回车,确认Intel I210这张网卡的NIC号是0还是1, 3. 输入Eeupdate /nic=X /d 8Mb.bin (X=Intel I210的NIC号) ,并敲回车键来更新eeprom文件 4. 输入Eeupdate /nic=X /mac=********(X=Intel I210的NIC号,*****=你们买的MAC地址,例如:74FE4804F54C 注意NIC号一定不要搞错,如果搞错了会将核心板上的网卡Intel 82574的EEPROM文件刷掉

2017-02-21

qwt-6.1.3.tar.bz2

QWT,全称是Qt Widgets for Technical Applications,是一个基于LGPL版权协议的开源项目, 可生成各种统计图。这是2016年最新的qwt-6.1.3版本。

2016-12-22

Nand_Flash文件系统解决方案

Nand_Flash文件系统解决方案

2017-01-19

ARM_AEG-AAE_Entry_level.pdf

此为AAE(ARM认证工程师)认证的考试大纲,主题领域包括:ARM架构、软件开发、软件优化、系统、软件调试和实施。

2013-12-15

80款Linux运维监控工具(最终版)

80款Linux运维监控工具(最终版),来自高效运维社区

2016-12-02

《嵌入式系统软件设计中的数据结构》

《嵌入式系统软件设计中的数据结构》

2016-11-08

eGTouch_v2.5.5814.L-ma.tar.gz

eGalaxTouch Driver for Linux Detail: http://www.eeti.com/drivers_Linux.html

2016-11-11

H.264 学习指南

分享H.264学习的学习经验

2016-09-07

RIoTBoard 数据手册

RIoTBoard 数据手册,MCIMX6-SOLO-数据表.pdf

2017-03-03

i210-ethernet-controller-datasheet

i210-ethernet-controller-datasheet

2017-01-07

xenomai-2.6-2.6.4.tar.bz2

xenomai-2.6-2.6.4.tar.bz2

2017-01-05

使用Markdown编辑器写博客

使用Markdown编辑器写博客,示例文件

2016-11-07

阿基米东的留言板

发表于 2020-01-02 最后回复 2020-04-03

小白提问:做视频监控需要用到实时操作系统吗?

发表于 2016-10-24 最后回复 2020-01-02

make menuconfig 提示 Unable to find the ncurses ......

发表于 2017-01-25 最后回复 2018-04-28

Linux socket 编程遇到问题

发表于 2016-12-15 最后回复 2016-12-15

空空如也

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

TA关注的人 TA的粉丝

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