
【编程技术】
文章平均质量分 79
guo8113
现从事于ARM Cortex M嵌入式软件开发。曾经从事于DM8168视频算法开发,Linux程序设计。
展开
-
KEIL MDK-ARM升级v5.34后报 warning: Reset_Handler changed binding to STB_WEAK
问题:之前的版本没有类似的warning, 升级KEIL到最新版本5.34后编译会有warning,C:xx\startup_xxx.S(94): warning: Reset_Handler changed binding to STB_WEAK原因:这是由于KEIL MDK-ARM升级后对于改变binding会触发warning,在以后的版本中会触发error。我们可以看到报warning的.S文件中有下列汇编声明: .globl Reset_Handler .we...原创 2021-04-16 10:06:55 · 835 阅读 · 0 评论 -
Linux shell文件查找命令find详述,xargs
Linux文件查找命令find,xargs详述原创 2014-09-20 11:11:32 · 5449 阅读 · 0 评论 -
C/C++字符串输入方法比较(带回车不带回车输入)
C/C++字符串输入方法比较(带回车不带回车输入)原创 2014-09-10 11:10:52 · 7199 阅读 · 0 评论 -
栈区,堆区,全局区,文字常量区,程序代码区详解(程序中不同类型数据所在区)
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两转载 2014-09-24 22:02:47 · 804 阅读 · 0 评论 -
C++用后缀表达式(逆波兰)求四则表达式值,采用STL中的stack
C/C++计算四则运算表达式的值原创 2014-09-10 10:17:19 · 4246 阅读 · 0 评论 -
memcpy的完美实现--卓越的教练是如何训练高手的
卓越的教练是如何训练高手的?(2009-08-06 12:44:53)转载▼标签:程序清单测试用例nullif源地址教育 编者按:我们知道,优秀的运动员除了自身的天赋和努力之外,出色的教练必不可少。一个成功的企业除了拥有出类拔萃的员工之外,同样需要一位出色的教练,那就是企业的CEO。由此可见,如果我们转载 2014-10-09 11:27:15 · 1058 阅读 · 0 评论 -
二叉树的非递归遍历--京东2015笔试回忆
二叉树的非递归遍历--京东2015笔试回忆原创 2014-10-11 21:57:56 · 1296 阅读 · 0 评论 -
socket大小端转换
不同机器内部对变量的字节存储顺序不同,有的采用大端模式(big-endian),有的采用小端模式(little-endian)。大端模式是指高字节数据存放在低地址处,低字节数据放在高地址处。小端模式是指低字节数据存放在低地址处,高字节数据放在高地址处。在网络上传输数据时,由于数据传输的两端可能对应不同的硬件平台,采用的存储字节顺序也可能不一致,因此 TCP/IP协议规定了在网络上必须采原创 2014-06-07 17:41:53 · 8426 阅读 · 0 评论 -
G.711编码原理及代码
G711音频编码原理及代码。原创 2015-04-12 16:19:49 · 8170 阅读 · 0 评论 -
msgrcv出错errno=4[Interrupted system call]系统调用被信号中断
msgrcv出错errno=4[Interrupted system call],慢系统调用,阻塞系统调用,阻塞调用被信号中断的处理方法原创 2015-03-17 22:30:00 · 15201 阅读 · 0 评论 -
BSS段 数据段 代码段 堆 栈
BSS段:BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。数据段:数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据段属于静态内存分配。代码段:代码段(code segment/text segment)通常是指用转载 2015-06-26 15:48:17 · 883 阅读 · 0 评论 -
测试代码覆盖率-GCOV的使用
测试代码覆盖率-GCOV的使用转载 2016-08-03 09:56:12 · 2524 阅读 · 2 评论 -
shell中的单引号、双引号、反引号
shell中的单引号、双引号、反引号原创 2014-09-20 10:54:39 · 1580 阅读 · 0 评论 -
Linux设备驱动学习(4)-字符设备驱动
原文地址:Linux设备驱动学习(4)-字符设备驱动作者:lison0103本篇文章记录的是我阅读《EssentialLinux Device Drivers》-字符设备驱动的阅读笔记和思考纪录。字符设备驱动程序基础顺序存取设备数据。字符设备驱动驱动程序能从打印机、鼠标、看门狗、磁带、内存、实时时钟等几类设备获取原始数据,但它不适合管理硬盘、软盘和光盘等可随机访问的块设备中的转载 2014-06-07 17:41:57 · 729 阅读 · 0 评论 -
linux下追踪函数调用堆栈backtrace
一般察看函数运行时堆栈的方法是使用GDB之类的外部调试器,但是,有些时候为了分析程序的BUG,(主要针对长时间运行程序的分析),在程序出错时打印出函数的调用堆栈是非常有用的。在头文件"execinfo.h"中声明了三个函数用于获取当前线程的函数调用堆栈Function: int backtrace(void **buffer,int size)该函数用与获取当前线程的调用堆转载 2014-06-18 21:06:36 · 1801 阅读 · 0 评论 -
C++ 实现顺序栈与链式栈操作…
#ifndef __NODE_H__#define __NODE_H__//节点类模版template//模版本质是将处理的数据类型说明为参数struct Node{ //数据成员 ElemTypedata; //数据域 Node*next; //指针域 //构造函数 Node(){next=NULL;} //无实参 Node(ElemType item,Node原创 2014-06-07 17:40:36 · 705 阅读 · 0 评论 -
C语言程序编译过程
C语言编译过程翻译 2014-06-08 20:03:09 · 1274 阅读 · 0 评论 -
Linux编程定时执行某函数
linux信号应用,定时执行,alarm,setitimer原创 2014-06-08 19:42:26 · 2994 阅读 · 1 评论 -
class_create()函数应用
原文地址:class_create()函数应用作者:kevin//主要是在/sys/class/ 下创建一个 “name”的文件夹 ! 从linux内核2.6的某个版本之后,devfs不复存在,udev成为devfs的替代。相比devfs,udev有很多优势,在此就不罗嗦了,提醒一点,udev是应用层的东东,不要试图在内核的配置选项里找到它;加入对udev的支持很简单,以作者所写的一个字符设备转载 2014-06-07 17:41:55 · 1574 阅读 · 0 评论 -
C语言操作mysql经典例子
以下是从书上总结下来的,c语言操作mysql的比较全面的例子。可以看出基本的使用过程。 #include#include #include MYSQL*conn; MYSQL_RES*res; MYSQL_ROWrow;int main(void) { puts("mysqldemo by guo8113:"); printf("原创 2014-06-07 17:41:49 · 727 阅读 · 0 评论 -
【原】mmap方法实现物理内存…
原文地址:【原】mmap方法实现物理内存到用户虚拟地址的映射作者:季义钦内核空间内存管理:物理内存被划分成structpage来进行管理。然后把所有page划分成不同的structzone,Linux中使用了三种zone:ZONE_DMA;ZONE_NORMAL;ZONE_HIGHMEM;内核中获取内核虚拟内存有三种途径:获取页:如果你需要用到s转载 2014-06-07 17:41:28 · 2816 阅读 · 0 评论 -
C++模版的详细介绍(学习笔记)
1.模板的概念。我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。//函数1.int max(int x,int y);{return(x>y)?x:y ;}//函数2.float max( f原创 2014-06-07 17:40:43 · 610 阅读 · 0 评论 -
打开Eclipse时出现"Failed&nb…
只需要将eclipse目录下的eclipse.ini文件的最后一行修改为:-Xmx384m即可原创 2014-06-07 17:41:30 · 665 阅读 · 0 评论 -
VS2010+opencv安装配置
环境:win7,vs2010,openCV2.4.31、准备工作:操作系统:Windows 7平台:Visual Studio 2012 UltimateOpenCV:2.4.3(点此下载http://opencv.org/)你已经初步熟悉了vs2010的操作。2、运行OpenCV-2.4.3.exe解压(不是安装)到放置OpenCV的位置,例如C:\可以看到,解压后在会生成C:原创 2014-06-07 17:41:06 · 766 阅读 · 0 评论 -
AWK文本处理增强shell功能--AWK完全手册
awk文本高级编辑,linux shell文本处理原创 2014-06-17 21:14:07 · 1851 阅读 · 0 评论 -
Linux下socket编程示范(一个服务…
socket编程的基础函数使用请自查询,本文只给出在linuxgcc可编译运行的socket通信的服务器程序与客户端程序。代码如下:server端#include #include #include #include #include //signal#include //socket#include原创 2014-06-07 17:41:42 · 595 阅读 · 0 评论