通信协议(communications protocol)官方给出的定义是指双方实体完成通信或服务所必须遵循的规则和约定。协议定义了数据单元使用的格式,信息单元应该包含的信息与含义,连接方式,信息发送和接收的时序,从而确保网络中数据顺利地传送到确定的地方。
C语言是当中最广泛的计算机编程语言,是所有计算机编程语言的祖先,其他计算机编程语言包括当前流行的Java语言,都是用C语言实现的,C语言是编程效率最高的计算机语言,既能完成上层应用开发,也能完成底层硬件驱动编程,在计算机程序设计当中,特别是在底层
在数据结构中,根据不同的数据组织方式可以分为四类基本逻辑结构(关系):集合结构、线性结构、树形结构、图状结构(网状结构);根据存储结构可以分为:顺序存储、离散存储。
在Linux开发环境上学习C语言,对于一个从零开始学习嵌入式的门外汉来说,是一个很好的选择,学习了C语言,又熟悉了Linux 操作系统。
在C语言的补习课程中,有些学生对于C语言的结构不是很了解,为此为了让学生对于C语言有多的认识,有利于促进C语言的学习,本文对C语言的程序结构进行了简单的分析与解释。
一、函数原型,有好多外部引用的参数。 二、测试optind表示下一次索引的下标值。opterr表示是否往标准出错中发送信息。 三、字符都没有冒号的可以写在一起。 四、两个冒号的选项可加可不加参数,选项与参数分开把空格当成参数。 五、opterr为0表示不往标准出
Author:runner 2017.10.15 声明 平台: fs4412 (Samsung exynos4412) u-boot版本: u-boot-2010.03-FS4412 简述 在FS4412的开发中,uboot通过movi、fdisk、fastboot等命令对emmc做了相应的分区操作,这里主要分析,这些命令是如何对emmc进行分区的,每条
在Linux网络编程中,一般建立在两端之间,服务器端和客户端。客户端是面向用户的应用,而服务器端要处理客户端所提出的请求。通常一个服务器要面向多个客户端,保证对每个客户端都能高效的处理,这时候需要并发操作。实现并发控制的方法有两个,一个是并发服
关键字:u-boot 裸板 串口 uart 调试 loadb kermit 在我们熟悉硬件平台的过程当中,通常会使用裸板代码调试方式进行试验验证。常用手段是通过JTAG+openocd 进行GDB端调试,这种方式可以实时观察代码对硬件的影响及代码的执行顺序。但是操作相对比较啰嗦,并
TCP连接建立 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。 服务器必须准备好接受外来的连接。这通过调用socket、 bind和listen函数来完成,称为被动打开(passive open)。 第一次握手:客户通过调用connect进行主动打开(active op
首先,我们要了解一下,微信提供有个东西叫做 微信硬件平台。 网址:http://iot.weixin.qq.com/ 下面再介绍一下ESP8266模块 原理图如下: 模块是安信可公司做的,我们也可以自己动手来做这个模块,安心可的模块接的是一个RGB灯,我们也可以接其他的东西,比
最近在进行智能仓储项目的研究时,为了方便A9模块数据的处理,对于M0模块通过传感器的方式采集数据,改成了srand函数和rand函数来模拟数据,这样方便我把精力更多的放在A9模块的数据的处理上,提高了工作的效率,下面给大家介绍一下这两个函数的具体使用:
本篇适合对象:有单片机编程经验、C编程、正在学习芯片PWM波控制的人员。 平台: FS_S5PC100硬件开发板。 PWM波又叫脉冲宽度调制波,宽度其实就是高电平占整个周期的比例,也就是常说的占空比。 当高低电平各占到一半周期时,也就是占空比为50%,那么这就是标
我们知道协调器(coordinator)和终端节点(enddevice)是通过不同的工程区分的,但我们发现两个工程包含的文件又大致相同。那协议栈中如何判断设备的类型并进行相应的操作呢? 首先带大家认识一个全局变量zgDeviceLogicalType,他就是设备逻辑类型。这个变量位于
【实验目的】 学习STM32的Cortex-M0系列芯片的使用 学习IAR开发软件的使用方法,如仿真调试 通过本实验掌握ModBus协议 【实验环境】 STM32F051 Cortex-M0模块 IAR开发工具和相应的仿真器 PC机 XP、win7/win8/win10(32/64) 【实验内容】 利用STM32F051库函数
信噪比是电子技术中经常用到的一个词组,知道它的确切含义有一定意义。为此,这里将对其做个简单介绍。 我们知道,收音机听广播或录音机放音乐时,扬声器里除了广播声和音乐声外,总还含有各种杂声。这些杂声有的是雷电、电机、电器设备等产生的干扰;有的是
一般常用的PCB元件库Altium Designer系统中有自带的,但是有些封装需要我们自己来画。 要想自己画元器件封装,首先需要建立一个pcblib库文件, 【File】-【New】-【Library】-【PCB Library】,如下图操作。 创建好之后,是这样,如下图 但是还没有保存,点一
我们采用BLE-CC254x-1.3.2中的KeyFob工程展开分析. 我们都知道在C代码中,程序的入口都是main()函数,这个函数在KeyFob_Main.c中 打开文件,可以看到这个文件包含了一些必要的头文件和一个函数的申明,我们暂时不理会那个申明的函数,先看main都做了些什么工
1 打开数据库连接sqlite3_open用法 原型: int sqlite3_open( const char *filename, /* Database filename (UTF-8) */ sqlite3 **ppDb /* OUT: SQLite db handle */ ); 用这个函数开始数据库操作。需要传入两个参数,一是数据库文件名,比如:E:/test.db。
一:c语言存储类型在c语言中起着重要的作用,具体的分为以下4种 1. 自动变量(auto):函数中所有的非静态局部变量 2. 静态变量(static):在变量前加上static关键字的变量。 3. 外部变量(extern):一般用作全局变量作用域的扩展 4. 寄存器类型(register
最近在备C++的课程,所以把在备课过程中遇到的问题进行了总结和梳理,先把C++中的static关键字的用法做以下总结。 C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明stati
本文目录 直接引用 一、什么是指针? 二、指针的定义 三、指针的初始化 四、指针运算符 五、指针的用途举例 六、关于指针的疑问 指针是C语言中非常重要的数据类型,如果你说C语言中除了指针,其他你都学得很好,那你干脆说没学过C语言。究竟什么是指针呢?我
直奔主题,先上一道例题,大家思考一下,为什么答案是这个样子! 下面是linux系统的输出结果: (1)几点基础注意 变量定义:是在内存中确定变量的位置和大小,即:定义时分配内存。例如:int a; 赋值:是在擦除对象当前值,并用新的值代替。例如:a = 2; 初
1. 起源: 类实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,仅能通过类的成员函数才能读写。如果数据成员定义为公共的,则又破坏了封装性。但是某些情况下,需要频繁读写类的数据成员,特别是在对某些成员函数多次调用时,由于参数传递、类型检
主机:Windows 7 Qt:5.9.1 MJPG-streamer是一款免费基于IP地址的视频流服务器,它的输入插件从摄像头读取视频数据,这个输入插件产生视频数据并将视频数据复制到内存中,它有多个输出插件将这些视频数据经过处理,其中最重要的输出插件是网站服务器插件,它
最近很多同学希望了解C语言的内存分配,虽然可以在互联网上找到诸多的讲解,但是你会发现要么不通俗易懂,要么不算太全面。而这些对于新手而言,又绝对会把你弄得晕头转向的,所以在此对网上和书本上的诸般讲解,进行了通俗的翻译和总结。 在说内存分配之前
在linux内核版本2.5新出现了/sys 目录,此目录结构向用户展现了设备驱动模型的层次结构。/sys 提供了一个设备驱动与用户之间的交互接口,对应于sysfs 虚拟文件系统。其中的每一个目录都对应一个内核对象kobject。目录中存在的文件对应一个属性。目录为用户展
前言: Linux中如何对时间进行管理?时钟节拍的概念及延时函数的用法很多同学都用不好,下面我给大家总结一下。 一,linux时钟运作机制 1,linux时钟运作机制 大部分PC机中有两个时钟源,分别是实时时钟(RTC)和 操作系统(OS)时钟 实时时钟也叫CMOS时钟,
今天我们通过内核中的源码共同分析一下Linux设备驱动中申请设备号的过程,首先在Linux内核为我们提供了两种申请设备号的方式,一是指定设备号注册,二是动态分配设备号;分别用到一下两个函数: register_chrdev_region(); alloc_chrdev_region(); 设备号的
在Linux内核驱动中,难免的两个内核模块之间具有依赖关系,他们或许是通过进行某种传参,获取进行函数之间的调用。因为每一个模块在Linux系统Kernel中是相对独立的,所以Linux内核驱动模块之间进行通信就不能直接使用函数调用等方式了。 一、Linux内核模块参
以下内容是参考《linux/unix系统编程手册》对epoll的一个个人总结。 一、epoll的优点 同I/O多路复用和信号驱动I/O一样,linux的epoll API可以检查多个文件描述符上的I/O就绪状态。epoll API的主要优点 1.当有大量的文件描述符需要检查时,epoll的性能延展性
最近在看一些云计算的一些东西,无意中发现Docker,这是一个虚拟的管理软件,可以整么说,平时我们看到的windows下的一个个文件夹非常有纹理,但是时间长了,会发现非常乱,而且非常难整理。 而我们Linux上运行的软件服务等,杂乱无章,尤其在搭建比较大的项
Bitmap在Android中是用来处理图片最重要的类之一。它可以获取到图片的信息,进行图像剪切、旋转、缩放等操作,并可以指定格式保存图像文件,以下详细讲解Bitmap的使用情况 一、Bitmap的生成 1.1 BitmapFactory decode出Bitmap Bitmap实现在android.graphics
一、概述 在使用自定义控件的过程中,可能会碰到点击或者滑动没有效果,尝试千万遍依旧对你不理不睬,心中难免激动万分。要明白人家为何不晒你就得去了解Android的事件分发机制,这里会有你想要的答案。 二、实例展示 1、实例 布局文件: ?xml version=1.0 e
Node.js最大的特点就是异步式I/O(或者非阻塞I/O)与事件紧密结合的编程模式。这种模式与传统的同步式I/O线性的编程思路有很大的不同,因为控制流很大程度上要靠事件和回调函数来组织,一个逻辑要拆分为若干个单元。 异步这个词其实很早就诞生了,但是它的大
Android中常用的对话框有通知对话框、列表对话框、单选对话框、多选对话框以及进度对话框。其中,通知对话框、列表对话框、单选以及多选对话框由AlertDialog.Builder创建,进度对话框由ProgressDialog创建。 常用方法: setIcon 设置对话框标题栏左侧的那个
相信大家对MVC都是比较熟悉了:M-Model-模型、V-View-视图、C-Controller-控制器,MVP作为MVC的演化版本,那么类似的MVP所对应的意义:M-Model-模型、V-View-视图、P-Presenter-表示器。 从MVC和MVP两者结合来看,Controlller/Presenter在MVC/MVP中都起着逻
随着移动技术的发展,许多传统的电子产品也开始增加移动方面的功能,比如过去只能用来看时间的手表,现今也可以通过智能手机或家庭网络与互联网相连,显示来电信息、微信和天气信息等内容。这种新手表可被称作智能手表,这类产品主要是为消费者在不方便使用
在Android开发中,经常会使用到ImageView控件,其中scaleType属性,可以对图片的缩放和位置做出相应的调整,下面对scaleType的九个取值做出详细的解释: 一、matrix 不缩放。图片大于view时将会被裁剪。 图片(不论大小)一律不缩放,并从左上角开始平铺,比
传感器概述 Android系统支持的传感器类型 与传感器相关的类和接口 监听传感器上报数据 传感器 概述 大多数Android设备都会内置传感器,用来测量运动,旋转和环境条件(重力,温度,湿度等),这些传感器可以将采集到的高精度的数据上报给应用程序。 我们可以
异常处理是ARM处理处理日常事务的一种重要方式,它是ARM体系结构的核心组成部分,也是理解上的一个难点,在此专门撰文讲解异常处理的原理及流程,为广大学习ARM芯片的爱好者提供一点借鉴,如有纰漏,请给予指正,谢谢。 一.异常分类 (1)复位异常 当CPU刚上
在ARM处理器中,如果数据或指令是2字节的那么其在存储器中的存储要是半字对其的(存储的起始地址的最低一位是0b0),即存储的首地址必须是2的整数倍。如果数据或指令是4字节的那么该数据或指令在存储器中的存储是字对其的(存储的起始地址的最低两位都是0b00
1.前言 在介绍基于三星exynos4412型号芯片的中断处理之前,我们需要先做的是理解arm的异常处理机制,然后在这个基础之上去学习三星的exynos4412芯片的中断处理。其实exynos4412使用的CPU核就arm的contex-a9芯片。 2.arm异常处理机制 在arm中,首先将处理器的
Hi3515是华为海思半导体的一款多媒体处理芯片,这款芯片广泛的被应用于安防监控行业。它采用arm9架构的V5指令集,为了方便的以后的工作,加深对该芯片的了解,我对hi3515上电后执行的一段汇编代码做了大致分析,分析以注释的形式书写在start.s的文件中。 /*
只要正常的程序流被暂时中止,处理器就进入异常模式。例如响应一个来自外设的中断。在处理异常之前,ARM内核保存当前的处理器状态,这样当处理程序结束是可以恢复执行原来的程序。 注意:如果同时发生两个或更多异常,那么将按照固定的顺序来处理异常 。 ARM
在ARM处理器中一条指令的执行分为取指、译码、执行三个阶段,由于指令流水线的存在造成当前执行的指令的地址是PC-8(ARM指令集),那么当前执行指令的下一条指令的地址应该是PC-4,所以在异常产生时处理器会将PC-4的值保存到对应模式的LR寄存器中,但是该返回
在上个月的博文中,我们介绍了如何使用Kotlin语言来进行Android开发,那么在本篇文章中,介绍一下Kotlin语言的简单语法。详细的语法可以访问其官方网站。 1、方法的使用 定义一个方法使用fun关键字,如下所示: fun add(a: Int, b: Int): Int { return a + b
当用户触摸屏幕时,系统会对触摸事件做出相应的相应,这个事件会产生一个MotionEvent,系统根据一定的规则将其传递给View进行处理,这个过程就是事件分发机制了。 事件的传递分为两个阶段,即捕获阶段和冒泡阶段。捕获阶段:事件最先由最外层的View接收,然
1. 概述 FS4412开发板有一个4通道(0/1/2)、10/12比特精度的 ADC ,其中: 1) ADCIN0: 在核心板中引出 2) ADCIN1: 在核心板中引出 3) ADCIN2: 在核心板中引出 4) ADCIN3: 连接开发板的VR1电位器 本文主要介绍基于IIO驱动框架的ADC的简单实现方法。 2. 配置DT
MJPG简介: MJPG是MJPEG的缩写,但是MJPEG还可以表示文件格式扩展名.全名为 Motion Joint Photographic Experts Group,是一种视频编码格式,Motion JPEG技术常用与闭合电路的电视摄像机的模拟视频信号翻译成视频流,并存储在硬盘上。 典型的应用如数字视频记
为什么要移植iconv库? 在项目进行过程中,有这样一个需求。每辆车的车牌由汉字和字母、数字组成,例如:[京A99999],当然我们在这基础上还添加了车牌的颜色,所以车牌信息在数据传输过程中显示的是[蓝牌:京A99999]。车牌信息是通过树莓派用OPENCV做的图像识
首先更新虚拟机下载源 sudo apt-get update 在安装mysql时./configure容易出现错误error: No curses/termcap library found 原因是缺少ncurses安装包 解决方法: sudo apt-cache search ncurses sudo apt-get install libncurses5-dev 如果要将库移植到arm板
主机: Centos Linux 7 64位 目标机: FS4412 交叉编译工具链: arm-linux-gcc 4.6.4 ser2net提供了网络和串口之间的连接,可以很方便完成网络和串口之间的数据透传,在很多项目中都有其应用。比如在基于Wi-Fi的智能小车项目中,ser2net用于接收客户端发来的
声明:本博文适用于 华清远见智能小车上的STM32主控板的开发。在该电路板上,核心芯片为STM32F10RCT。电机驱动使用L298芯片 1 获取到电路元件 同时要获取到如下一些东西: 1.1 电路板 1.2 芯片说明手册 ( 芯片寄存器手册 + 电路原理图) 2 如何我们要做的是
一、 移植环境 1.主机: Ubuntu 12.04 32bit 发行版 2.目标机:fs4412(cortex_a9)平台 3.交叉编译器:arm-none-linux-gnueabi 4.内核版本:linux-3.14 5. USB转串口设备:PL2303芯片 二、内核的配置 1.配置内核 make menuconfig 2.选中device驱动 3.选中USB s
1 概述 以太网高速稳定的特性比Wifi无线传输有一定的优势,当无线传输无法满足一些智能设备,需要开发设计以太网模块。Linux支持以太网系统,结合4412开发板,重点学习dm9000驱动的设计与实现。 2 硬件资源分析 2.1 4412开发板以太网方案 UT4412BV02 评估板
全国咨询热线:400-611-6270,双休日及节假日请致电值班手机:15010390966
在线咨询: 曹老师QQ(3337544669), 徐老师QQ(1462495461), 刘老师 QQ(3108687497)
企业培训洽谈专线:010-82600901,院校合作洽谈专线:010-82600350,在线咨询:QQ(248856300)
Copyright 2004-2018 华清远见教育集团 版权所有 ,京ICP备16055225号,京公海网安备11010802025203号
免费在线咨询立即咨询
免费索取技术资料立即索取
嵌入式技术交流群QQ:330864365
电话咨询400-611-6270
填表格,免费索取技术资料
手机:
QQ:
Email:
所在地区: