<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[MATT's TechBlog]]></title><description><![CDATA[Tech&Career]]></description><link>https://blog.youkuaiyun.com/mattjiang</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; mattjiang]]></copyright><item><title><![CDATA[startup_LPC11xx.s启动代码分析]]></title><link>https://blog.youkuaiyun.com/mattjiang/article/details/7595112</link><guid>https://blog.youkuaiyun.com/mattjiang/article/details/7595112</guid><author>mattjiang</author><pubDate>Wed, 23 May 2012 16:20:48 +0800</pubDate><description><![CDATA[一：启动代码简介
启动代码是芯片复位后进入C语言的main()函数前执行的一段代码。主要是为运行C语言程序提供基本的运行环境，初始化存储系统等。为了能够进行系统初始化，采用一个汇编文件作为启动代码是常见的做法。

二：启动代码的作用
1.初始化异常向量表
2.初始化存储器系统
3.初始化堆栈


程序使用编译器分配的空间作为堆栈，而不是按通常的做法爸堆栈分配到RAM的顶端。这样做]]></description><category></category></item><item><title><![CDATA[ARM汇编伪指令介绍]]></title><link>https://blog.youkuaiyun.com/mattjiang/article/details/7593944</link><guid>https://blog.youkuaiyun.com/mattjiang/article/details/7593944</guid><author>mattjiang</author><pubDate>Wed, 23 May 2012 11:52:59 +0800</pubDate><description><![CDATA[参考《ARM体系结构与编程》第三、四章。
1，伪指令介绍
伪指令不属于指令集。汇编在第一次扫描时只扫描了指令，而将伪指令中的东西作为“动态内容”作了标记而已。所以在第一次扫描所得到的清单中是没有看到它占用内存的。 所以不会计算其中的数据的。而第二次扫描才能得到。指令集是属于机器CPU的，一个类型CPU就有这样一个指令集。而伪指令则是由汇编软件提供的，比如ARM汇编器中提供了EQU的伪指令，那么]]></description><category></category></item><item><title><![CDATA[ARM汇编伪指令介绍]]></title><link>https://blog.youkuaiyun.com/mattjiang/article/details/7593863</link><guid>https://blog.youkuaiyun.com/mattjiang/article/details/7593863</guid><author>mattjiang</author><pubDate>Wed, 23 May 2012 11:16:23 +0800</pubDate><description><![CDATA[参考《ARM体系结构与编程》第三、四章。
1，伪指令介绍
      伪指令不属于指令集。汇编在第一次扫描时只扫描了指令，而将伪指令中的东西作为“动态内容”作了标记而已。所以在第一次扫描所得到的清单中是没有看到它占用内存的。       所以不会计算其中的数据的。而第二次扫描才能得到。
      指令集是属于机器CPU的，一个类型CPU就有这样一个指令集。而伪指令则是由汇编软件提供的，比如]]></description><category></category></item><item><title><![CDATA[驱动开发环境搭建与驱动开发流程]]></title><link>https://blog.youkuaiyun.com/mattjiang/article/details/7526076</link><guid>https://blog.youkuaiyun.com/mattjiang/article/details/7526076</guid><author>mattjiang</author><pubDate>Tue, 01 May 2012 17:41:11 +0800</pubDate><description><![CDATA[一，开发环境
1，硬件：2410开发板，h-jtag，PC虚拟机ubuntu

2，配置上位机
a，安装ufs
b，配置ufs
sudo vi/etc/exports
在下面添加文件系统所在的路径，如：/opt/filesystem
*(subtree_check,rw,no_root_squash,async)
c，重启服务
sudo /etc/init.d/nfs-kern]]></description><category></category></item><item><title><![CDATA[VIM编辑C程序的常用技巧]]></title><link>https://blog.youkuaiyun.com/mattjiang/article/details/7308060</link><guid>https://blog.youkuaiyun.com/mattjiang/article/details/7308060</guid><author>mattjiang</author><pubDate>Wed, 29 Feb 2012 22:50:46 +0800</pubDate><description><![CDATA[在insert模式下:
1，Ctrl + h = Backspace
2，Ctrl + c = Esc
3，Ctrl + j = Enter
4，o和O分别在下、上插入行并进入编辑模式
5，n>> 将连续n行向右缩进，
6，%   匹配移动光标
7，yE 复制字符串（空格隔开的）
7，自定义insert模式下的光标左右移动快捷键：
"默认的Ctrl+h本来是Backspace，改]]></description><category></category></item><item><title><![CDATA[STM32 启动文件选择]]></title><link>https://blog.youkuaiyun.com/mattjiang/article/details/7294686</link><guid>https://blog.youkuaiyun.com/mattjiang/article/details/7294686</guid><author>mattjiang</author><pubDate>Sun, 26 Feb 2012 00:24:15 +0800</pubDate><description><![CDATA[startup_stm32f10x_cl.s 互联型的器件，STM32F105xx，STM32F107xx
startup_stm32f10x_hd.s 大容量的STM32F101xx，STM32F102xx，STM32F103xx
startup_stm32f10x_hd_vl.s 大容量的STM32F100xx
startup_stm32f10x_ld.s 小容量的STM32F101xx]]></description><category></category></item><item><title><![CDATA[STM32F10X_XX宏定义的选择]]></title><link>https://blog.youkuaiyun.com/mattjiang/article/details/7294661</link><guid>https://blog.youkuaiyun.com/mattjiang/article/details/7294661</guid><author>mattjiang</author><pubDate>Sun, 26 Feb 2012 00:09:33 +0800</pubDate><description><![CDATA[//=====================================================================
//TITLE:
//    STM32F10X_XX宏定义的选择
//AUTHOR:
//    norains
//DATE:
//    Tuesday  12-October-2010
//Environment:
//    KE]]></description><category></category></item><item><title><![CDATA[STM32固件库详解]]></title><link>https://blog.youkuaiyun.com/mattjiang/article/details/7294653</link><guid>https://blog.youkuaiyun.com/mattjiang/article/details/7294653</guid><author>mattjiang</author><pubDate>Sun, 26 Feb 2012 00:06:58 +0800</pubDate><description><![CDATA[1. 标准外设库的文件结构

在上一小节中已经介绍了使用标准外设库的开发的优势，因此对标准外设库的熟悉程度直接影响到程序的编写，下面让我们来认识一下STM32F10XXX的标准外设库。STM32F10XXX的标准外设库经历众多的更新目前已经更新到最新的3.5版本，开发环境中自带的标准外设库为2.0.3版本，本书中以比较稳定而且较新的V3.4版本为基础介绍标准外设库的结构。

可以从ST的官]]></description><category></category></item><item><title><![CDATA[Linux内核代码风格]]></title><link>https://blog.youkuaiyun.com/mattjiang/article/details/7292509</link><guid>https://blog.youkuaiyun.com/mattjiang/article/details/7292509</guid><author>mattjiang</author><pubDate>Sat, 25 Feb 2012 00:31:08 +0800</pubDate><description><![CDATA[目录


Linux内核代码风格 

第一章：缩进 

第二章：把长的行和字符串打散 

第三章：大括号和空格的放置 

第四章：命名 

第五章：Typedef 

第六章：函数 

第七章：集中的函数退出途径 

第八章：注释 

第九章：你已经把事情弄糟了 

第十章：Kconfig配置文件 

第十一章：数据结构 

第十二章：宏，枚举]]></description><category></category></item><item><title><![CDATA[makefile简单使用]]></title><link>https://blog.youkuaiyun.com/mattjiang/article/details/7289136</link><guid>https://blog.youkuaiyun.com/mattjiang/article/details/7289136</guid><author>mattjiang</author><pubDate>Fri, 24 Feb 2012 00:48:00 +0800</pubDate><description><![CDATA[简介
makefile是工程管理器，可以管理较多的文件，也是一个自动编译管理器，可以减少编译的工作量。通过读取makefile文件来实现。
makefile文件有自己的一套编写规则，详细编写方法见《GNU make中文手册》。
makefile格式：
target ： dependency_files
command
碰到TAB make才认为是命令
例子：
hello.o : h]]></description><category></category></item><item><title><![CDATA[gcc编译器、gdb调试器常用命令]]></title><link>https://blog.youkuaiyun.com/mattjiang/article/details/7289128</link><guid>https://blog.youkuaiyun.com/mattjiang/article/details/7289128</guid><author>mattjiang</author><pubDate>Fri, 24 Feb 2012 00:31:06 +0800</pubDate><description><![CDATA[函数编译的四个阶段：
1>  预处理。去掉注释、包含文件、宏展开、条件编译…
2>  编译。
3>  汇编。这前三个阶段称为翻译阶段。
4>  链接
gcc常用命令参数

-E        停在预处理阶段
-S        停在编译阶段
-C        停在汇编阶段
-O        编译优化
-o        确定输出文件的名称
-g        产生gdb调试的符号]]></description><category></category></item><item><title><![CDATA[arm嵌入式linux开发环境搭建]]></title><link>https://blog.youkuaiyun.com/mattjiang/article/details/7289116</link><guid>https://blog.youkuaiyun.com/mattjiang/article/details/7289116</guid><author>mattjiang</author><pubDate>Fri, 24 Feb 2012 00:24:26 +0800</pubDate><description><![CDATA[一， 准备工作
1， 在ubuntu里安装并配置好tftp服务、nfs服务，注意重启服务，并用ps –aux查询确认服务运行。
$sudo /etc/init.d/openbsd-inetd restart
$sudo /etc/init.d/xinetd restart
$sudo /etc/init.d/portmap restart
$sudo /etc/init.d/nfs-kerne]]></description><category></category></item><item><title><![CDATA[shell文件操作相关命令]]></title><link>https://blog.youkuaiyun.com/mattjiang/article/details/7289111</link><guid>https://blog.youkuaiyun.com/mattjiang/article/details/7289111</guid><author>mattjiang</author><pubDate>Fri, 24 Feb 2012 00:17:53 +0800</pubDate><description><![CDATA[1， 在/opt目录 下新建一个文件夹，名字叫new_folder,并且把/etc/init.d中的所有文件拷贝到这个文件夹中。
sudo cp –r /etc/init.d /opt/new_folder
 
2， 把new_foleder分别压缩为new_folder.tar.gz和new_foleder.tar.bz2文件
sudo tar –jcvf new_folder.tar.]]></description><category></category></item><item><title><![CDATA[常用shell命令]]></title><link>https://blog.youkuaiyun.com/mattjiang/article/details/7289095</link><guid>https://blog.youkuaiyun.com/mattjiang/article/details/7289095</guid><author>mattjiang</author><pubDate>Fri, 24 Feb 2012 00:14:16 +0800</pubDate><description><![CDATA[常用 shell命令

重新安装包
apt-get--reinstall install packeg
按提示信息查找包
apt-cachesearch
安装man
apt-getinstall manpages manpages-posix manpages-posix-dev
使用man
man 3posix XXX



clear 清屏，crtl+l也行
ls –l 列详细信息]]></description><category></category></item><item><title><![CDATA[linux虚拟机相关配置]]></title><link>https://blog.youkuaiyun.com/mattjiang/article/details/7289051</link><guid>https://blog.youkuaiyun.com/mattjiang/article/details/7289051</guid><author>mattjiang</author><pubDate>Thu, 23 Feb 2012 23:57:16 +0800</pubDate><description><![CDATA[配置ip
虚拟机中的菜单栏中：VM –》settings-》hardware
必须确保Bridged:Connected...选中
步骤1
查看网络接口在终端中输入ifconfig
查看网卡接口，会显示eth0，也可能会显示eth1,或者eth2，以此往下类推，此时我们需要eth0
步骤2：修改网络接口配置

sudo vi /etc/network/interfaces
在]]></description><category></category></item><item><title><![CDATA[常用VIM命令]]></title><link>https://blog.youkuaiyun.com/mattjiang/article/details/7289038</link><guid>https://blog.youkuaiyun.com/mattjiang/article/details/7289038</guid><author>mattjiang</author><pubDate>Thu, 23 Feb 2012 23:38:09 +0800</pubDate><description><![CDATA[i     在当前光标前插入；
  I     在光标所在行的最前面插入；
  a     在当前光标后插入；
  A     从光标所在行最后面开始插入；
  hjkl  上下左右移动；
  b     移动到当前字的开始；
  e     移动到当前字的结尾；
  w     向前移动一个字；
  0     移动到行首；
  $     移动到行尾；
  End   移动]]></description><category></category></item><item><title><![CDATA[shell命令行输入不用Enter键和Backspace键的方法]]></title><link>https://blog.youkuaiyun.com/mattjiang/article/details/7289015</link><guid>https://blog.youkuaiyun.com/mattjiang/article/details/7289015</guid><author>mattjiang</author><pubDate>Thu, 23 Feb 2012 23:28:11 +0800</pubDate><description><![CDATA[C-r 查找历史执行命令
C-p 前一条指令
C-n 后一条指令
C-c 终止已经运行的命令(针对还没有运行完的命令和脚本，实际为向相关进程发送中断信号)或者取消已经输入的命令
C-o 执行当前行输入的命令，跟 enter 类似
C-j 同上
C-m同上
C-l 清屏，clear 命令
C-a 移动光标到行首
C-e 移动光标到行尾
C-t 交换光标前俩字符的位置
C-h 往]]></description><category></category></item></channel></rss>