tag 标签: 松江大学城嵌入式linux

相关博文
  • 热度 30
    2012-7-3 15:26
    2233 次阅读|
    8 个评论
     看似简单的东西从来没有去怀疑过书本知识,最近我一个学生在美国亚力桑那州立大学读大二回来,问她在美国学习是否能跟上,她说口语没什么问题,只是,她每次做实验,都是把实验步骤背熟了才去了,但是美国的学生却不需要看实验步骤,他们就可以开始做,而且很成功!上次杨振宁科学家老人在演讲的时候说过,美国的学生是先有现象才去看理论,他们不相信理论,相信自己的实验结果!我并非崇阳媚外,其实很多知识点,不管是c语言,arm,单片机,linux,我最想做的是自己去编译,验证一遍别人所说的,也许这就是我在本blog基本上所有文章都是原创的原因,我喜欢参考别人的,但我跟喜欢自己去验证,研究一遍自己才放心! 作 者:下家山(索漫科技培训教材,原创作品,转载请注明,下家山) 一:请运行下列代码 #include   int main (void) {     int i=0;     char str ='\0')         {             break;         }         printf("%c",str );     }     return 0; } 二:上述代码有什么问题                  请各位猜猜!!! 三: 从现象看本质      数组是一组相同类型的变量或常量的集合;      数组的定义形式:     类型 数组名     字符串数组,字符串数组的特征: 初始化可以在后面用双引号括起来,可以不给数组下标,如果不给数组下标,编译器自动会计算出该数组有多少个元素。并且在数组结束位置自动加上字符串结束符"\0".   char str = {'H','e','l','l','o'};     char str1 )=%d\n",sizeof(str));//此处打印结果是5     printf("sizeof(str1 )         {             break;         }         printf("%c",str );     }     return 0; }  运行结果   从结果我们知道,字符数组的个数是5个,编译器不会再后面加"\0"结束符, 字符串数组的元素个数是6,编译自动在后面加上了"\0"结束符。                 2012-6-19   写于上海.松江                                     下家山 【上海索漫提供】请尊重原创,转载请注明:作者,下家山                                
  • 热度 18
    2012-7-1 22:24
    909 次阅读|
    0 个评论
                         
  • 热度 19
    2012-6-19 22:37
    996 次阅读|
    0 个评论
    翻译整理 :下家山(索漫科技培训教材 转载请注明,下家山) 一:Operating Modes Arm官方资料: The ARM720T processor supports seven modes of operation, as shown in Table 2-1.   Mode          Type                   Description User            use              The normal ARM program execution mode FIQ            fiq               Used for most performance-critical interrupts in a system IRQ            irq               Used for general-purpose interrupt handling Supervisor       svc               Protected mode for the operating system Abort mode      abt               Entered after a Data Abort or instruction Prefetch Abort System         sys                A privileged User mode for the operating system Undefined      und                Entered when an Undefined Instruction is executed 翻译: Arm720T有7中操作模式(arm9 arm10 arm11 a8 a9一样),   Mode           Type                   Description 用户模式        usr                   普通arm 程序执行模式 快速中断模式    fiq                   用于系统中执行关键性能中断 普通中断模式    irq                   被用于通用目的中断处理 超级用户模式    svc                  用户操作系统保护模式 终止模式       abt                   当数据终止或预取址终止错误发生将进入该模式 系统模式       sys                   操作系统特权用户模式 未定义模式     und                   当未定义指令被执行将进入该模式   二:Changing operating modes Arm官方资料: Mode changes can be made under software control, by external interrupts or during exception processing. Most application programs execute in User mode. The non-User modes, known as privileged modes, are entered in order to service interrupts or exceptions, or to access protected resources. 翻译:  模式改变可通过软件控制,如:通过外部中断,或异常处理期间。大部分应用程序执行在user模式,非user模式,如特区模式等只在服务中断或处理异常,或访问保护资源的时候才进入。                      2012-6-19                                    写于上海松江 【上海索漫提供】请尊重原创,转载请注明:作者,下家山
  • 热度 15
    2012-6-19 22:03
    2533 次阅读|
    0 个评论
    原创作品,转载请注明 作者:潇湘- ,自动化大三 (索漫科技linux驱动班学员) 一、目的        在LPC2136下,研究IOPIN置高电平与IOSET置高电平的区别。 二、缘由        在一系列实验时我发现,IOPIN寄存器在IODIR寄存器设置好方向后,也能实现输入和输出高低电平。和IOSET有所区别的是IOSET置高电平后要用IOCLR清除,而IOPIN只需要在变量赋值时重新覆盖即可。 三、实验过程 大家可以用小灯程序做个实验 在我的开发板中小灯的引脚如下图所示 故做如下实验 用IOPIN寄存器时 #define LED1  116 #define LED2  117 #define LED3  118 #define LED4  119 /**************************************************************************** * 名称:initSystem() * 功能:初始化IO ****************************************************************************/ void initSystem(void) {       IO1DIR = LED1|LED2|LED3|LED4;//设置方向       IO1SET = LED1|LED2|LED3|LED4 ;//高电平使灯灭 }          /**************************************************************************** * 名称:main() * 功能:初始化led,并实现led4闪烁的效果。 ****************************************************************************/ int main(void) {       initSystem();        while(1)     {               IO1PIN = LED1|LED2|LED3  ;//123灯灭,4灯亮        delay(40);        IO1PIN = LED1|LED2|LED3|LED4 ;//1234灯全灭       delay(40);     }       return 0; }        由此可见,用IOXPIN寄存器时发现LED4在闪烁,说明当把变量赋给IOXPIN寄存器时可以刷新 用IOSET寄存器时 int main(void) {       initSystem();        while(1)      {             IO1SET = LED1|LED2|LED3;         delay(40);          IO1SET= LED1|LED2|LED3|LED4 ;        delay(40);   }       return 0; } 发现LED4灯没有闪烁,说明IOXSET寄存器必须要IOCLR置一才能消去高电平。   下面请看数据手册中IOSET和IOCLR的解释     四、思考         数据手册告诉了我们。但是我发现IOPIN寄存器不只个状态寄存器,它也有别样的功能。程序在一定程度上可以简化,原来程序中,IOSET和IOCLR需要一起作用,如今只需要IOPIN一个寄存器就能解决了。 2012年6月19日                                              写于上海.松江             
  • 热度 19
    2012-6-19 21:41
    1747 次阅读|
    0 个评论
    我读书时很憎恨English,但是这么多年的工作,我喜欢上了English,我不得不喜欢他,所有的技术文档的白皮书,规范都出自E文,只有做技术后才知道自己国家技术的落后,但是我真的希望我们现在做技术的,以及今后做技术的能够多点原创,包括文档,设计,研究,虽然我们国家的环境不容这样,我们疲于生计,只有抄,”偷”才能得以温饱,我辛辛苦苦花了一个上午把这篇文档写好,我在做公益,高校的老师都是留校的,研究院的领导已不做试验…,罗嗦了几句,发发牢骚,有同感的捧个”钱”场,没有同感的捧个”点击率 Arm Memory Format                    作 者:下家山(索漫科技培训教材,原创作品,转载请注明,下家山) 一:Memory formats 下面是arm官方文档说明: Memory formats The ARM720T processor views memory as a linear collection of bytes numbered upwards from zero, as follows: Bytes 0 to 3 Hold the first stored word. Bytes 4 to 7 Hold the second stored word. Bytes 8 to 11 Hold the third stored word. Words are stored in memory as big or little-endian The endianness used depends on the status of the B bit in the Control Register of the system control coprocessor. See Control Register on page 3-5 for more information. 翻译: 存储格式 ARM720T(arm9,10,11,a8,a9都一样)处理器把存储器当作一个从0向上的线性字节编号集合,例如: 字节0-3占据第一个存储字。 字节4-7占据第二个存储字。 字节8-11占据第三个存储字。 而,这些字被存储在内存以大端或小端方式。 是否采用什么端点由系统控制协处理器的控制寄存器的B位状态决定。 二:Big-endian format In big-endian format, the most significant byte of a word is stored at the lowest numbered byte and the least significant byte at the highest numbered byte. Byte 0 of the memory system is therefore connected to data lines 31 to 24. Big-endian format is shown in Figure 2-1. 在大端格式,一个字的最高有效字节被存储在最低编号字节上,最低有效字节被存储在最高编号字节上。因此,内存系统的0号字节被链接到31-24号地址总线。 Note • Most significant byte is at lowest address • Word is addressed by byte address of most significant byte. 注意: 最高有效字节位于最低地址 字按照最高有效字节所在地址寻址 2.1 大端实例分析 其实E文已说明的很清晰,如果E文不好( 我读书时很憎恨English,但是这么多年的工作,我喜欢上了English,我不得不喜欢他,所有的技术文档的白皮书,规范都出自E文,只有做技术后才知道自己国家技术的落后,但是我真的希望我们现在做技术的,以及今后做技术的能够多点原创,包括文档,设计,研究,虽然我们国家的环境不容这样,我们疲于生计,只有抄,”偷”才能得以温饱,我辛辛苦苦花了一个上午把这篇文档写好,我在做公益,高校的老师都是留校的,研究院的领导已不做试验…,罗嗦了几句,发发牢骚,有同感的捧个”钱”场,没有同感的捧个”点击率”),翻译也很明了。 我们这里有三个十进制数按先后顺序存放在内存 :  2954015906    2721894998  1797011999 用十六进制数表示是:0xB012B4A2   0xA23CD256    0x6B1C3A1F 那么这个数在大端内存里面是怎么存放的呢?         三:Little-endian format In little-endian format, the lowest numbered byte in a word is considered the least significant byte of the word, and the highest numbered byte the most significant. Byte 0 of the memory system is therefore connected to data lines 7 to 0. 在小端格式,在一个字上的最低编号字节当作这个字的最低有效字节,最高编号字节当作这个字的最高有效字节。因此,内存系统的0号字节被链接到7-0号地址总线。   Little-endian format is shown in Figure 2-2.             Note • Most significant byte is at lowest address • Word is addressed by byte address of least significant byte. 注意: 最高有效字节位于最低地址 字按照最低有效字节所在地址寻址 3.1 小端实例分析 同上,我们这里有三个十进制数按先后顺序存放在内存 :  2954015906    2721894998  1797011999 用十六进制数表示是:0xB012B4A2   0xA23CD256    0x6B1C3A1F 那么这个数在小端内存里面是怎么存放的呢?            2012-6-19                                    写于上海松江 【上海索漫提供】请尊重原创,转载请注明:作者,下家山