- 博客(53)
- 资源 (19)
- 收藏
- 关注
原创 u-boot1.1.6 start.s代码分析
在start.s中有如下定义 .globl _start (start.s的第一条语句) ……… _TEXT_BASE: .word TEXT_BASE .word表示在当前地址保存TEXT_BASE这个值,TEXT_BASE在config.mk中定义,它的值为0x33D00000,_TEXT_BASE是这个地址的标号,我们可以通过这个标号找到这个地址,在编译之后它才有具体
2015-08-16 12:29:12
788
原创 编译通过的U-boot和使用的arm-linux-gcc编译器
说实话编译U-boot挺累人的,要做的修改不是很多,但是在编译器上花的功夫却很多,经常遇到各种奇怪的问题。下面是编译通过的U-boot和对应的gcc编译器GCC下载地址:http://download.csdn.net/detail/king_mcu/9002001U-Boot下载地址:http://download.csdn.net/detail/king_mcu/9002011
2015-08-13 19:41:32
3070
1
原创 再谈TQ2440使用TFTP下载程序
一、安装TFTP服务器软件,设置好文件路径,并启动,如下图:设置好之后点save保存,确定,启动TFTP二、电脑和开发板的连接和配置,其实也就是让电脑和开发板处于同一网段就可以了:1、电脑用无线连接路由器(用网线也可以);2、开发板用网线连接路由器;3、关闭电脑防火墙(这个一定要记住,开始多次失败就是因为这个);4、开发板串口连接电脑,打开secureCRT
2015-08-06 21:32:00
1978
原创 赛普拉斯蓝牙BLE---主机协议栈事件描述
以下内容纯属个人翻译,有误之处还望指出!赛普拉斯蓝牙BLE协议栈会产生多种事件,在事件产生的时候会执行用户定义的回调函数,事件类型以参数形式传入。主要有以下五种事件:Generic events: 0x01 to 0x1FGAP events: 0x20 to 0x3FGATT events: 0x40 to 6FL2AP events: 0x70 to 0x7FFut
2014-12-26 16:58:49
3375
原创 赛普拉斯蓝牙BLE---Component API Reference
1、GAP 函数1.1、GAP Peripheral函数函数原型:CYBLE_API_RESULT_T CyBle_GappStartAdvertisement(uint8 advertisingIntervalType);描述:在PSOC Creator GUI中配置好BLE组件的参数之后,调用这个函数进行广播。设备就能够被GAP Central设备发现。只有设备处于
2014-12-22 11:32:37
3267
转载 快速排序
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。 总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快
2014-04-17 15:39:06
828
转载 安装GRUB到U盘
GRUB安装到U盘,这样在电脑上的linux系统引导出错的时候,就可以用U盘直接引导linux系统启动了关键的几步是:3、激活/dev/sdb2 ,这步很重要,如不激活,是引导不了的(在用cfdisk时就是有没有标志成boot) 5、格式化/dev/sdb2,建议格式化为ext2格式 (即建立文件系统)
2014-03-21 20:42:05
1070
转载 OTP
文章出处http://forum.eepw.com.cn/thread/120354/1/随着嵌入式应用的越来越广泛,产品的安全也显得越来越重要。一方面是为了保护硬件设计,另外一方面也是为了产品本身的安全,防止被HACKED.在嵌入式系统当中,所有的代码和系统数据都是被存储在FLASH芯片内部的。FLASH芯片的特点是可多次擦写,而且掉电数据不会丢失。为了保护FLASH中的数据
2014-03-07 10:11:40
4960
转载 C可变参数列表
我想很多人和我一样,当对c语言有了一定了解之后,一定会对printf函数产生好奇,因为它可以接受不确定数目的参数。这是怎么实现的呢?看下它的声明: int printf(const char *fmt, ...); 这个...表示的是什么,在c语言里面,这个叫做可变参数的声明,...就是说它有不确定个参数,专业术语叫可变参数。我们去看看它的源代码: int
2014-01-04 17:21:39
828
转载 VIM配置 .vimrc
出处:点击打开链接VIM 中可供用户定制的选项非常非常多, 作为初学者, 我们没有必要了解这么多东西。 下面, 滇狐简单列出了一些最常用的配置项, 大家可以根据自己的需要将这些内容添加到自己的 .vimrc 中。1 基本设置set nocp 该命令指定让 VIM 工作在不兼容模式下。 在 VIM 之前, 出现过一个非常流行的编辑器叫 vi。 VIM 许多
2013-08-07 10:28:08
887
原创 linux下制作启动U盘
linux下制作linux系统的启动U盘,最简单的方法莫过于使用 dd命令首先准备好系统镜像,我拿Centos6.4亲测成功。把U盘插上电脑,在/dev 目录下查看,一般是sdb 命令如下:dd if=/home/CentOS-6.4-i386-liveDVD.iso of=/dev/sdb等待一段时间后即可完成刻录,然后重新启动电脑,选择从U盘启动即可,接下来就是Cent
2013-08-05 20:15:33
1065
转载 GDB调试时查看数据
文章出处点击打开链接在用gdb调试程序时,当程序运行到之前设置的断点时,很容易想到的操作就是查看当前变量的值,而gdb可以很轻易地满足的你的需求的~~在gdb中最常用的命令就是print(简写p),具体格式如下:print print/f f代表输出的格式 x 按十六进制格式显示变量 d 按十进制格式显示变量 u 按十六进制格式显示无符号整型 o 按八进制格式
2013-08-05 10:09:22
1531
转载 GDB进行汇编级的调试
gcc -S test.c生成test.s文件as -o test.o -gstabs test.s生成test.o文件gcc -o test -Wall test.ogdb test
2013-08-04 15:34:07
1181
1
转载 GDB调试
七、八年前写过一篇《用GDB调试程序》,于是,从那以后,很多朋友在MSN上以及给我发邮件询问我关于GDB的问题,一直到今天,还有人在问GDB的相关问题。这么多年来,有一些问题是大家反复在问的,一方面,我觉得我以前的文章可能没有说清楚,另一方面,我觉得大家常问的问题正是最有用的,所以,在这里罗列出来。希望大家补充。一、多线程调试多线程调试可能是问得最多的。其实,重要就是下面几个命令:
2013-08-04 10:03:49
886
原创 C 和指针---阅读笔记
只有当数组名在表达式中使用的时候,编译器才会为它产生一个指针常量(所以不要把数组名和指针等同对待)。注意,是指针常量,而不是指针变量!你不能修改指针常量的值。 只有在两种场合下,数组名并不用指针常量来表示------就是当数组名作为sizeof操作符或单目操作符&到操作数时。sizeof 返回整个数组的长度,而不是指向数组名的指针的长度。 int array[10
2013-08-04 10:02:59
1164
原创 IAR右键无法跳转到定义 的解决方法
用IAR编译程序,有时候编译通过了,但是右键无法GO TO Definition 解决方法有两个:第一、Tools -> Option -> Project 把Generate browse information 勾上第二、如果第一种方法,发现Generate browse information已经勾上了,那么点VIEW ->source browser 打开代码浏览窗口,然后再
2013-08-01 16:59:56
35542
17
原创 零死角玩转STM32---单通道ADC分析
/*adc.h*/#define ADC1_DR_Address ((u32)0x4001244C)void ADC_Configuration(void);/*adc.c*/#include "adc.h" vu16 ADC_ConvertedValue; //此变量用来存放DMA读取到的ADC转换的结果,在main函数中 extern vu1
2013-08-01 13:32:25
5219
原创 零死角玩转STM32---阅读摘记三
一、ADC(DMA模式) CPU的最高时钟频率是72MHz,而ADC模块的最高时钟频率是14MHz。如果需要达到ADC模块的最高时钟频率,CPU的最高频率只能设置到14M x 4=56M。(PCLK2的常用时钟频率为72MHz,而ADCCLK必须低于14MHz,所以在这个情况下,ADCCLK最高频率为PCLK2的8分频,即ADCCLK=9MHz。若希望使ADC以最高的频率14MHz运行,可以把
2013-07-31 09:36:47
1794
原创 零死角玩转STM32---阅读摘记二
一、管脚STM32F103VET6,具有100个管脚,除去晶振输入、电源输入、Boot引脚,剩下的80个引脚均为GPIO。它们分布在GPIOA~GPIOE的5个端口组之中,每个小组有16个引脚,所有的GPIO引脚都可以用作外部中断源的输入,每个GPIO引脚可配置为8种模式,不同的引脚还有相应的复用功能,复用功能重映射 等,足以满足应用需求STM32的浮空输入模式(GPIO_Mode_IN_
2013-07-30 19:55:01
1183
原创 零死角玩转STM32---阅读摘记一
一、时钟相关从时钟树的分析,看到经过一系列的倍频、分频后得到了几个与我们开发密切相关的时钟。SYSCLK:系统时钟,STM32大部分器件的时钟来源。主要由AHB预分频器分配到各个部件。HCLK:由AHB预分频器直接输出得到,它是高速总线AHB的时钟信号,提供给存储器,DMA及cortex内核,是cortex内核运行的时钟,cpu主频就是这个信号,它的大小与STM32运算速度,数据存取速
2013-07-30 14:13:14
2033
原创 关于把keil上的工程移植到IAR上
尝试了几次把STM 的keil工程移植到IAR,还好都成功了,这里把移植过程中需要注意的地方记下。。。第一步肯定是先建一个工程文件夹PWM,然后文件夹里面在建几个子文件夹:user、inc、startup 基本也就这三个。当然,还得STM的官方库目录拷贝过来,于是工程目录下就有四个文件夹(其实建几个都是随意的,按着习惯来就行,也可以对于着keil的工程来建对应的文件夹)。第二步就该把kei
2013-07-28 19:28:02
5847
1
转载 linux 下编译STM32
今天,尝试了在我使用的Gentoo系统上位Cortex-m3构建GNU工具链,没想到如此简单。 以超级用户权限运行如下命令: crossdev --g 4.3.1-r1 -t arm-elf 因为官方的gcc在4.3版本下加入了对cortex-m3的支持,所以上面的命令用 --g 4.3.1-r1参数,指定了4.3.1-r1版的GCC。整个编译过程非常顺利,编译 成功后得到了:
2013-07-28 09:10:43
3119
原创 关于用IAR建立 STM32工程的问题
最近开始从KEIL MDK转到IAR上面,由于刚接触IAR,有许多不熟悉的地方,本来对STM32就不是很熟悉,又换新的开发环境,所以折腾了蛮久的。创建工程时包含的头文件,core_cm3.h 这个头文件居然跟编译器的版本有关,开始的时候我是从别人的工程里面拷了一个core_cm3.h文件,结果一编译,一堆错误,“__interwork __softfp”,搞得一头雾水,网上查了好久,原来别人
2013-07-27 22:02:55
2214
1
原创 好久没写博客了————忙不过来
本来是打算写一下linux shell的学习笔记的,但是由于太忙了,所以就搁着了,书已经看完了,最近得忙着学其他的
2013-07-27 21:52:29
965
转载 c和指针
1. 要从逻辑上删除一段C代码,更好的方法是使用#if 指令。2. 预处理指令:预处理器读入源代码,根据预处理指令对其进行修改,然后把修改过的源代码递交给编译器。3. 所有传递给函数的参数都是按值传递的。地址传递也相当值传递,因为地址本身也可以作为一个特殊的“值”,所以地址传递也是一种特殊的值传递。只是为了强调其特殊性,故称之为“地址传递”。4.
2013-07-01 21:34:46
1227
转载 fedora 下的dos模拟器
Linux下使用MASM编写汇编程序目前多数学校的微机原理课程使用的是MASM汇编器,而Linux中的汇编工具是nasm 。二者之间的语法有不少差别,不能通用。安装dosemu 之后可以在Linux中使用MASM和Debug安装 #yum install dosemu准备汇编工具 debug提示: dosemu已
2013-04-13 11:26:20
1312
原创 第二章 shell程序设计
shell是用户与linux系统间接口的程序,它允许用户向操作系统输入需要执行的命令,许多强大的功能都能通过shell实现1、重定向 文件描述符:0 为一个程序的标准输入、1为标准输出、2为标准错误输出 使用 > file.txt 可以将程序标准输出重定向到一个文件,默认情况下会将该文件的内容覆盖 >>file.txt 则将程序标准
2013-03-30 22:11:50
1187
原创 第一章 入门
1、头文件、库文件 编程时需要用头文件来提供对常量的定义和对系统函数及库函数调用的声明,这些头文件几乎总是位于 /usr/include目录及其子目录中。。。那些依赖于特定linux版本的头文件通常在 /usr/include/sys 和 /usr/include/linux 中 用C语言编译器时,可以使用 -I 标志来包含保存在子目录或非标准位置中的头文件 eg:
2013-03-30 16:05:31
1065
原创 我的linux程序设计------>历程
喜欢linux的shell终端,喜欢命令行!^_^正在学习linux程序设计,决定写一些博客,作为学习笔记。学习指导书《linux程序设计》持续更新中 第一章、入门 第二章、shell程序设计
2013-03-30 14:33:24
1016
转载 home目录修改
核心:vi ~/.config/user-dirs.dirs 编辑这个文件,文件格式很简单,一看就明白了使用fedora linux,用户home家目录下缺省情况下可能会有以下几个目录,Desktop Downloads Music Pictures Videos Documents Maps Public Templates使用图形界面时,
2013-03-27 08:21:33
2021
原创 linux 修改键盘键值
在终端输入xev | grep keycode然后点击键盘,就可以得到对应按键的键值比如state 0x0, keycode 108 (keysym 0xff1b, Escape), same_screen YES, XKeysymToKeycode returns keycode: 9 state 0x8, keycode 108 (keysym 0xff1b
2013-03-25 18:23:24
5013
1
转载 fedora 下google 浏览器安装
fedora 18 无法安装外源软件包的情况下的google chrome安装办法2013年01月16日 19:05:55fedora 18正式版安装以后,没法安装外源软件包,提示信息是“unsigned”。还好,google chrome专门为fedora提供了repo。这样我们就可以先建立一个repo,再用命令安装即可。步骤如下:1.在 /etc/yum.repos.d/目
2013-03-24 20:16:10
1139
转载 fedora 18 无线网卡驱动安装
Fedora 18下怎么安装BROADCOM BCM4312无线网卡驱动安装所用的工具su - yum install b43-fwcutter wget 下载windows驱动 cd /root/source wget http://downloads.openwrt.org/sources/broadcom-wl-4.150.10.5.tar.bz2 下
2013-03-24 20:00:04
2292
转载 linux 共享内存分析
出处 http://www.blogjava.net/sunzhong/articles/297435.html共享内存区域是被多个进程共享的一部分物理内存。如果多个进程都把该内存区域映射到自己的虚拟地址空间,则这些进程就都可以直接访问该共享内存区域,从而可以通过该区域进行通信。共享内存是进程间共享数据的一种最快的方法,一个进程向共享内存区域写入了数据,共享这个内存区
2013-03-23 17:56:52
1228
原创 fedora matlab下载安装
下载wget -c http://math.whut.edu.cn/shumo/special/msoft/mac/matlab_unix_2009b.iso挂载mount matlab_unix_2009b.iso /mnt/matlab/ -o loop进入目录后 ./installkey 55013-56979-18948-50009-49060即可使用离线
2013-03-23 13:36:13
1543
原创 fedora 16 安装 mplayer
首先需要下载两个源http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-14.noarch.rpmhttp://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-14.noarch.rpm其他版本的没试过,最新版本的源fe
2013-03-23 13:13:14
868
原创 修改命令提示符
编辑~目录下的 .bashrc 文件添加 PS1=‘\[e\[31m\][@\W]\$'即可其中,\[e\[31m\]将命令提示符设置为红色 -- 31具体格式是 PS1=‘\[e\[前;背m\][\参数]\$'可以修改数值实现不同的颜色 前 背景色 30 40 黑色 31
2013-03-23 10:40:38
1499
转载 termios 系列函数分析
-tcgetattr, tcsetattr, tcsendbreak, tcdrain, tcflush, tcflow, cfmakeraw, cfgetospeed, cfgetispeed, cfsetispeed, cfsetospeed, cfsetspeed等,用以获取/设置终端设备的属性/控制/速度。1. 函数声明函数声明#include #inc
2013-03-07 14:39:31
2145
转载 Fedora 16无线网卡驱动安装
先上官网:www.broadcom.com/support/802.11/linux_sta.php 下载对应版本的驱动,因为我安装的系统是64位的,我下载了:hybrid-portsrc_x86_64-v5_100_82_38.tar.gz还要下载补丁,直接把下面的文件保存,名字为 this_file,注意:hybrid-portsrc_x86_64-v5_100_82_38.tar.gz和
2013-02-20 18:05:02
1567
TQ2440的U-Boot
2015-08-13
arm-linux-gcc编译器3.4.5
2015-08-13
Beginning Linux Programming 4th Edition
2013-08-06
C程序设计语言(第二版,中文版,B.W.Kernighan、D.M.Ritchie 著).pdf
2012-07-27
ucos-ii VC版
2012-07-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人