- 博客(15)
- 资源 (1)
- 收藏
- 关注
原创 linux应用程序的地址分布
在C程序开发中常见代码段,数据段,BSS段,堆,栈这些名词,那linux C程序的地址在内存中是怎么分布的呢,下面看一张表栈 在高地址向下增长堆 向上增长BSS数据段代码段 0X80480000任何linux应用程序都是从0x8048000地址处开始,代码中全局变量包括静态变量都是存储数据段,全局的常
2017-11-03 21:22:52 616
原创 驱动安装需要数字签名导致安装失败的解决方法
今天在win10上安装 mini2440的USB驱动时由于第三方inf不含有数字签名信息,导致驱动安装失败,在网上查询资料,z
2017-10-28 21:21:11 12205 1
原创 c++综述
C语言作为结构化和模块化语言能够得心应手的处理小规模的程序,但是当一个问题需要高度抽象和建模时,C语言便力不从心,c++语言便在贝尔实验室被bs博士创造出来,其最初的名字为 c with class ,后来更名为c++,其含义为在完全兼容c的基础上,扩展了c的语法,增加了面向对象的特性,加入了STL 等。1 c++ 对C 的扩展1.1 类型检查更加严格const 常量在c 语言中可通过
2017-09-09 10:44:13 369
原创 uuid 在nRFgo中的生成方法
私有服务需要自己定制一个uuid 以取代蓝牙技术联盟定义的uuid ,使用NORIDC 提供的PC工具 nRFgo可以方便的生成 私有的uuid。使用方法如下:nrf8001 Setup -> Edit - > 128 -bit UUIDs
2017-09-03 22:38:27 536
原创 linux字符设备驱动
linux字符设备驱动是linux三大驱动程序中比较简单的类型,本文将简单介绍字符设备驱动程序中的常用数据结构和编程方法。
2016-10-14 15:05:10 231
原创 linux内核模块
linux内核特别庞大,linux中使用模块(Module)这种机制可以使内核模块动态的加载到内核而不是直接编译至内核映像从而控制了linux内核的大小。linux内核的编程框架如下所示,这里以简单的helllo word示例模块进行说明#include "linux/init.h"#include "linux/module.h"static int hello_init(){
2016-10-10 21:23:47 241
原创 c语言内存对齐问题
计算机中的内存都是按照byte为单位进行分配,在理论上数据可以存储在内存中的任意位置。计算机为了提高工作效率,一般要求内存中的数据存放在特定的位置,使计算机用最少的机器周期便可以访问到这个数据,这就是c语言中的内存对齐问题。这里以 int 型数据为例,如果内存中的数据按照4字节对齐存储,则计算机则可以在一个读取周期内取得数据,如果该数据的存放位置正好跨越的计算机的两个读取周期,便降低了计算机的
2016-10-10 20:19:32 326
原创 递归实战(2)字符串全排列
字符串全排列问题能够很好体现递归算法的特点,以及递归在解决实际问题中的巧妙之处。问题描述: 例如输入“abc”,则其全排列为 abc acb bac bca cab cba递归解决方案 ,递归减少所要排列的字符串个数,直至得到递归的边界条件:字符串个数为1时直接输出字符串;C代码实现:void permutation(char s[], int b, int e
2016-09-13 08:33:12 329
原创 递归实战(1)汉诺塔C语言实现
第一次去参见宣讲会,笔试做的不怎么理想,最后一个编程题是实现汉诺塔,之前学数据结构的时候还按照视频写过这段程序,今天考上了却写不出来了,还是自己功夫不到家,今天痛定思痛,一定要把它搞清楚。汉诺塔问题描述:a, b, c 三个柱, 初始盘子全在a柱上; 盘子叠放的规则是盘子只能放在比他大的盘子上;
2016-09-12 21:33:36 579
原创 字符串反转
字符串反转 例如 char string[ ] = " i love c" 反转后 输出“c love i” 算法思想:第一步:全反转 “i love c” > “ c evol i”第二步:局部反转(单词内部全反转) 编程语言:C编译环境 :GCC实现代码: void string_reverse( c
2016-09-10 21:56:00 403
原创 ARM汇编编程学习
在嵌入式程序中,汇编语言多用于bootloader、内核的初始化以及效率要求比较高的程序代码中。目前常用的ARM汇编指令有两种,一是ARM标准汇编,适用于ARM公司的汇编器适合在Windows平台中使用;二是GNU汇编,适用与交叉编译工具链中的汇编器,适合于Linux开发平台。 和C语言有程序开发有它的程序框架一样,如包含头文件,宏定义,函数格式等等,汇编语言也有它的开发框架,
2016-04-24 16:37:54 399
原创 ARM的寻址方式
先来看一下寻址方式的定义,寻址方式指的是处理器根据指令中的信息取得操作数的方式。寻址方式可分为五种,分别是立即数寻址,寄存器寻址,寄存器间接寻址,基址加变址寻址方式和相对寻址方式。立即数寻址:立即数寻址,操作数本身就在指令中,此操作数称为立即数, MOV R0, #0X00
2016-04-22 16:16:34 664
原创 Makefile工具
Makefile是工程管理的一个工具,是嵌入式linux工程师必备的技能,Makefile使在linux整个程序的编译链接只需一个make命令就可以
2016-04-20 10:25:52 344
原创 交叉工具链
交叉工具链是一些交叉工具的集合,谈到交叉工具,那什么是交叉工具?先来看一下我们嵌入式开发的模型,嵌入式开发模型一般由宿主机(PC)和目标板组成,在进行工程开发时,一般在宿主机上完成程序的开发编译,然后通过JATG,网络等下载工具下载至目标板上运行。这样就需要用到一些交叉工具。在嵌入式linux开发中,常用的交叉编译工具有交叉编译器、交叉链接器、交叉转换器、交叉ELF工具,交叉反汇编器。使用arm-
2016-04-19 21:03:08 396
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人