自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

努力的小强

追根溯源,重走嵌入式之路。

  • 博客(102)
  • 资源 (5)
  • 收藏
  • 关注

原创 QTableWidget 成员函数itemAt与item的区别与疑问

QTableWidgetItem * item ( int row, int column ) constQTableWidgetItem * itemAt ( const QPoint & point ) const

2014-05-04 11:28:26 6183 5

原创 关于C99标准在keilMDK中实验引发的,ADR指令认识,ARM寄存器之R12,及C89,C90,C95,C99标准的区别

本次实验的起源是这样的:看到C99标准里面支持变量用到时再定义,然后做了以下实验,定义函数,看反汇编结果。void test_c99(void){     char i=0;     printf("i=%d", i);     char j=0;     printf("j=%d", j);     char k=0;     printf("k=%d

2014-04-19 20:41:39 7133 1

原创 _Z5qFreePv mingwm10.dll,libgcc_s_dw2-1.dll 相关问题

QT4.8.4动态mingw4.4Qtcreator2.7关于QT,最近遇到一个问题。编译的Debug版本及Release版本在Qtcreator下均可运行,但双击Release下的可执行程序却提示“无法定位程序输入点 _Z5qFreePv 于动态链接库 QtCore4.dll”错误。原因是QT的环境变量设置问题,指定到QT4.8.4/bin即可。如果单纯的拷贝Qt

2014-02-12 10:31:51 1397

转载 VI中的批量替换

VI中的批量替换 2011-01-24 13:05:33分类: LINUX1) 文件内全部替换::%s#abc#123#g (如文件内有#,可用/替换,:%s/abc/123/g)  --注:把abc替换成123(或者: %s/str1/str2/g 用str2替换文件中所有的str1)2) 文件内局部替换:

2013-04-19 16:08:13 3902

转载 对于ARM加载文件系统出现 Kernel panic - not syncing: Attempted to kill init!

转自:http://blog.csdn.net/jackyard/article/details/8612724有时加载文件系统时,会出现下面的错误:VFS: Mounted root (nfs filesystem) on device 0:12.Freeing init memory: 124KKernel panic - not syncing: Attempte

2013-04-18 15:58:27 4631

转载 ARM9 2410移植之ARM中断原理, 中断嵌套的误区,中断号的怎么来的

【转】ARM9 2410移植之ARM中断原理, 中断嵌套的误区,中断号的怎么来的  ----------------------------------搬家声明--------------------------------------本博客已搬家至个人网站 在路上 - On the way 下面的 技术 分类。你可以通过点击 更新帖子 【转】ARM9

2013-03-03 20:11:26 549

转载 函数栈分配详解

转自:http://kingphp.blog.163.com/blog/static/20042324420128754412127/关于函数占用栈的空间大小,并没有一个硬性规定.编译器通常都是假设栈空间足够大.在你这个例子里,函数运行时使用的栈空间可以是sizeof(double)+sizeof(int),也可以是max( sizeof(double), sizeof(int) ).更可

2012-12-06 20:02:08 1951

转载 关于malloc函数后free内存空间的疑问

转自:http://www.myexception.cn/other/491341.html关于malloc函数后free内存空间的疑问 2011年11月22日   问题:   malloc是开出内存空间。   现在我写了这么一句:   char *name;   name=(char *)malloc(len*sizeof(char));   name指针是个

2012-12-06 18:39:47 1104

转载 typeof关键字简介

转自:http://blog.chinaunix.net/space.php?uid=22145625&do=blog&id=1789481typeof关键字是C语言中的一个新扩展。只要可以接受typedef名称,Sun Studio C 编译器就可以接受带有typeof的结构,包括以下语法类别:声明函数声明符中的参数类型链表和返回类型类型定义类型操作符ssizeo

2012-12-05 16:42:55 625

转载 ARM汇编中^、!、cxsf符号和movs等指令使用

ARM汇编中^、!、cxsf符号和movs等指令使用转自:http://hi.baidu.com/chenwenjun721/item/ad25c713c5b5598b89a95661浅析arm汇编中^、!、cxsf符号和movs等指令使用学习-之1文章来源:http://gliethttp.cublog.cn.macro restore_user_regs   ldr r1,

2012-11-24 21:49:29 10460

转载 cache一致性问题

cache一致性问题转自http://blog.csdn.net/dianhuiren/article/details/6896129这周碰到的一个问题,在解决的过程中得到不少高手的热心帮助,把一些总结贴出来,欢迎大家指点。写一个屏驱动的时候,需要把一块内核中用kmalloc分配的内存映射到应用层中使用。这是一个很simple的需求,很轻松的就可以通过mmap搞

2012-11-12 09:09:16 1993

转载 处理器的乱序和并发执行

处理器的乱序和并发执行 转自:http://blog.csdn.net/wanggongzhen1983/article/details/5405372目前的高级处理器,为了提高内部逻辑元件的利用率以提高运行速度,通常会采用多指令发射、乱序执行等各种措施。现在普遍使用的一些超标量处理器通常能够在一个指令周期内并发执行多条指令。处理器从L1 I-Cache预取了一批指令后,就会分析找

2012-11-12 08:58:57 1135

转载 #define总结 (网上资料汇集)

转自:http://www.cnblogs.com/phonefans/archive/2009/02/25/1398121.html#define总结 (网上资料汇集)1. 定义简单的常数:定义常量,便于修改(切不可在后面加上分号!) #define N 1000 等效于 const int N = 1000; 但略有不同,define只是简单替换,而不是作为一个量来使用.

2012-11-04 17:03:19 631

原创 从汇编看volatile

发现一个有趣的MDK编译器存储优化现象,unsigned   int   t1 = 0;unsigned   char   t2 = 0;unsigned   int   aaa=1;//volatile    unsigned  int  aaa=1;unsigned   char   t3 = 0;unsigned   char   t4 = 0;unsigned

2012-10-29 11:09:32 790

原创 大小端问题

工作中会遇到数据大小端问题,也就是大于1个字节的数据在内存中是怎么存放的(内存是按字节来存放数据的,每个内存地址只放1个字节)。大小端解释:大端:低地址放高位数据,高地址放低位数据小端:低地址放低位数据,高地址放高位数据总结一句话:按内存地址增长的顺序,先放高位就据就是大端,先放低位数据就是小端。比如32bit的CPU:读数据:(假设内存0x00000000,0x0

2012-10-28 13:05:12 1775

原创 记录我生命中值得铭记的一天。

今天得到一位前辈的指点。感觉小宇宙被点燃了。今天将会是我从生的转折点!一定会!铭记。以此博文为证。

2012-10-27 22:57:53 797

转载 Fedora 无法引导的问题

Fedora  无法引导的问题March 7th, 2012不知自己做了什么改动,Fedora 突然无法引导,boot 过程中提示systemd-fsck[605]: /dev/sda5: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.systemd-fsck[605]: (i.e., without -a or -p

2012-10-26 13:43:42 6281

转载 解析STM32启动过程

转自:http://www.amobbs.com/forum.php?mod=viewthread&tid=5462931&extra=page%3D2%26filter%3Ddigest%26digest%3D1%26digest%3D1相对于ARM上一代的主流ARM7/ARM9内核架构,新一代Cortex内核架构的启动方式有了比较大的变化。ARM7/ARM9内核的控制器在复位后,CPU会从

2012-10-23 23:52:27 2676

转载 新型的按键扫描程序,仅三行程序

转自:http://www.amobbs.com/forum.php?mod=viewthread&tid=4308630&page=1&authorid=205286新型的按键扫描程序不过我在网上游逛了很久,也看过不少源程序了,没有发现这种按键处理办法的踪迹,所以,我将他共享出来,和广大同僚们共勉。我非常坚信这种按键处理办法的便捷和高效,你可以移植到任何一种嵌入式处理器上面,因为C语言强

2012-10-23 23:45:32 763

转载 转载《不要做浮躁的嵌入式工程师》观后感

《不要做浮躁的嵌入式工程师》这篇文章在网上流行,近来再读一次,写一下自己的感受以及体会。1、不要看到别人的回复,第一句话就说:给个代码吧!你应该想想为什么。当你自己想出来再参考别人的提示,就会知道自己和别人思路的差异。——代码如文章,人家的代码是人家的思想。完全抄人家的代码会影响你的思路甚至思维。搞单片机的应该知道uchar吧?2、初学者请不要看太多的书,那会误人子弟的,先找一本好

2012-10-23 22:53:50 909

转载 请不要做浮躁的嵌入式系统工程师

1. 不要看到别人的回复,第一句话就说:给个代码吧!你应该想想为什么。当你自己想出来再参考别人的提示,你就知道自己和别人思路的差异。    2. 初学者请不要看太多的书那会误人子弟的。先找一本好书系统的学习。很多人用了很久都是只对部分功能熟悉而已,不系统还是不够的。    3. 看帮助。不要因为很难,而自己又是初学者所以就不看;帮助永远是最好的参考手册,虽然帮助的文字有时候很难看懂

2012-10-23 22:51:25 804

转载 430编程C语言常识(IAR)(二)结构体与联合体

转自:http://www.amobbs.com/thread-5465091-1-2.html结构体与联合体是C语言的常见数据类型,可对C的基本数据类型进行组合使之能表示复杂的数据结构,意义深远,是优异代码的必备工具。一.        struct与 union的基本用法,在语法上union与struct相同,因此只以struct为例1.1        基本用法:

2012-10-23 22:40:54 4370

转载 ARM指令集

ARM指令集ARM指令的基本格式ARM指令的基本格式为:   {}  {S}  ,    { , }其中,内的项是必需的,{  }内的项是可选的。(1)Opcode项Opcode是指令助记符,即操作码,说明指令需要执行的操作,在指令中是必需的。(2)Cond项(command)Cond项表明了指令的执行的条件,每一条ARM指令都可以在规定的条件下执行,每条ARM

2012-10-06 08:34:57 990

转载 转载几篇文章

转载几篇文章Keil MDK下uC/OS-II在FL2440上的移植http://www.cnblogs.com/piaolingxue/archive/2011/05/26/2059200.html

2012-09-05 18:29:04 419

转载 mini2440启动代码分析之第五篇(中断向量表)

转自:http://blog.chinaunix.net/uid-26435987-id-3074176.html;中断向量表一般位于启动代码的开始部分,它是用户程序与启动代码之间以及启动代码的各部分之间联系的纽带。它由一个一个的跳转函数组成,它就象一个普通的散转函数,只不过散转的过程中有硬件机制参与,当系统发生异常时,ARM 处理器会通过硬件机制强制将PC 指针指向中断向量表中对应的异常

2012-09-03 23:12:47 779

转载 mini2440启动代码分析之第四篇(入口程序分析)

转自:http://blog.chinaunix.net/uid-26435987-id-3074160.html从这里开始就是真正的代码入口了!接上篇代码:AREA  Init,CODE,READONLY      ;声明一个名为Init的代码段,只读           ENTRY                             ;程序的入口点,

2012-09-03 23:09:14 497

转载 mini2440启动代码分析之第三篇(IMPORT)

转自:http://blog.chinaunix.net/uid-26435987-id-3074117.html接上篇,代码如下:IMPORT  |Image$$RO$$Base|    ; Base of ROM code; ROM code(也就是代码)的开始地址 IMPORT  |Image$$RO$$Limit|     ; ROM code的结束地址(=ROM

2012-09-03 22:51:15 556

转载 嵌入式STMFD SP!,{R0-R7,LR}分析

转自:http://blog.chinaunix.net/uid-26435987-id-3073083.htmlSTMFD SP!,{R0-R7,LR} 的伪代码如下SP = SP - 9×4;address = SP; for i = 0 to 7Memory[address] = Ri;address  = address + 4;Memory[add

2012-09-03 22:38:34 3354

转载 mini2440启动代码分析之第二篇(着重理解$HandlerLabel HANDLER $HandleLabel宏)

转自:http://blog.chinaunix.net/uid-26435987-id-3073962.html接下来的代码如下(注黑色为源程序,蓝色为解说部分代码):MACRO $HandlerLabel HANDLER $HandleLabel $HandlerLabel     sub sp,sp,#4           ;减少sp(用于存放转跳地址)实质上是

2012-09-03 22:36:53 1097

转载 mini2440启动代码分析之第一篇(注意名字,不是bootloader)

转自:http://blog.chinaunix.net/uid-26435987-id-3073901.html启动代码主要是在主程序运行之前初始化系统硬件及软件的运行环境,它的主要功能包括以下的几个方面:1、建立中断向量表2、初始化系统堆栈3、应用程序执行环境初始化4、跳转至主函数第一部分 GET option.inc

2012-09-03 22:35:48 615

转载 ini2440:通过JLink烧写BootLoader到Nor Flash

转自:http://myswirl.blog.163.com/blog/static/513186422011920102724638/开发板:友善之臂mini2440,64M Nand Flash操作系统:Win7电脑:笔记本Lenovo Y450连接器:由于我的笔记本没有并口,所有买了个J-Link和转接板软件:JLink驱动Setup_JLinkARM_V402d.exe

2012-08-29 01:00:30 1640

转载 为什么在中断上下文中不能休眠?

转自:http://www.cnblogs.com/sdphome/archive/2011/10/11/2206877.html这个问题有很多人问过,我看了下linux得内核代码,原因如下(当然我不能保证一定对,如果有牛人理解得更好,欢迎指正)1. 中断处理的时候,不应该发生进程切换,因为在中断context中,唯一能打断当前中断handler的只有更高优先级的中断,它不会被进程

2012-08-17 17:31:16 1024

转载 关于code, text, bss

关于code, text, bss以下文章转自http://hi.baidu.com/sansiloudeyu/blog/item/aca5eb3d35ebacc29f3d62b2.htmlarmar -sizes libmjb2.aCode    RO Data    RW Data    ZI Data      Debug   Object Name       29

2012-08-16 15:46:28 3397

转载 assert()函数用法总结

转自:http://www.cnblogs.com/ggzss/archive/2011/08/18/2145017.html  assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include assert.h>void assert( int expression );  assert的作用是现计算表达式 expres

2012-07-31 10:25:30 491

转载 如何查看linux命令源代码

用linux一段时间了,有时候想看看ls、cat、more等命令的源代码,在下载的内核源码中用cscope没能找到,在网上搜索了一下,将方 法总结如下:以搜索ls命令源码为例,先搜索命令所在包,命令如下:lpj@lpj-linux:~$ which ps/bin/ls用命令搜索该软件所在包,代码如下:(rpm是Rea Hat,Fedora,CentOS等Linux

2012-07-27 16:22:21 899

转载 STM32启动代码概述

转自:http://bbs.ednchina.com/view_comments.jspa?entry_id=138130&curr_page=2一般嵌入式开发流程就是先建立一个工程,再编写源文件,然后进行编译,把所有的 *.s文件和 *.c文件编译成一个 *.o文件,再对目标文件进行链接和定位,编译成功后会生成一个 *.hex文件和调试文件,接下来要进行调试,如果成功的话,就可以将它固化

2012-07-15 22:29:19 737

转载 EIP、ESP、EBP

1.EIP2.ESP3.EBP1.EIP寄存器里存储的是CPU下次要执行的指令的地址。也就是调用完fun函数后,让CPU知道应该执行main函数中的printf("函数调用结束")语句了。2.EBP寄存器里存储的是是栈的栈底指针,通常叫栈基址,这个是一开始进行fun()函数调用之前,由ESP传递给EBP的。(在函数调用前你可以这么理解:ESP存储的是栈顶地址

2012-07-15 10:17:12 1751

转载 论ARMv7 Thumb-2指令集的性能(含Thumb指令集介绍)

[摘要]     主要是介绍ARM CPU中的THUMB-2功能,相对于THUMB的比较THUMB-2指令集的扩展,THUMB-2的新指令带来的好处,新指令对性能和代码密度的改进。    如今的嵌入式系统开发者要面对各种复杂的挑战,其中就包括了如何在代码性能和系统成本之间进行平衡。在这方面,ARM处理器可以提供给开发者领先的技术方案,在综合考虑性能和成本的情况下取得最优的设计方案。Th

2012-07-15 10:16:15 7512

转载 条件编译 #ifndef _HEAD_H...中下划线的理解!

条件编译 #ifndef _HEAD_H...中下划线的理解!一、下划线“__”属于编程风格的内容,对程序没有影响。不用下划线也可以,用几个下划线也由个人习惯。二、其实质是一个宏名。由此我们可以防止发生重复定义或声明。假设你的头文件名为head.h,根据习惯,我们声明一个宏HEAD_H,对应这个头文件,在头文件中开始的地方和结尾的地方加上   对HEAD_H的声明和判断

2012-07-13 07:33:33 5811 2

转载 关于链接的心得体会

关于链接的心得体会 转自:http://hi.baidu.com/hnylcxq/item/ee92ac010a0ce116cc34eacf   加载地址=存储地址     链接地址=运行地址    一般由TEXT_BASE 指定,它决定代码段的起始地址    编译地址是虚拟地址,是可以共享的地址。生成的bin 反汇编过来,就是编译地址,一般是从0开始的。

2012-07-03 22:25:01 1187

多感知器蛇形机器人避障的智能控制

多感知器蛇形机器人避障的智能控制 机器人资料持续上传中。

2010-05-30

超声波语音测距系统在车辆避障中的应用

超声波语音测距系统在车辆避障中的应用 机器人资料持续上传中

2010-05-30

电动小车自动避障模糊控制算法的设计与实现

电动小车自动避障模糊控制算法的设计与实现 机器人资料,接续上传中

2010-05-30

超声波测距仪在移动机器人避障中的应用

超声波测距仪在移动机器人避障中的应用 关于机器人的资料。请密切关注。

2010-05-30

常规控制和模糊PID控制在全垫升气垫船航向控制中的应用

常规控制和模糊PID控制在全垫升气垫船航向控制中的应用

2010-05-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除