- 博客(46)
- 资源 (10)
- 收藏
- 关注
原创 C语言面试题100
1.请填写bool , float, 指针变量 与“零值”比较的if语句。提示:这里“零值”可以是0, 0.0 , FALSE 或者“空指针”。例如int 变量 n 与“零值”比较的 if 语句为:if ( n ==0 ) if ( n != 0 ) 以此类推。bool: if(flag) if(!flag)float: const fl...
2022-05-11 16:44:50
18399
转载 C语言线程库的使用
转自公众号 :嵌入式ARM1. 线程概述线程是轻量级的进程(LWP:light weight process),在 Linux 环境下线程的本质仍是进程。在计算机上运行的程序是一组指令及指令参数的组合,指令按照既定的逻辑控制计算机运行。操作系统会以进程为单位,分配系统资源,可以这样理解,进程是资源分配的最小单位,线程是操作系统调度执行的最小单位。先从概念上了解一下线程和进程之间的区别: 进程有自己独立的地址空间,多个线程共用同一个地址空间 线程更加节省系统资源,效率不仅可以保持的,
2021-09-18 10:37:21
368
转载 Linux如何调试内存泄漏
Linux如何调试内存泄漏内存泄漏是指由于疏忽或错误造成程序未能释放已经不再使用的内存。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内存之前就失去了对该段内存的控制,从而造成了内存的浪费。我们平时开发过程中不可避免的会遇到内存泄漏问题,你是如何排查的呢?估计你是使用下面这几个工具吧? valgrind mtrace dmalloc ccmalloc memwatch debug_new..
2020-06-02 14:19:48
691
原创 16进制转字符串&&字符串转16进制
void HexToStr(char *pbDest, char *pbSrc, int nLen){ unsigned char ddl,ddh; int i; for (i=0; i<nLen; i++) { ddh = 48 + (unsigned char)pbSrc[i] / 16; ddl = 48 + (uns...
2020-05-07 15:56:17
3029
原创 NBIOT模组M5310接入中国移动物联网开放平台示例文档
版权声明:本文为转载,并非原创M5310模组采用的是海思Hi2110芯片,在全球eSIM NB-IoT模组中的尺寸最小,仅19×18.4×2.7mm,节省布板面积达30%以上,具有工业级、低功耗、深覆盖、集成度高的特性,是中国移动在NB-IoT领域主打的一款核心产品。模组内置中国移动物联网开放平台OneNET协议,可有效提高用户的产品可靠性和稳定性,并方便用户快速接入OneNET云平台,减少开...
2019-10-18 13:22:23
3035
1
转载 TCP
来源:公众号【编程珠玑】作者:守望先生前言网络编程几乎是每一门编程语言都会涉及的内容,虽然各种语言调用的方式可能不一样,但它们背后的原理支持都是一样的。因此本文将从TCP的连接的建立说起。在此之前,假设你已经对计算机网络有了最基本的认识。网络编程做什么当下网络应用数不胜数,如微信,可以让你通过网络与远在异国他乡的朋友交流沟通;如在线视频,让你通过网络就可以观看你喜欢的视频...
2019-07-03 09:16:47
454
转载 shell 常用
来源:公众号【编程珠玑】作者:守望先生前言在linux下使用shell编程常常能够极大简化我们的工作。而下面这些必备的知识你是否都掌握了呢?入参和默认变量对于shell脚本而言,有些内容是专门用于处理参数的,它们都有特定的含义,例如: /home/shouwang/test.sh para1 para2 para3 $0 $1 $2 $3 其...
2019-07-03 09:02:23
422
转载 STM32F103 使用TIM3产生四路PWM
转自https://www.cnblogs.com/jiwangbujiu/p/5616376.html?tdsourcetag=s_pctim_aiomsg/******************************************************************************** 程序说明 : 思路PWM波生成函数* 函数功能...
2019-04-16 21:37:34
7121
转载 linux 目录结构
来自华清远见 另外:https://blog.youkuaiyun.com/wangrongrongwq/article/details/79624797
2019-01-12 16:16:06
160
转载 嵌入式试题15道与解析
嵌入式试题15道与解析嵌入式ARM 3天前 来源于优快云青竹雨仙 1、ARM指令和Thumb指令。 解答:在ARM的体系结构中,可以工作在三种不同的状态,一是ARM状态,二是Thumb状态及Thumb-2状态,三是调试状态。而ARM状态和Thumb状态可以直接通过某些指令直接切换,都是在运行程序,只不过指令长度不一样而已。 ARM状态:arm处理器工...
2019-01-07 17:04:56
2467
原创 双链表 插入,删除
#include <stdio.h>typedef struct dnode //节点类型定义{ char data; //节点的数据 struct dnode *prior;//节点的前驱指针 struct dnode *next;//节点的后继指针}dlinklist;//双链表插入int d_list_insert(dlink...
2019-01-05 13:52:01
345
1
原创 单链表简单操作
#include<stdio.h>#include<stdlib.h>typedef char datatype;typedef struct node{ datatype data; //节点数据 struct node *next;//节点指针}linklist;//链表建立//返回:头指针linklist * creat_list()...
2019-01-04 17:22:19
921
原创 函数指针 C/C++
指向函数的指针函数指针是指指向函数而非指向对象的指针。像其他指针一样,函数指针也指向某个特定的类型。函数类型由其返回类型以及形参表确定, 而与函数名无关:// pf points to function returning bool that takes two const stringreferencesbool (*pf)(const string &, const str
2017-11-26 22:31:16
269
原创 C/C++ static 静态变量 1
静态局部对象一个变量如果位于函数的作用域内,但生命期跨越了这个函数的多次调用,这种变量往往很有用。则应该将这样的对象定义为 static(静态的)。static 局部对象确保不迟于在程序执行流程第一次经过该对象的定义语句时进行初始化。这种对象一旦被创建,在程序结束前都不会撤销。当定义静态局部对象的函数结束时,静态局部对象不会撤销。在该函数被多次调用的过程中,静态局部
2017-11-24 16:36:27
384
原创 C++ 中String
和字符串字面值的连接上面的字符串对象 s1 和 s2 直接包含了标点符号。也可以通过将 string 对象和字符串字面值混合连接得到同样的结果:string s1("hello");string s2("world");string s3 = s1 + ", " + s2 + "\n";当进行 string 对象和字符串字面值混合连接操作时,+ 操作符的左右
2017-11-21 16:20:07
297
转载 C/C++ volatile
轉載自: https://www.cnblogs.com/yc_sunniwell/archive/2010/07/14/1777432.html1. 为什么用volatile? C/C++ 中的 volatile 关键字和 const 对应,用来修饰变量,通常用于建立语言级别的 memory barrier。这是 BS 在 "The C++ Programming
2017-11-21 13:32:24
225
转载 ucos2裁剪
每个具体的嵌入式应用系统对实时操作系统的要求是不完全相同的,在实际做项目中,一般我们不可能全部用到UC/OS-II操作系统给我们的所有资源。并且为了减少引入UC/OS操作系统而占用系统的宝贵资源。我们要根据具体情况来对UC/OS操作系统进行裁剪,得到一个即满足需要,又非常紧凑的应用软件系统。在UC/OS的配置文件(OS_CFG.H)中,对相关的配置常量进行相关的设置。现对OS_CFG.
2017-10-09 11:18:21
1924
转载 CRC8讲解
转载:http://blog.youkuaiyun.com/zjli321/article/details/529984681、 CRC8标准生成多项式CRC-8 x8+x5+x4+1 0x31(0x131)CRC-8 x8+x2+x1+1 0x07(0x107)CRC-8 x8+x6+x4+x
2017-10-08 17:03:42
20627
4
转载 可重入函数与不可重入函数
摘自:嵌入式实时操作系统uCOSII-邵贝贝可重入性(Reentrancy)可重入型函数可以被一个以上的任务调用,而不必担心数据的破坏。可重入型函数任何时候都可以被中断,一段时间以后又可以运行,而相应数据不会丢失。可重入型函数或者只使用局部变量,即变量保存在 CPU 寄存器中或堆栈中。如果使用全局变量,则要对全局变量予以保护。程序 2.1 是一个可重入型函数的例子。
2017-09-24 22:06:28
877
转载 stm 32 在线升级
(扩展-IAP主要用于产品出厂后应用程序的更新作用,上一篇博文详细的对IAP 升级程序做了详细的分析http://blog.youkuaiyun.com/yx_l128125/article/details/12992773,考虑到出厂时要先烧写IAP 再烧写APP应用程序要烧写2次增加工人劳动力基础上写了“STM32 IAP+APP ==>双剑合一”链接稍后发,希望通过IAP程序的hex 文件
2017-09-15 10:25:57
1199
转载 stm32 IAR
(扩展-IAP主要用于产品出厂后应用程序的更新作用,考虑到出厂时要先烧写IAP 再烧写APP应用程序要烧写2次增加工人劳动力基础上写了“STM32 IAP+APP ==>双剑合一”链接稍后发)一、在进入主题之前我们先了解一些必要的基础知识----stm32系列芯片的种类和型号:startup_stm32f10x_cl.s 互联型的器件,STM32F105xx,STM32F
2017-09-15 10:21:32
999
转载 stm32在线升级
转载:http://bbs.elecfans.com/jishu_467138_1_1.html不需要拆机就能对产品进行固件升级是很多人想要的效果,不仅方便而且节省精力和成本。那么如何完成这项工作呢?接下来所介绍的Bootloader就可以完成这项工作,通过Bootloader引导程序完成固件的升级。下面来浅析STM32Bootloader设计。首先谈谈stm32的IS
2017-09-15 10:01:37
4128
1
转载 stm32的GPIO
Ⅰ、写在前面在开发STM32的时候,都需要对IO的模式进行配置(GPIO_InitStructure. GPIO_Mode = xxx)。但是,你们都知道各种模式的具体意义吗? 有的人问:IO口输出可以上拉吗? 开漏输出是干什么用的? 其实这些问题并不难,只要你了解到每一种模式的真正意思,相信这些问题都不会难道你。本文的内容比较基础,也比较实用,希望
2017-05-27 15:05:37
441
转载 RTS,CTS
Ⅰ我们都知道USART中RX和TX这两个引脚的功能,这两个引脚是USART串行通信最常见和必不可少的两个引脚。但我们在手册中会发现关于USART的其他引脚:USART_CK、USART_RTS、USART_CTS,如下图: 但我们大部分都没怎么使用过USART_RTS和USART_CTS这两个引脚。下面将给大家简单讲述一下关于U
2017-05-27 10:11:45
697
转载 Ⅱ、排序算法分类
转载:http://blog.youkuaiyun.com/ybhuangfugui/article/details/727588021.按存储分类:内部排序和外部排序内部排序:是数据记录在内存中进行排序; 外部排序:是因排序的数据很大,一般一次不能容纳全部的排序记录,在排序过程中需要访问外存。 内部排序高速、有效,是我们比较常用的排序方法。外部排序速度慢,效率
2017-05-27 09:25:36
131
转载 socket编程 及select poll epoll示例
转载:http://blog.youkuaiyun.com/mmz_xiaokong/article/details/87049881、关于字节排序 网际协议采用大端字节序,来传输多字节整数。 系统提供了转换的宏定义,如果主机与网际协议相同,则宏定义为空。2、客户端 socket -> connect(阻塞,三次握手)-> rcv3、服务器端 socket
2017-02-10 15:46:39
460
转载 epoll
epoll - I/O event notification facility在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且
2017-02-10 15:44:24
251
转载 一个Linux下C线程池的实现
转载 http://blog.youkuaiyun.com/zouxinfox/article/details/3560891什么时候需要创建线程池呢?简单的说,如果一个应用需要频繁的创建和销毁线程,而任务执行的时间又非常短,这样线程创建和销毁的带来的开销就不容忽视,这时也是线程池该出场的机会了。如果线程创建和销毁时间相比任务执行时间可以忽略不计,则没有必要使用线程池了。 下面是Linu
2017-02-10 15:42:37
258
原创 十进制转16进制字符
1.//10进制转16进制字符#include int main() { int num=0;char a[100]; int i=0; int m=0;int yushu; char hex[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};printf(
2017-01-14 21:52:13
1014
转载 Linux环境下段错误的产生原因及调试方法小结
转自http://www.cnblogs.com/panfeng412/archive/2011/11/06/2237857.html最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多、花费时间最长的问题就是著名的“段错误”(Segmentation Fault)。借此机会系统学习了一下,这里对Linux环境
2017-01-11 21:21:15
472
原创 根文件系统构建实验及过程详解
建立一个新建一个文件夹在里面建立rootfs文件夹,并建立linuxrc文件一、nfs方式启动自制简易文件夹形式的rootfs配置内核以支持nfs作为rootfs;在menuconfig中配置支持nfs启动方式(1)、配置网络部分,主要是使能CONFIG_IP_PNP以在2中能够看到Root file system on NFS选项Networking support Netw
2017-01-10 20:22:22
1727
原创 c语言数组
一维数组:定义:类型说明符 数组标识符[常量表达式] int iArray[5]引用:数组标识符[下标] iArray[4] 类型说明符:所有元素的类型数组标识符:数组形变量的名称下标:不要越界访问。引用时下标不能大于等于5初始化:1.定义时初始化: int iArrar[5]={0,1,2,3,4};2.部分初始化: int iArra
2016-12-30 14:31:28
342
转载 tar 解压
压缩tar –cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpgtar –czf jpg.tar.gz *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一 个gzip压缩过的包,命名为jpg.tar.gztar –cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,
2016-12-30 14:29:29
395
原创 朱有鹏老师课堂笔记,从uboot官方移植到s5pv210上(二)
Board_init_f中调用:sequence 1.banner信息补全:init_fnc_t *init_sequence[]中 display_banner在配置文件中加CONFIG_IDENT_STRING宏定义,2.#define CFG_PROMPT "x210 # "配置文件中,uboot命令行提示符3.int print_cpuinfo(void)
2016-12-14 10:21:17
2452
原创 根据朱有鹏老师课堂Uboot 2013.10版本移植到S5pv210开发板上第一阶段
前期准备:1.uboot下载地址 ftp://ftp.denx.de/pub/u-boot/2.参照物开发板的选择我们开发板使用的CPU是S5PV210,所以要找uboot中针对S5PV210或者S5PC110进行移植的作为参考。根据规律,我们应该参考include/configs/s5p_goni.h,对应的board在uboot/board/samsung/goni这个目录。3
2016-12-08 12:54:48
3292
转载 安装交叉编译工具链
1.下载arm-linux-gcc-3.4.1.tar.bz2到任意的目录下。 arm-linux-gcc-3.4.1.tar.bz2 的下载地址如下:http://www.handhelds.org/download/projects/toolchain/arm-linux-gcc-3.4.1.tar.bz22.解压 arm-linux-gcc-3.4.1.tar.bz
2016-12-07 22:05:01
363
转载 uboot分析二
,我首先说一说我以后的思路,对于u-boot呢,我会结合2440、6410、210这三款主流的学习芯片进行分析,首先会结合u-boot的源码以及我以前的arm启动流程一文http://www.cnblogs.com/wrjvszq/p/4204703.html 总结出u-boot的工作流程,然后以后的博文会结合u-boot源码、芯片手册等内容去分析,u-boot为什么去这么做。Ok我们
2016-12-07 14:54:46
387
转载 uboot分析一
由于u-boot比较庞大,所以我们分开来分析,对于一个大型的项目我们想快速的了解其代码架构和内容,最方便的方法就是分析Makefile,所以我们今天以三星的s3c2440来分析Makefile。我们今天通过对u-boot的分析要得到以下内容:1. U-boot的入口2. 链接地址l U-boot配置过程分析我们在编译u-boot之前首先要进行u-boo
2016-12-07 14:52:01
308
原创 储存Memory Hierarchy
硬盘、内存、 CPU寄存器,还有本节要讲的Cache,这些都是存储器,计算机为什么要有这么多种存储器呢?这些存储器各自有什么特点?这是本节要讨论的问题。由于硬件技术的限制,我们可以制造出容量很小但很快的存储器,也可以制造出容量很大但很慢的存储器,但不可能两边的好处都占着,不可能制造出访问速度又快容量又大的存储器。因此,现代计算机都把存储器分成若干级,称为Memory Hierarc
2016-12-02 17:05:11
1569
M5311的软硬件资料
2020-02-13
cjson例程.zip
2019-07-23
嵌入式硬件设计
2019-04-09
MODBUS通讯协议中文版
2017-09-19
从三星uboot移植到s5pv210上
2016-11-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人