<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[shevsten的专栏]]></title><description><![CDATA[工作日志]]></description><link>https://blog.csdn.net/shevsten</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; shevsten]]></copyright><item><title><![CDATA[Linux Kernel Development 3rd Edition 读书笔记(6)]]></title><link>https://blog.csdn.net/shevsten/article/details/8090816</link><guid>https://blog.csdn.net/shevsten/article/details/8090816</guid><author>shevsten</author><pubDate>Mon, 24 Dec 2012 16:01:45 +0800</pubDate><description><![CDATA[第十一章 Timers and Time Management
1. Frequency of the Timer Interrupt 

2. 全局变量jiffies系统启动后的tick数值.
jiffies变量声明在  :
extern unsigned long volatile jiffies;
jiffies是jiffies_64的低32位,大部分情况用jiffies,只有时]]></description><category></category></item><item><title><![CDATA[Linux Kernel Development 3rd Edition 读书笔记(5)]]></title><link>https://blog.csdn.net/shevsten/article/details/7653453</link><guid>https://blog.csdn.net/shevsten/article/details/7653453</guid><author>shevsten</author><pubDate>Fri, 19 Oct 2012 17:29:16 +0800</pubDate><description><![CDATA[第九章 An Introduction to Kernel Synchronization
1. pseudo-concurrency: 访问不同时发生,但是互相发生交错.
2. 内核并发性的原因有:Interrupts, Softirqs and tasklets, Kernel preemption, Sleeping and synchronization with user-space]]></description><category></category></item><item><title><![CDATA[Cortex M3 Bit-banding简介]]></title><link>https://blog.csdn.net/shevsten/article/details/7676397</link><guid>https://blog.csdn.net/shevsten/article/details/7676397</guid><author>shevsten</author><pubDate>Tue, 19 Jun 2012 14:30:05 +0800</pubDate><description><![CDATA[bit-band是Cortex-M3内核中针对某一段区域进行位和字映射的机制,对于位操作,如IO控制LED,相比传递的C语言的位操作,提供了很大的方便.
bit-band 区域将存储器别名区(bit-band alias region)的一个字映射为 bit-band区的一个位. 处理器存储器映射包括两个 bit-banding 区域, 它们分别为 SRAM 和外设存储区域中的最低的 1MB.]]></description><category></category></item><item><title><![CDATA[MCU知识总结]]></title><link>https://blog.csdn.net/shevsten/article/details/6402305</link><guid>https://blog.csdn.net/shevsten/article/details/6402305</guid><author>shevsten</author><pubDate>Fri, 15 Jun 2012 16:27:20 +0800</pubDate><description><![CDATA[1. Brown-Out Reset
掉电复位,或电源电压跌落复位, 当输入电压VCC跌到某一门限时芯片复位
The MCU is reset when the supply voltage VCC is below the Brown-Out Reset threshold voltage
and the Brown-out Detector is enabled. The Brown-o]]></description><category></category></item><item><title><![CDATA[Linux Kernel Development 3rd Edition 读书笔记(4)]]></title><link>https://blog.csdn.net/shevsten/article/details/7362007</link><guid>https://blog.csdn.net/shevsten/article/details/7362007</guid><author>shevsten</author><pubDate>Thu, 07 Jun 2012 17:40:27 +0800</pubDate><description><![CDATA[第七章: Interrupt and Interrupt Handler
1. 驱动调用 request_irq()来注册中断,声明在 
/* request_irq: allocate a given interrupt line */ 
int request_irq(unsigned int irq,
irq_handler_t handler, 
unsigned long fl]]></description><category></category></item><item><title><![CDATA[Linux Kernel Development 3rd Edition 读书笔记(3)]]></title><link>https://blog.csdn.net/shevsten/article/details/7197904</link><guid>https://blog.csdn.net/shevsten/article/details/7197904</guid><author>shevsten</author><pubDate>Fri, 16 Mar 2012 15:12:03 +0800</pubDate><description><![CDATA[第六章: Kernel Data Structures
1. Linked Lists
(1) singly list
/* an element in a linked list */
struct list_element { 
void *data;                   /* the payload */ 
struct list_element *next;    /]]></description><category></category></item><item><title><![CDATA[Linux Kernel Development 3rd Edition 读书笔记(2)]]></title><link>https://blog.csdn.net/shevsten/article/details/7181293</link><guid>https://blog.csdn.net/shevsten/article/details/7181293</guid><author>shevsten</author><pubDate>Thu, 12 Jan 2012 16:05:29 +0800</pubDate><description><![CDATA[第四章: Process Scheduling
1. 多任务操作系统有2种类型：cooperative and preemptive multitasking, 即非抢占式和抢占式. Linux是抢占式多任务操作系统.
2. Linux 2..5版本使用叫o(1)的scheduler, Linux2.6.23使用叫completely fair scheduler(CFS).
3. 进程可分]]></description><category></category></item><item><title><![CDATA[AVR/GCC设置不链接未调用的函数]]></title><link>https://blog.csdn.net/shevsten/article/details/7049688</link><guid>https://blog.csdn.net/shevsten/article/details/7049688</guid><author>shevsten</author><pubDate>Wed, 07 Dec 2011 14:24:58 +0800</pubDate><description><![CDATA[在AVR Studio4/5的AVR/GCC默认设置下,未调用的函数也会被link进最终的镜像,从而增大image的大小,这会浪费flash资源.
以下是如何在AVR Studio4/5设置,不把未调用的函数link进image.
方法是在complier命令中增加-ffunction-sections,linker命令中增加-Wl,--gc-sections.
-ffunction-sec]]></description><category></category></item><item><title><![CDATA[Linux Kernel Development 3rd Edition 读书笔记(1)]]></title><link>https://blog.csdn.net/shevsten/article/details/6632698</link><guid>https://blog.csdn.net/shevsten/article/details/6632698</guid><author>shevsten</author><pubDate>Wed, 23 Nov 2011 17:29:24 +0800</pubDate><description><![CDATA[该书有第二版中文版,第三版还没看到,这里记录下该书的要点,并翻译成中文以加深印象.欢迎指正
第一章 Introduction To The Linux Kernel
1. Linux内核类型Linux 
Linux是单一的内核(monolithic kernel),就是说,Linux内核在单一的地址空间中运行,但是Linux借鉴了很多微内核(mircokernel)的优点. Linux使用了]]></description><category></category></item><item><title><![CDATA[WinCE6.0 DEVICEEMULATOR BSP的CEDDK简析]]></title><link>https://blog.csdn.net/shevsten/article/details/6250391</link><guid>https://blog.csdn.net/shevsten/article/details/6250391</guid><author>shevsten</author><pubDate>Tue, 15 Mar 2011 11:55:00 +0800</pubDate><description><![CDATA[WinCE6.0 DEVICEEMULATOR BSP的CEDDK提供了地址转换函数,位于/SRC/DRIVERS/CEDDK/下,有2个目录DDK_BUS和DLL,前者生成ddk_bus.lib,后者生成ceddk.dll,这部分的CEDDK实现了4个函数,data.c中的HalGetBusDataByOffset和HalSetBusDataByOffset,trans.c中的HalTranslateBusAddress和HalTranslateSystemAddress.]]></description><category></category></item><item><title><![CDATA[WinCE6.0 DEVICEEMULATOR BSP的BatteryDriver驱动简析 ]]></title><link>https://blog.csdn.net/shevsten/article/details/6240062</link><guid>https://blog.csdn.net/shevsten/article/details/6240062</guid><author>shevsten</author><pubDate>Fri, 11 Mar 2011 14:26:00 +0800</pubDate><description><![CDATA[WinCE6.0 DEVICEEMULATOR BSP的Battery驱动,位于/SRC/DRIVERS/BATTDRVR下,只有一个battif.c,内容比较简单.实际上是电池驱动的PDD层,实现PDD层中的一个接口函数,这里简要来分析一下.其中MDD层代码位于/WINCE600/PUBLIC/COMMON/OAK/DRIVERS/BATTDRVR下.]]></description><category></category></item><item><title><![CDATA[WinCE6.0 DEVICEEMULATOR BSP的BackLight驱动简析]]></title><link>https://blog.csdn.net/shevsten/article/details/6204924</link><guid>https://blog.csdn.net/shevsten/article/details/6204924</guid><author>shevsten</author><pubDate>Thu, 24 Feb 2011 14:01:00 +0800</pubDate><description><![CDATA[这里就WinCE6.0 DEVICEEMULATOR BSP的BackLight驱动做下分析, 更多关于电源管理的内容可以参考其他资料.
这是一个名称为BKL的流接口驱动,实际上流接口函数,如BKL_Open, BKL_Read, BKL_Read,BKL_Write等都未实现,只有一个空函数框架,因为背光驱动并没有数据的输入输出,而是具体的功能设置.]]></description><category></category></item><item><title><![CDATA[ARM几条汇编指令的比较]]></title><link>https://blog.csdn.net/shevsten/article/details/6201850</link><guid>https://blog.csdn.net/shevsten/article/details/6201850</guid><author>shevsten</author><pubDate>Wed, 23 Feb 2011 10:56:00 +0800</pubDate><description><![CDATA[从网上找到一些关于ARM伪指令的资料,现整理如下:

1. LDR
LDR R0, =0X3FF5000 ;伪指令,把0X3FF5000这个地址送给R0 
LDR R0, 0XFF       ; 把立即数0xff送给R0
LDR R0, =&FF       ; &相当于0X 
]]></description><category></category></item><item><title><![CDATA[Windows编程问题汇总]]></title><link>https://blog.csdn.net/shevsten/article/details/6161482</link><guid>https://blog.csdn.net/shevsten/article/details/6161482</guid><author>shevsten</author><pubDate>Mon, 24 Jan 2011 16:33:00 +0800</pubDate><description><![CDATA[1.我在一个控制台程序中使用了_beginthreadex()函数，并包含了PROCESS.h头文件    但总是编译错误:告诉我函数没有定义？    
#include "process.h" 
............    
error C2065: '_beginthreadex' : undeclared identifier
答:运行库必须用多线程的,在VC6中设置:
pro]]></description><category></category></item><item><title><![CDATA[WinCE6.0 DEVICEEMULATOR BSP在GEC2410开发板上的移植(3)-PwrButton驱动移植及分析]]></title><link>https://blog.csdn.net/shevsten/article/details/6152028</link><guid>https://blog.csdn.net/shevsten/article/details/6152028</guid><author>shevsten</author><pubDate>Wed, 19 Jan 2011 11:56:00 +0800</pubDate><description><![CDATA[PwrButton驱动实现了按键关机(PowerOff)和重启(Reset)的功能.我们这里定义开发板上的K1为PowerOff,K3为Reset,对应与CPU的EINT0和EINT2中断.
DEVICEEMULATOR BSP中已经基本实现了该驱动,在GEC2410.bat中使能PwrButton,即设置BSP_NOPWRBTN不为1:
set BSP_NOPWRBTN=]]></description><category></category></item><item><title><![CDATA[linux 2.6.24.4及根文件系统在S3C2410上的移植(使用4.3.2编译器支持eabi)(基于GEC2410)]]></title><link>https://blog.csdn.net/shevsten/article/details/6096497</link><guid>https://blog.csdn.net/shevsten/article/details/6096497</guid><author>shevsten</author><pubDate>Fri, 24 Dec 2010 15:42:00 +0800</pubDate><description><![CDATA[之前移植了linux-2.6.24.4和根文件系统（使用busybox-1.10.1创建）在GEC2410平台上运行。可参考之前的笔记:
内核配置: http://blog.csdn.net/shevsten/archive/2010/05/17/5599790.aspx
根文件系统: http://blog.csdn.net/shevsten/archive/2010/05/26/5625133.aspx

那时候用的是crosstool编译出来的3.4.5的支持softfloat的编译器，如今的]]></description><category></category></item><item><title><![CDATA[C陷阱与缺陷学习笔记]]></title><link>https://blog.csdn.net/shevsten/article/details/6094494</link><guid>https://blog.csdn.net/shevsten/article/details/6094494</guid><author>shevsten</author><pubDate>Thu, 23 Dec 2010 16:11:00 +0800</pubDate><description><![CDATA[第一章:词法"陷阱"
1. 编译器将程序分解成符号的方法是,从左到右一个字符一个字符地读入,如果该字符可能组成一个符号,那么再读入下一个字符,判断已经读入的两个字符组成的字符串是否可能是一个符号的组成部分;如果可能,继续读入下一个字符,重复上述判断,直到读入的字符组成的字符串已不再可能组成一个有意义的符号.]]></description><category></category></item><item><title><![CDATA[WinCE6.0 DEVICEEMULATOR BSP在GEC2410开发板上的移植(2)-FAT分区和HIVE注册表在Nand上的实现]]></title><link>https://blog.csdn.net/shevsten/article/details/5909272</link><guid>https://blog.csdn.net/shevsten/article/details/5909272</guid><author>shevsten</author><pubDate>Mon, 27 Sep 2010 11:38:00 +0800</pubDate><description><![CDATA[FAT分区在Nand上的实现与CE5.0下的实现方法一样,请参考5.0实现的笔记:
http://blog.csdn.net/shevsten/archive/2010/03/04/5344716.aspx
需要注意的是需要包含Third Party-GEC2410-Storage Devices-PCI NAND Flash Driver组件.使能CE_MODULES_SDNPCID.]]></description><category></category></item><item><title><![CDATA[Windows CE USB Function Driver驱动简析(2)-IST函数(基于WinCE5.0 SMDK2410 BSP的UFBFN驱动) ]]></title><link>https://blog.csdn.net/shevsten/article/details/5801723</link><guid>https://blog.csdn.net/shevsten/article/details/5801723</guid><author>shevsten</author><pubDate>Tue, 10 Aug 2010 15:49:00 +0800</pubDate><description><![CDATA[上一篇我们简单分析了UFN驱动中的Ufn_pdd函数,现在我们来看看IST主线程ISTMain函数及相关处理函数.
1.ISTMain
ISTMain在UfnPdd_Start被创建:
pContext->hIST = CreateThread(NULL, 0, ISTMain, pContext, 0, NULL);    ]]></description><category></category></item><item><title><![CDATA[Windows CE USB Function Driver驱动简析(1)-驱动架构及UfnPdd函数(基于WinCE5.0 SMDK2410 BSP的UFBFN驱动) ]]></title><link>https://blog.csdn.net/shevsten/article/details/5736889</link><guid>https://blog.csdn.net/shevsten/article/details/5736889</guid><author>shevsten</author><pubDate>Thu, 15 Jul 2010 13:35:00 +0800</pubDate><description><![CDATA[s3c2410有2个USB Host接口,一个Device接口.首先介绍下USB的几个概念:
USB是主从结构的,PC是主端(Host)，连接到PC上的设备就是从端(device或function).因此对应的驱动分别叫做USB Host Driver及USB Function Driver。我们的板子可以做host也可以做device,接U盘,鼠标到板子上,板子就是Host.板子连到PC作为Mass Storage或者用Activesync连接就是function.]]></description><category></category></item></channel></rss>