• avatar 王建峰 2019-01-28 09:16:41

    esp8266+SDK开发 json格式数据创建&解析

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。在前后台进行数据对接时,常常采用json。 JSON 语法规则     对象表示为键值对 "键":<值>     数据由逗号分隔    ,

    来自 王建峰
    00
  • avatar 王建峰 2019-01-28 09:16:33

    esp8266+SDK开发 温湿度采集到云端

      项目展示 http://v.youku.com/v_show/id_XNDAzNDY0MDgyNA==.html?x&sharefrom=android&sharekey=16ef6b5be59fa16d9c21851029d778888   设计方案 硬件层:Node

    来自 王建峰
    01
  • avatar 王建峰 2019-01-24 20:35:25

    esp8266+SDK开发 工作模式

    ESP8266的三种工作方式 AP模式 Station模式 AP+Station模式 esp8266模组在Station模式下是一个网络节点,可以通过路由器接入到互联网;esp8266模组在AP模式下是一个WIFI热点,可以使用手机或者电脑直接进行局域网控制;AP+Statio

    来自 王建峰
    00
  • avatar 王建峰 2019-01-24 20:34:35

    esp8266+SDK开发 搭建开发环境

    重要资源整理 乐鑫官网SDK下载地址:https://www.espressif.com/zh-hans 虚拟机软件 VmwareWorkStation (或者是 VirtualBox) Lubuntu 镜像下载地址:http://downloads.espressif.com/FB/ESP826

    来自 王建峰
    00
  • avatar 王建峰 2019-01-22 12:26:14

    Flask-SQLAlchemy框架使用

    以MySQL+SQLAlchemy的组合来对数据库进行管理,而Flask-SQLAlchemy是一种开发框架,对SQLAlchemy进行了一个简单的封装。下面使用Flask-SQLAlchemy的方法对数据库进行管理。   #config.py #数据库配置信息 HOSTNAME = '127

    来自 王建峰
    00
  • avatar 王建峰 2019-01-22 12:22:19

    Flask-Migrate模块使用

    flask-migrate可以十分方便的进行数据库的迁移与映射,将我们修改过的ORM模型映射到数据库中。另外flask-migrate是对Alembic的一个封装,其实它的底层是交由Alembic来处理的。使用起来十分方便。 在flask项目中使用flask-migrate,我采用下面的结构。

    来自 王建峰
    00
  • avatar 王建峰 2019-01-22 09:56:19

    Flask-Script模块使用

    Flask-Script的作用是可以通过命令行的形式来操作Flask。通过下面的例子,来简单了解一下吧   demo #manage.py from flask_script import Command,Manager from app import app #目的:练习 Flask-S

    来自 王建峰
    00
  • avatar 王建峰 2019-01-19 22:37:54

    socket请求云主机遇到 Connection refused 问题

    想着练习socket,实现网络(公网)上的两台主机通信的。忙活半天,最后用虚拟机本机测试进程间可以通信,但是使用云服务器和虚拟机通信就不行了。一时间找不到原因。   问题 这是我使用虚拟机和互联网另一端的云主机进行socket请求的结果。。 这边ping服务器的公网ip,测试没有问题。此

    来自 王建峰
    00
  • avatar 王建峰 2019-01-16 09:47:46

    STM32:启动文件分析

    关于stm32上电之后的启动流程,梳理一下思路,如有错误,回头来改。   加载程序:当用户选择想单片机烧录程序的时候,BOOT0、BOOT1来决定代码存放的位置。并将这片存储空间重新映射到0x00000000开始的位置。启动程序:然后程序从开始处执行,首先执行的不是main(),而是启动文件异常

    来自 王建峰
    00
  • avatar 王建峰 2019-01-11 13:34:51

    【Python】天气预报-短信通知服务实现

    python+百度天气API+twilio平台,实现获取城市天气数据,然后发送短信给指定用户   获取天气预报 首先获取城市天气数据,通过百度天气预报API接口,可以方便捕获城市的天气信息。http://lbsyun.baidu.com/index.php?title=%E9%A6%96%E9

    来自 王建峰
    00
  • avatar 王建峰 2019-01-11 10:11:13

    【Python】新闻邮件通知实现

    结合之前学到的网络爬虫和发送电子邮件的知识,实现一个功能服务。本文用python代码实现,从某新闻网站爬取一个头条新闻,提取标题和url链接,然后把这些信息整合发送到指定邮箱上。   代码 主模块:控制整体流程 from crawl_info import get_info from se

    来自 王建峰
    00
  • avatar 王建峰 2019-01-11 10:10:43

    【Python】简单电子邮件发送功能实现

    电子邮件传输机制 一般的网络服务程序在传输信息时就像拨打电话,需要双方同时保持在线,而在电子邮件系统中,当用户发送邮件后不必等待投递工作完成即可下线。如果对方邮件服务器(MTA)宕机或对方临时离线,则发件服务器(MTA)就会把要发送的内容自动的暂时保存到本地,等检测到对方邮件服务器恢复后会立即再次

    来自 王建峰
    00
  • avatar 王建峰 2019-01-10 11:40:00

    【C语言练习题】动态分配内存

    《C和指针》练习题11.11   问题 编写一个函数,从标准输入读取一列整数,把这些值存储于一个动态分配的数组中并返回这个数组。函数通过观察EOF判断输入列表是否结束。数组的第一个数是数组包含的值的个数,他的后面就是这些整数值   代码 #include <stdio.h>

    来自 王建峰
    00
  • avatar 王建峰 2019-06-17 19:34:36

    【C++学习笔记】Step1 类、对象

    目的:掌握类、面向对象的概念,以及相关代码的编写 码云:https://gitee.com/hinzer/my-notes-of-C_plus   思维导图     学习笔记 关键词:类、对象、继承、析构方法与构造方法 1.类 <1>声明 class People

    来自 王建峰
    00
  • avatar 王建峰 2019-01-08 17:04:59

    【C语言练习题】声明一个结构体类型对记账信息封装

    《C和指针》练习题10.11   题目 当你拨打长途电话时,电话公司所保存的信息包括你拨打电话的日期和时间。它还包括三个电话号码:你使用的那个电话、你呼叫的那个电话及你付账的那个电话。 这些电话号码的每一个都由三个部分组成:区号、交换台和号码。 请为这些记账信息编写一个结构声明。  

    来自 王建峰
    00
  • avatar 王建峰 2019-01-06 14:04:54

    【Python】 简单网络爬虫实现

    引言 网络爬虫(英语:web crawler),也叫网络蜘蛛(spider),是一种用来自动浏览万维网的网络机器人。其目的一般为编纂网络索引。 --维基百科 网络爬虫可以将自己所访问的页面保存下来,以便搜索引擎事后生成索引供用户搜索。 一般有两个步骤:1.获取网页内容  2.对获得的网

    来自 王建峰
    00
  • avatar 王建峰 2019-01-06 07:08:15

    《黑客与画家》摘要&读后感

    本文中的“黑客”是指最优秀的程序员,而不是入侵计算机系统的人。《黑客与画家》从解释为什么书呆子不受欢迎到阐述黑客精神的意义,实际上是给程序员进行了正名。保持黑客精神,就有可能改变这个世界。 作者:保罗·格雷厄姆(Paul Graham)  美国       第一章节:为什么书呆子不受欢

    来自 王建峰
    01
  • avatar 王建峰 2019-01-04 13:49:50

    Python编程实例分析 Ⅱ

      目录 实例十一  绘制七段数码管 实例十二 科赫曲线绘制雪花 实例十三 分词统计--英文单词 实例十四 分词统计--中文词频 实例十五 将图像转换成为字符图     实例十一  绘制七段数码管   代码 #demo11.py #绘制七段数码管并显示时间(本地) #I

    来自 王建峰
    00
  • avatar 王建峰 2019-01-04 08:43:34

    【C语言练习题】分词统计

    《C和指针》 练习题9.14   问题 编写一个程序,对标准输入进行扫描,并对单词“the”出现的次数进行计数。进行比较时应该区分大小写,所以“The”和“THE”并不计算在内。你可以认为各单词由一个或多个空格字符分隔,而且输入行在长度上不会超过100个字符。计数结果应该写到标准输出上。  

    来自 王建峰
    00
  • avatar 王建峰 2018-12-31 21:07:52

    2018/12/31小结

    标记性事件 参加NCRE三级嵌入式考试  3.25 做旋转LED、led指尖陀螺、无聊盒子  4月-6月 收入一个STM32开发板  5月 完成web(flask构架)项目的开发与部署  6.29  完成全地形小车制作  6月-7月 收入kindle3 阅读器  7.8

    来自 王建峰
    00
  • avatar 王建峰 2018-12-31 08:59:55

    【C语言练习题】判断单位矩阵

    《C和指针》习题8.8   问题 3.单位矩阵就是一个正方形矩阵,它除了主对角线元素值为1以外,其余元素的值均为0,例如:  *1 0 0  *0 1 0  *0 0 1  *就是一个3×3单位矩阵,编写一个名叫identity_matrix的函数,它接受一个10×10整型矩阵为参数  *成功

    来自 王建峰
    00
  • avatar 王建峰 2018-12-28 18:15:40

    Python编程实例分析Ⅰ

    目录 实例一 温度转换 实例二 货币转换 实例三 绘制毛毛虫 实例四 天天向上 实例五 星期几问题 实例六 输出十二星座的标志 实例七 程序计时 实例八 文本进度条 实例九 身体质量指数BMI计算 实例十 蒙特卡罗方法计算圆周率     实例一 温度转换   设计思路

    来自 王建峰
    00
  • avatar 王建峰 2018-12-28 15:08:21

    C语言 可变参数列表的实现

    使用可变参数列表,可以让函数在不同场合接收不同数量的参数传入,printf函数的格式化输出,就是一个典型的例子。 printf("<格式化字符串>", <参量表>);            //printf函数的使用 int printf(const

    来自 王建峰
    00
  • avatar 王建峰 2018-12-26 12:29:39

    【C语言练习题】检索字符串

    《C与指针》习题6.18.1   题目:函数在一个字符串中进行搜索,查找所有在一个给定字符集合中出现的字符 函数原型:char *find_char( char const *source, char const *chars);   代码 #include <stdio.h&g

    来自 王建峰
    00
  • avatar 王建峰 2018-12-24 18:53:12

    数据结构测试题错题归纳 1~10

    目录 题目一 题目二 题目三 题目四 题目五 题目六 题目七 题目八 题目九 题目十     题目一 int a[5][4], (*p)[4]=a;,数组a的首地址为100,*(p+2)+3等于 ( ) A  116 B  118

    来自 王建峰
    00
  • avatar 王建峰 2018-12-24 10:02:12

    【C语言练习题】二进制位模式左右翻转输出

    《C与指针》5.3题   问题 实现一个函数 reverse_bits 将变量value的二进制位模式从左到右变换一下后的值返回。 在32位机器上25这个值包含下列各位:  00000000000000000000000000011001  翻转后: 1001100000000000

    来自 王建峰
    00
  • avatar 王建峰 2018-12-23 11:15:35

    【C语言练习题】编写一个函数,它从一个字符串中提取一个子字符串

    《C与指针》 习题 4.14   编写一个函数,它从一个字符串中提取一个子字符串。函数原型如下: int substr(char dst[], char src[],int start, int len){} 目标是:从 src 数组起始位置向后偏移 start个字符的位置开始,最

    来自 王建峰
    00
  • avatar 王建峰 2018-12-23 11:15:29

    【C语言练习题】判断三角形的类型

    代码 //triangle.c #include <stdio.h> void triangle( int a, int b, int c ); // 函数声明 --- 作用域 void main(void) { int x,y,z; printf("please

    来自 王建峰
    00
  • avatar 王建峰 2018-12-20 17:37:53

    【C语言练习题】编写一个程序,它从标准输入读取C源代码,并验证所有花括号都正确成对出现

    《C和指针》课后练习题   问:编写一个程序,它从标准输入读取C源代码,并验证所有花括号都正确成对出现。   代码 思路:在while循环条件中读取我输入的字符,只有当输入缓冲区没有数据或者我这里产生回车符'\n'时,才会判断条件不成立。counter这个变量用来标记'{ }'是

    来自 王建峰
    00
  • avatar 王建峰 2019-01-23 11:35:39

    Flask学习笔记(二十) --Flask-Restful插件使用/API接口的编写

    引言 http或者https协议是一种被广泛运用的网络传输协议,是一种应用层协议。通过该协议传输数据,一般是POST方法,有两种常用的方式 使用浏览器原生的form表单,应该是最常用的方式了,一般是用户向服务器提交数据(在此之前服务器要向浏览器渲染网页) 如果是单纯的提供数据,应该使用A

    来自 王建峰
    00
  • avatar 王建峰 2019-01-02 22:19:31

    【C语言练习题】八皇后问题

    《C和指针》 练习题8.8   代码参考至:https://blog.csdn.net/qq_40421919/article/details/80327639   问题描述 皇后是国际象棋中威力最大的棋子。在下面所示的棋盘上,皇后可以攻击位于箭头所覆盖位置的所有棋子。我们能不能把N个皇后

    来自 王建峰
    00
  • avatar 王建峰 2018-12-29 10:08:58

    【C语言练习题】字符串转换整数

    《C和指针》 习题7.11   问题 为下面的函数原型编写函数定义: int ascii_to_integer(char *str); 这个字符串参数必须包含一个或者多个数字,函数应该把这些数字字符转换为整数并返回这个整数。 如果字符串参数包含了任何非数字字符,函数就返回零。请不必担心算

    来自 王建峰
    00
  • avatar 王建峰 2018-12-24 10:01:59

    【C语言练习题】大写字母转换小写字母

    《C与指针》5.1题   编写一个程序从标准输入读取字符,并把他们写到标准输出。除了大写字母转换成小写字母之外,其他的原样输出。   代码 //change_char.c #include <stdio.h> #define N 50 void main(voi

    来自 王建峰
    00
  • avatar 王建峰 2018-12-18 18:22:03

    2018/12/18小结

    先来自我介绍一下,笔者是一名在读大学生,喜欢嵌入式、物联网、互联网这方面的知识,持续接触学习了有一段时间了。今天反思一下自己的博客,最初是刚接触到这些新奇的知识,总想把自己的学到的东西加以总结输出,然后就在CSDN注册了一个账号。每次学完一个知识点后,然后私下练习一遍,期间记录笔记,最后把笔记整理就

    来自 王建峰
    00
  • avatar 王建峰 2018-12-17 20:52:07

    【Git学习】 安装与使用

    Git是什么? Git是目前世界上最先进的分布式版本控制系统(没有之一)。另外,Git极其强大的分支管理,把SVN等远远抛在了后面。 项目源码由Git管理,而GitHub和码云都是基于Git的开源项目托管平台,它为开源项目免费提供Git存储。   重要参考:https://www.l

    来自 王建峰
    00
  • avatar 王建峰 2018-12-16 21:50:15

    xxx is not in the sudoers file.  This incident will be reported. 问题解决

    参考:https://blog.csdn.net/zhu_xun/article/details/21087157   问题 [hinzer@VM_16_8_centos ~]$ sudo yum install -y git hinzer is not in the sudoers f

    来自 王建峰
    00
  • avatar 王建峰 2018-12-15 22:03:56

    搭建 Firekylin 个人网站

    介绍 在腾讯云实验室接触到这个,Firekylin开源博客项目的完整部署方案。挺有意思,在测试服务器上做了一遍之后,又在自己的服务器上部署了一下,确认无误。这里总结一下步骤,相关配置不做进一步的解释说明。有兴趣的朋友可以尝试一下! 更详细的教程:https://cloud.tencent.co

    来自 王建峰
    00
  • avatar 王建峰 2018-12-15 17:07:06

    Nginx+PHP 实现动态网站环境

    LNMP介绍 LNMP构架,即 Linux + Nginx + MySQL + PHP 组成的动态网站解决方案。L指代Linux操作系统,不仅可以是RHEL、CentOS等等,还合一是Debian、Ubuntu等系统;Nginx作为Web服务器,负责实现与用户浏览器的交互;PHP是处理网站后端业务

    来自 王建峰
    00
  • avatar 王建峰 2018-12-15 17:04:33

    Centos7.x系统安装PHP7

    可以通过源码包安装,也可以是yum方式安装。个人推荐yum安装方式,简单。 源码包安装:可移植性好,且软件运行效率高于yum方式。但是安装复杂,且要自己想办法解决软件之间的依赖关系 yum源安装:简单方便,不用考虑软件的依赖关系     源码安装方式 1.从官网获取源码 php-

    来自 王建峰
    00
  • avatar 王建峰 2018-12-15 06:48:37

    阿里涉足零售IoT的猜想

    原创作者: 半吊子全栈工匠  微信公众号:喔家ArchiSelf      购物是日常生活的重要组成部分,鉴于对零售业的高需求, 从仓库操作的自动化到终端消费者的用户行程,零售业开始利用物联网提供的不同解决方案是有道理的,这或许是对新零售的另一角度解读。 物联网,就其最基本的理解而言

    来自 王建峰
    00
  • avatar 王建峰 2018-12-14 17:07:36

    Nginx服务配置 (四) 文件列表显示配置

    当用户访问的站点或者目录没有index指令设置默认的索引文件(比如index.html)的时候,就会报403错误。当开启了目录列表功能后,再出现找不到index索引文件的情况就会以列表形式展示。                                                   

    来自 王建峰
    00
  • avatar 王建峰 2018-12-13 22:58:09

    Nginx服务配置 (三) 配置虚拟主机

    虚拟主机:将一台物理服务器划分成多个虚拟的服务器,分别对外提供不同服务,这样的好处就是极大的节省了服务器硬件的成本,因此深受草根站长们的喜爱。 关于虚拟主机---百度百科   目的:本文主要介绍 nginx服务虚拟主机的配置方法 查看默认配置文件中关于虚拟主机配置的参考方法 [ro

    来自 王建峰
    00
  • avatar 王建峰 2018-12-13 22:56:30

    Nginx服务配置 (二) 查看并分析配置文件

      目的:本文重点查看并分析nginx默认配置;修改index.html文件输出"Hello World"。     查看主配置文件 [root@VM_16_8_centos nginx]# vim /etc/nginx/nginx.conf # For more

    来自 王建峰
    00
  • avatar 王建峰 2018-12-13 22:56:19

    Nginx服务配置 (一) 起步

    Nginx作为后起之秀,市场占有程度暂时没有Apache高。但是未来替代Apache是趋势,目前Nginx需要就是等待时间来证明它的稳定性。 优点:支持高并发、对内存耗费低、开源软件成本低.... 缺点:资料少   目的:本文主要是在Centos7.x环境下安装并运行nginx服务

    来自 王建峰
    00
  • avatar 王建峰 2018-12-11 21:24:21

    再次写给我们这些浮躁的程序员

    作者:yzsind  来源:CSDN  原文:https://blog.csdn.net/yzsind/article/details/6168854      逛博客的时候偶然看到大佬的文章,关于如何面对浮躁的内心。感觉写的很好,有很多值得借鉴的地方。归纳如下   多做项目,多

    来自 王建峰
    31
  • avatar 王建峰 2018-12-09 18:33:52

    应用层(A9)主框架的搭建

    写在最前面 华清远见教育集团 15年专注高端IT培训 做良心教育,做专业教育,做受人尊敬的职业教育 创客学院官网:http://www.makeru.com.cn/ 华清远见创客学院嵌入式课程链接:http://www.makeru.com.cn/emb 华清远见创客学院物联网课程链接:

    来自 王建峰
    00
  • avatar 王建峰 2018-12-09 11:31:26

    实现A9与下位机的交互

    写在最前面 华清远见教育集团 15年专注高端IT培训 做良心教育,做专业教育,做受人尊敬的职业教育 创客学院官网:http://www.makeru.com.cn/ 华清远见创客学院嵌入式课程链接:http://www.makeru.com.cn/emb 华清远见创客学院物联网课程链接:

    来自 王建峰
    00
  • avatar 王建峰 2018-12-09 11:31:18

    linux内核对USB与串口驱动移植

    写在最前面 华清远见教育集团 15年专注高端IT培训 做良心教育,做专业教育,做受人尊敬的职业教育 创客学院官网:http://www.makeru.com.cn/ 华清远见创客学院嵌入式课程链接:http://www.makeru.com.cn/emb 华清远见创客学院物联网课程链接:

    来自 王建峰
    00
  • avatar 王建峰 2018-12-09 11:31:03

    命令解析--实现对硬件的控制

    写在最前面 华清远见教育集团 15年专注高端IT培训 做良心教育,做专业教育,做受人尊敬的职业教育 创客学院官网:http://www.makeru.com.cn/ 华清远见创客学院嵌入式课程链接:http://www.makeru.com.cn/emb 华清远见创客学院物联网课程链接:

    来自 王建峰
    00
  • avatar 王建峰 2018-12-09 11:02:47

    数据采集--实现串口数据的上传

    写在最前面 华清远见教育集团 15年专注高端IT培训 做良心教育,做专业教育,做受人尊敬的职业教育 创客学院官网:http://www.makeru.com.cn/ 华清远见创客学院嵌入式课程链接:http://www.makeru.com.cn/emb 华清远见创客学院物联网课程链接:

    来自 王建峰
    00
  • avatar 王建峰 2018-12-09 11:02:32

    通信前提--数据格式的定义

    写在最前面 华清远见教育集团 15年专注高端IT培训 做良心教育,做专业教育,做受人尊敬的职业教育 创客学院官网:http://www.makeru.com.cn/ 华清远见创客学院嵌入式课程链接:http://www.makeru.com.cn/emb 华清远见创客学院物联网课程链接:

    来自 王建峰
    00
  • avatar 王建峰 2018-12-06 21:31:48

    mjpeg-streamer视频图像的显示

    写在最前面 华清远见教育集团 15年专注高端IT培训 做良心教育,做专业教育,做受人尊敬的职业教育 创客学院官网:http://www.makeru.com.cn/ 华清远见创客学院嵌入式课程链接:http://www.makeru.com.cn/emb 华清远见创客学院物联网课程链接:

    来自 王建峰
    00
  • avatar 王建峰 2018-12-17 20:52:57

    【Git学习】 常用命令

    git三个工作区和文件的四种状态 工作目录(workspace)、暂存区(index)、本地仓库(repo) 未跟踪(untracked)、已暂存(staged)、已修改(modified)、已提交(committed) 当在工作目录中新加入一个文件时,它处于未跟踪状态,这表示

    来自 王建峰
    00
  • avatar 王建峰 2018-12-10 11:14:10

    仓储物联网项目

    写在最前面 华清远见教育集团 15年专注高端IT培训 做良心教育,做专业教育,做受人尊敬的职业教育 创客学院官网:http://www.makeru.com.cn/ 华清远见创客学院嵌入式课程链接:http://www.makeru.com.cn/emb 华清远见创客学院物联网课程链接:

    来自 王建峰
    00
  • avatar 王建峰 2018-12-10 11:04:12

    线程间的同步互斥学习

    写在最前面 华清远见教育集团 15年专注高端IT培训 做良心教育,做专业教育,做受人尊敬的职业教育 创客学院官网:http://www.makeru.com.cn/ 华清远见创客学院嵌入式课程链接:http://www.makeru.com.cn/emb 华清远见创客学院物联网课程链接:

    来自 王建峰
    00
  • avatar 王建峰 2018-12-05 19:11:27

    数据上报--应用进程通过CGI与html交互

    写在最前面 华清远见教育集团 15年专注高端IT培训 做良心教育,做专业教育,做受人尊敬的职业教育 创客学院官网:http://www.makeru.com.cn/ 华清远见创客学院嵌入式课程链接:http://www.makeru.com.cn/emb 华清远见创客学院物联网课程链接:

    来自 王建峰
    00
  • avatar 王建峰 2018-12-05 19:10:19

    命令下发--html通过CGI与用户进程交互

    写在最前面 华清远见教育集团 15年专注高端IT培训 做良心教育,做专业教育,做受人尊敬的职业教育 创客学院官网:http://www.makeru.com.cn/ 华清远见创客学院嵌入式课程链接:http://www.makeru.com.cn/emb 华清远见创客学院物联网课程链接:

    来自 王建峰
    00
  • avatar 王建峰 2018-12-04 17:59:12

    CGI的认识与CGIC的移植

    写在最前面 华清远见教育集团 15年专注高端IT培训 做良心教育,做专业教育,做受人尊敬的职业教育 创客学院官网:http://www.makeru.com.cn/ 华清远见创客学院嵌入式课程链接:http://www.makeru.com.cn/emb 华清远见创客学院物联网课程链接

    来自 王建峰
    00
  • avatar 王建峰 2018-11-29 15:57:09

    嵌入式内核及驱动开发之学习笔记(十七) 设备树的定义规则和获取方法

    概述 在Linux 2.6中,arch/arm/plat-xxx和arch/arm/mach-xxx中充斥着大量的垃圾代码,相当多数的代码只是在描述板级细节,而这些板级细节对于内核来讲,不过是垃圾,如板上的platform设备、resource、i2c_board_info、spi_boar

    来自 王建峰
    00
  • avatar 王建峰 2018-11-27 14:41:23

    嵌入式内核及驱动开发之学习笔记(十六) IIC子系统框架使用

    本章通过IIC子系统软件框架,实现驱动让应用层I2C读取从设备的功能。硬件上,通过I2C主控制器读取mpu6050陀螺仪和加速度数据信息。   简介 I2C(Inter-integrated Circuit)总线支持设备之间的短距离通信,用于处理器和一些外围设备之间的接口,它只需要两根信

    来自 王建峰
    00
  • avatar 王建峰 2018-11-26 22:53:51

    节点和结点区分

    结,连结 节,关节 可以这样做简单的区分 节点被认为是一个实体,有处理能力,比如说网络上的一台计算机; 结点则只是一个交叉点,像“结绳记事”,打个结,做个标记,仅此而已;   在数据结构-树形结构中叫做结点。 网络中一个中继服务器,一个终端机叫做节点。。。

    来自 王建峰
    00
  • avatar 王建峰 2018-11-25 20:25:59

    嵌入式内核及驱动开发之学习笔记(十五) 输入子系统获取多个设备信息

    利用驱动的中断机制,可以捕获按键按下时产生的中断事件,然后将信息上报给输入子系统,由子系统将数据交给用户。将不同按键设备的信息,描述到设备树中,驱动程序遍历每一个节点即设备对象;利用中断子系统实现对多个按键产生的数据,进行上报。 重点是驱动代码的设计处理,通过设备树节点将设备信息读取到结构体数组成

    来自 王建峰
    00
  • avatar 王建峰 2018-11-24 21:48:07

    嵌入式内核及驱动开发之学习笔记(十四) 输入子系统框架使用

    简单回顾一下之前学习的驱动知识。基于之前的学习,首先实现了字符驱动框架的编写,实现模块化的驱动,简单的加载/卸载去动态执行驱动程序。对于应用层<——>驱动层,编写file_operations 使驱动对上层应用层提供接口,实现功能机制让用户可以通过阻塞、非阻塞、多路复用或者异步通信的方式

    来自 王建峰
    00
  • avatar 王建峰 2018-11-21 21:03:20

    嵌入式内核及驱动开发之学习笔记(十三) 平台总线模型

    linux内核支持platform平台总线,这是一种虚拟总线,满足之前讲的设备驱动模型。这里使用平台总线platform是区别于之前我们用手动创建mybus总线,同样完成设备与驱动分离的实现。 设备、驱动、总线三者关系:   由于平台总线的设计是基于设备模型的,引入平台总线,实现devic

    来自 王建峰
    00
  • avatar 王建峰 2018-11-21 18:08:54

    Linux终端 命令行路径缩减显示

    文件路径太长,看着不方便。可以手动修改一下配置文件。     在用户家目录下 修改.bashrc文件 root@linux:~# vim .bashrc   找到 PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' 修改成(

    来自 王建峰
    00
  • avatar 王建峰 2018-11-20 19:53:28

    嵌入式内核及驱动开发之学习笔记(十二) 设备驱动模型

    按照之前的实现驱动的方法。对于同一类设备,驱动层实现的操作方法是相似的,而设备信息总是不同的,一个产品上有很多这样的同类设备,我们为每一个设备都定制一套驱动程序,代价似乎太“高昂点”;对于一个设别,如果硬件有所改动,也必然要修改取代代码。 为了提高代码的通用性,我们将驱动和设备进行分离,设备对象专

    来自 王建峰
    00
  • avatar 王建峰 2018-11-18 18:13:40

    嵌入式内核及驱动开发之学习笔记(十) 异步通信+中断实现读取数据

    对于linux一切都是文件,驱动设备在应用层也是以文件的形式进行读写。之前学了阻塞、非阻塞、多路复用的方式读设备,它们都需要应用主动读取。那么应用层有没有一种方式,当底层将数据准备好了,应用程序自动处理这些数据?通过异步通信可以实现,这有写类似硬件层的中断概念 驱动层(准备好了数据) -->

    来自 王建峰
    00
  • avatar 王建峰 2018-11-17 20:54:04

    嵌入式内核及驱动开发之学习笔记(九) 多路复用+中断实现读取数据

    使用阻塞模型虽然可以避免等待数据过程中,CPU对进程的消耗,但是仅仅是为了等待这一个结果,就让进程进入休眠,对于还要进行其他IO操作的进程而言太“奢侈”。所以引入多路复用的概念,解决这个问题。 非阻塞:立即返回结果,如果想得到期望的结果,要不停的调用这个方***询),非常耗费资源 阻塞:没有得到

    来自 王建峰
    00
  • avatar 王建峰 2018-11-17 20:53:57

    嵌入式内核及驱动开发之学习笔记(八) 阻塞模式+中断实现读取数据

    目前已经学习两种应用层IO模型的使用 非阻塞:立即返回结果,如果想得到期望的结果,要不停的调用这个方***询),非常耗费资源 阻塞:没有得到真正的数据前,不返回结果。此时,进程进入阻塞(休眠)态,直到有数据唤醒进程,这个过程不耗资源。 PS:linux应用中,大部分的函数接口都是阻塞  

    来自 王建峰
    00
  • avatar 王建峰 2018-11-16 19:04:05

    嵌入式内核及驱动开发之学习笔记(七) 非阻塞模式+中断实现读取数据

    当中断发生时,驱动程序会跳转到中断处理的函数入口,实现了中断的捕获和处理,但这样还不够。要让用户能够获取到中断分析的结果,我们将创建一个描述中断事件的结构体对象。硬件产生中断后,驱动代码将对中断事件的分析结果保存在结构体变量中,用户需要的时候,直接通过接口函数获取这个结构体的数据。 内核层: 硬

    来自 王建峰
    00
  • avatar 王建峰 2018-11-16 19:03:53

    嵌入式内核及驱动开发之学习笔记(六) 驱动层中断实现

    由于中断信号的突发性,CPU要捕获中断信号,有两种方式。一是不断轮询是否有中断发生,这样有点傻;二是通过中断机制,过程如下: 中断源 ---> 中断信号  --->  中断控制器 --->  CPU  中断源有很多,CPU拿到中断信号,如何区分是哪一个中断源产生?那么一定有一个

    来自 王建峰
    01
  • avatar 王建峰 2018-11-15 22:36:16

    2018/11/15小结

    发现自己在最近,遇到程序不愿意动手。以前总是以为看懂意思 知道其中内部的原理就行了,到了真正做程序的时候也不会让你去实现其中的细节。 就在今天,我调一个简单的程序‘折腾’一个多小时无果之后。。现在忽然觉得以前的想法是不对的,至少是片面的。。 平时不重视实践,关键时刻就从外部找解决,现在已经养成的

    来自 王建峰
    00
  • avatar 王建峰 2018-11-14 20:34:51

    嵌入式内核及驱动开发之学习笔记(五) 编写字符驱动步骤总结

    1,实现模块加载和卸载入口函数         module_init(chr_dev_init);         module_exit(chr_dev_exit); 2,在模块加载入口函数中     a, 申请主设备号  (内核中用于区分和管理不同字符设备)              reg

    来自 王建峰
    01
  • avatar 王建峰 2018-12-03 19:28:58

    BOA服务器移植

    写在最前面 华清远见教育集团 15年专注高端IT培训 做良心教育,做专业教育,做受人尊敬的职业教育 创客学院官网:http://www.makeru.com.cn/ 华清远见创客学院嵌入式课程链接:http://www.makeru.com.cn/emb 华清远见创客学院物联网课程链接:

    来自 王建峰
    00
  • avatar 王建峰 2018-11-18 18:20:38

    嵌入式内核及驱动开发之学习笔记(十一) 中断优化处理

    ARM cortex-A系列的内核不支持中断嵌套。在内核中断函数中,如果中断处理时间过长,产生中断嵌套,重者系统崩溃,轻者也会影响其他事件处理。这也是中断中不能使用延时函数的原因。 但是有些高实时性设备(比如网卡),就是需要处理大量的业务。为了满足中断处理时间尽量短的原则,我们将一些简单的处理放在

    来自 王建峰
    00
  • avatar 王建峰 2018-11-14 20:32:28

    嵌入式内核及驱动开发之学习笔记(四) 规范化代码

    前面笔者已实现了用户程序控制led灯闪烁的驱动代码,但是由于代码不规范,显得乱七八糟的,因此需要规范化。如果比较大一点的工程没有规范的话,也不利于后期的跟新与维护。分析先前的程序不规范点有二: 定义的变量多而且散乱 程序没有错误处理机制 C语言虽然是面向过程的语言,但是可以利用结构体来

    来自 王建峰
    01
  • avatar 王建峰 2018-11-13 21:24:44

    嵌入式内核及驱动开发之学习笔记(二) 实现应用控制驱动

    Linux系统根据驱动程序实现的模型框架将设备驱动分成字符设备驱动、块设备驱动、网络设备驱动三大类。这里简单理解一下概念 字符设备:设备按字节流处理数据,通常用的串口设备、键盘设备都是这种。 块设备:设备按块单位对数据处理,通常是存储设备。 网络设备:顾名思义,建立在socket接口上

    来自 王建峰
    01
  • avatar 王建峰 2018-11-12 19:56:53

    嵌入式内核及驱动开发之学习笔记(一) 认识与使用驱动模块

    应用层的进程是通过内核层驱动来访问硬件的,Linux内核源码在每次编译之后生成一个总的镜像,将镜像加载内存中运行并使用(内核在系统运行时会移植占用内核空间)。驱动属于内核源码的一部分,如果每次修改驱动都要重新编译加载内核的话,这态麻烦了,所以我们通过模块,使驱动可以独立于内核镜像之外,并能动态的加载

    来自 王建峰
    01
  • avatar 王建峰 2018-11-09 18:54:46

    嵌入式系统移植笔记(七) --第三方驱动移植(黑盒子移植)

    由于嵌入式系统分层,应用层要想操作硬件需通过内核层。驱动对上提供系统调用函数,对下封装了对底层硬件的一些基本操作。笔者目前不了解驱动程序的编辑,所以本章是在已经有驱动程序(fs4412_led_drv.c)和对应的应用程序(fs4412_led_app.c),来实现黑盒子移植(不去理解驱动程序的细节

    来自 王建峰
    00
  • avatar 王建峰 2018-11-07 18:11:30

    嵌入式系统移植笔记(六) --内核移植

      硬件环境 开发板 FS4412(华清远见的板子,基于Cortex-A9的处理器) PC机 Ubuntu系统 (Linux大家庭中一个发行版) 网线 (速度较快,通过网络xieyi协议传输文) 串口线(与开发板进行命令交互)   前提 使用已经移植好的U-BOOT,

    来自 王建峰
    00
  • avatar 王建峰 2018-11-07 18:11:16

    嵌入式系统移植笔记(五) --内核的配置和编译

    现在Linux内核源码的ARM体系结构已经引入了设备树的概念。设备树是描述硬件的数据结构,将之前配置在内核源码中的一部分提取出来。所以分别对内核和设备树文件进行配置和编译。本章节仍然以三星的exy4412芯片为例。 通过内核的配置文件可以对内核进行配置,可以通过make menuconfig来

    来自 王建峰
    00
  • avatar 王建峰 2018-11-07 18:11:01

    嵌入式系统移植笔记(四) --认识Linux内核

    Linux内核概念 从技术上说 linux 是一个内核,而一个内核不是一套完整的操作系统。通常我们使用的 linux 系统是一个集 linux 内核、工具集、各种库、桌面管理器、应用程序等一体的一个发布包 (发行版)‏。 对于一个嵌入式产品,应用要在系统上运行。小公司看中成本,中小级别公司产品

    来自 王建峰
    00
  • avatar 王建峰 2018-11-05 19:48:57

    嵌入式系统移植笔记(三) --分析U-Boot

    对于exynos4412的U-Boot的说明 我这边开发板使用了三星的exynos4412芯片,它比较特殊的之处是,启动分为4个阶段: BL0 --> BL1 --> BL2 --> U-Boot BL0: ARM的起始地址都是0地址, 三星的芯片一般将0地址映射到iROM中

    来自 王建峰
    10
  • avatar 王建峰 2018-11-05 19:48:25

    嵌入式系统移植笔记(二) --认识U-BOOT

    内容 bootloader概念与启动过程介绍 U-Boot概念 U-Boot常用命令 U-Boot环境变量 U-Boot目录分析 U-Boot编译,使用   Bootloader:在操作系统内核或用户应用程序运行之前运行的一小段代码。对软硬件

    来自 王建峰
    00
  • avatar 王建峰 2018-11-03 21:27:39

    2018/11/3小结

    看了大半天教学视屏,对于其中描述的一堆“乱七八糟”的理论概念,头脑一直处于似懂非懂的状态。有时候觉得那里有些不对劲,问问题却又找不到问题的所在点。。。 走出卧室,随便走走,散散心情。给家里打个电话,恰好家人正在忙碌工作,没几分钟结束了通话。又转了一圈,回到卧室。     想想自己的学习方法确

    来自 王建峰
    00
  • avatar 王建峰 2018-11-02 07:37:25

    TCP/IP学习笔记(11)-tcp交互数据流,成块数据流

    转载于:Linux就该这么学   目前建立在TCP协议上的网络协议特别多,有telnet,ssh,有ftp,有http等等。这些协议又可以根据数据吞吐量来大致分成两大类: (1)交互数据类型,例如telnet,ssh,这种类型的协议在大多数情况下只是做小流量的数据交换,比如说按一下键盘,回显一

    来自 王建峰
    00
  • avatar 王建峰 2018-11-02 07:37:19

    TCP/IP学习笔记(10)-tcp连接的建立与终止

    转载于:Linux就该这么学     TCP连接的建立可以简单的称为三次握手,而连接的中止则可以叫做四次握手。 TCP是一个面向连接的协议,所以在连接双方发送数据之前,都需要首先建立一条连接。这和前面讲到的协议完全不同。前面讲的所有协议都只是发送数据而已,大多数都不关心发送的数据是不是送

    来自 王建峰
    00
  • avatar 王建峰 2018-11-01 12:33:08

    TCP/IP学习笔记(9)-DNS域名系统

    转载于:Linux就该这么学   前面已经提到了访问一台机器要靠IP地址和MAC地址,其中,MAC地址可以通过ARP协议得到,所以这对用户是透明的,但是IP地址就不行,无论如何用户都需要用一个指定的IP来访问一台计算机,而IP地址又非常不好记,于是就出现了DNS系统。 DNS系统介绍 D

    来自 王建峰
    00
  • avatar 王建峰 2018-11-01 12:32:59

    TCP/IP学习笔记(7)-广播,多播IGMP协议

    转载于:Linux就该这么学   单播,多播,广播的介绍 单播(unicast) 单播是说,对特定的主机进行数据传送。例如给某一个主机发送IP数据包。这时候,数据链路层给出的数据头里面是非常具体的目的地址,对于以太网来 说,就是网卡的MAC地址(不是FF-FF-FF-FF-FF-FF这样的地

    来自 王建峰
    00
  • avatar 王建峰 2018-11-01 12:32:54

    TCP/IP学习笔记(6)-UDP协议

    转载于:Linux就该这么学   UDP简要介绍 UDP是传输层协议,和TCP协议处于一个分层中,但是与TCP协议不同,UDP协议并不提供超时重传,出错重传等功能,也就是说其是不可靠的协议。 UDP协议头 UDP端口号 由于很多软件需要用到UDP协议,所以UDP协议必须通过某个标志用以区

    来自 王建峰
    00
  • avatar 王建峰 2018-11-01 12:32:49

    TCP/IP学习笔记(5)-IP选路

    转载于:Linux就该这么学   静态IP选路 一个简单的路由表 选路是IP层最重要的一个功能之一。前面的部分已经简单的讲过路由器是通过何种规则来根据IP数据包的IP地址来选择路由。这里就不重复了。首先来看看一个简单的系统路由表。 Destination     Gateway     

    来自 王建峰
    00
  • avatar 王建峰 2018-11-14 20:31:00

    嵌入式内核及驱动开发之学习笔记(三) 点灯实验

    完成应用程序通过驱动控制硬件的实现。实验建立在之前的框架上,我们先实现用户层与内核层之间的数据交互,驱动程序拿到用户传来的指令后,就可以执行点灯的动作了。   应用程序与驱动数据交互 对于驱动程序而言,使用copy_to_user 和 copy_from_user函数与应用程序进行数据交互。当

    来自 王建峰
    01
  • avatar 王建峰 2018-11-09 18:54:52

    嵌入式系统移植笔记(八) --制作rootfs

    Linux内核启动后,需要挂载根文件系统。本章介绍文件系统的制作过程,并且让开发板通过网络远程挂载nfs系统来验证制作的rootfs。。   文件系统格式 上面不同的文件系统格式,有适合不同的应用场合。nfs rootfs,实际nfs是将服务器端的目录通过网络的形式共享出去,是把服务端文件

    来自 王建峰
    00
  • avatar 王建峰 2018-11-04 21:51:57

    嵌入式系统移植笔记(一) --搭建开发环境

    在嵌入式产品中,操作系统充当硬件资源的管理员的角色,对下有硬件层采集信息或者执行功能,对上还需为应用程序提供适合的API接口以便调用。有着承上启下的重要作用。具体硬件产品用公司或者提供商设计,移植系统时,上层跑什么应用程序也不必操心,我们需要根据硬件定制一个平台。 应用程序不能直接去操作硬件(裸

    来自 王建峰
    01
  • avatar 王建峰 2018-11-01 12:33:04

    TCP/IP学习笔记(8)-tcp协议

    转载于:Linux就该这么学     终于看到了TCP协议,这是TCP/IP详解里面最重要也是最精彩的部分,要花大力气来读。 简要介绍 TCP和UDP处在同一层---传输层,但是TCP和UDP最不同的地方是,TCP提供了一种可靠的数据传输服务,TCP是面向连接的,也就是说,利用TCP通信的

    来自 王建峰
    00
  • avatar 王建峰 2018-11-01 12:32:44

    TCP/IP学习笔记(4)-ICMP,ping,traceroute

    转载于:Linux就该这么学       IMCP协议介绍 当传送IP数据包发生错误--比如主机不可达,路由不可达等等,ICMP协议将会把错误信息封包,然后传送回给主机。给主机一个处理错误的机会,这 也就是为什么说建立在IP层以上的协议是可能做到安全的原因。ICMP数据包由8bit的错误类

    来自 王建峰
    00
  • avatar 王建峰 2018-11-01 12:32:38

    TCP/IP学习笔记(3)-IP、ARP、RARP协议

    转载于:Linux就该这么学     把这三个协议放到一起学习是因为这三个协议处于同一层,ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息。数据链路层可以从ARP得到数据的传送信息,而从IP得到要传输的数据信息。 IP协议 IP协议是TCP/IP协议的核心

    来自 王建峰
    00
  • avatar Surlaroute 2017-12-01 22:12:44

    微信小程序与Java后台的通信

    一、写在前面 最近接触了小程序的开发,后端选择Java,因为小程序的代码运行在腾讯的服务器上,而我们自己编写的Java代码运行在我们自己部署的服务器上,所以一开始不是很明白小程序如何与后台进行通信的,然后查找资料发现结合了官方提供的api后好像和我们普通的web前后端通信也没有多大的区别,有想法后

    来自 Surlaroute
    00
  • avatar 王建峰 2018-11-01 12:32:20

    tcp/ip学习笔记(1)-基本概念

    转载于:Linux就该这么学       为什么会有tcp/ip? 在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别。就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样。计算机使用者意识到,计算机只是单兵作战并不会发挥

    来自 王建峰
    00