随笔分类 -  嵌入式

摘要:一、arm-9 TQ2440 key.h 1 #ifndef __KEY_H__ 2 #define __KEY_H__ 3 4 #define GPFCON (*(volatile unsigned long *)0x56000050) 5 #define GPFDAT (*(volatile unsigned long *)0x56000054) 6 7 extern void key_init(void); 8 extern int key1(void); 9 extern int key2(void);10 extern int key3(void);11 extern int k.. 阅读全文
posted @ 2014-03-30 17:37 net小伙 阅读(2278) 评论(0) 推荐(0) 编辑
摘要:一、在使用S5PV210的串口发送和接收的时候,首先要对S5PV210的串口进行配置,我们使用轮询方式时的配置有哪些?1、配置GPIO,使对应管脚作为串口的发送和接收管脚 GPA0 0 1 管脚2 3 可以配置,但我们没有使用 GPA0CON寄存器[7:4][3:0] 0x22 GPA0PUD寄存器[3:0] 0 禁止上下拉电阻2、配置串口单元本身寄存器 ULCON0 0xE2900000 数据位:8位 停止位:1位 校验位:无 使用的正模式,非红外。3、UCON0 0xE2900004 串口... 阅读全文
posted @ 2014-03-19 23:19 net小伙 阅读(2441) 评论(0) 推荐(0) 编辑
摘要:汇编通用makefile: 命令行编辑: 编译 arm-linux-as -march=armv5te -o led.o led.s -march 指定的指令集的版本 指定架构 连接 arm-linux-ld -nostartfiles -nostdlib -Ttext=0x20008000 -o 阅读全文
posted @ 2014-03-18 22:56 net小伙 阅读(454) 评论(0) 推荐(0) 编辑
摘要:#define GPBCON (*(volatile unsigned long*)0x56000010)1:volatile 当计算机需要一个数值的时候,会先把内存中的值读取到寄存器,然后下次在使用该值的时候就直接读取寄存器中的值了。加上volatile之后,程序就会在每次需要该值的时候都读取一次内存。这是为了防止某些原因硬件会改变其值。2: (volatile unsigned long *)即为强制类型转换;(volatile unsigned long *)0x56000010 的意思就是把0x56000010强制转换为unsigned long类型的指针。这时(volatile .. 阅读全文
posted @ 2013-09-06 10:45 net小伙 阅读(2160) 评论(0) 推荐(0) 编辑
摘要:安装完ads的时候会出现错误,因为还要安装License Installation Wizard。 下一步会出现这个然后点击Browse...找到ads1.2下的CRACK(crack)文件夹的LICENSE.DAT(license.dat)文件。然后选择,一直下一步。ok,解决了!!! 阅读全文
posted @ 2013-09-04 22:48 net小伙 阅读(297) 评论(0) 推荐(0) 编辑
摘要:一:从网上下载EABI-4.3.3_EmbedSky_20100610.tar.bz2文件;二:把此文件用命令:tar xvfj ./EABI-4.3.3_EmbedSky_20100610.tar.bz2把压缩文件解压到指定的文件夹中(比如是opt);三:解压完成之后执行命令:gedit /etc/profile;四:在if后添加 pathmunge + (opt文件的绝对路径);五:然后执行source /etc/profile;使此环境变量在当前终端中可用。六:执行命令:arm-linux-gcc -v;如果安装成功这会显示版本号位4.3.3.七:重启系统,是环境变量在每个终端生效! 阅读全文
posted @ 2013-06-01 21:47 net小伙 阅读(2090) 评论(0) 推荐(0) 编辑
摘要:学东西,往往实例才是最让人感兴趣的,老是学基础理论,不动手,感觉没有成就感,呵呵。下面先来一个实例。我们通过创建两个线程来实现对一个数的递加。或许这个实例没有实际运用的价值,但是稍微改动一下,我们就可以用到其他地方去拉。下面是我们的代码: 1 #include <pthread.h> 2 #include <stdio.h> 3 #include <sys/time.h> 4 #include <string.h> 5 #define MAX 10 6 7 pthread_t thread[2]; 8 pthread_mutex_t mut; 9 阅读全文
posted @ 2013-04-26 20:55 net小伙 阅读(289) 评论(0) 推荐(0) 编辑
摘要:菜鸟是每个学习嵌入式的人都必须经过的一段时间,不过有人经历的时间长,有的人经历的时间短,其中的差别就在于你的努力程度和努力的方向,因此一些必读的工具书是不必可少的,下面有一些个人认为还不错的工具书籍,大家可以参考一下,希望对大家有所帮助,让你从菜鸟尽快变成大虾。嵌入式书籍推荐 Linux基础 1、《Linux与UnixShell编程指南》 C语言基础 1、《CPrimerPlus,5thEdition》【美】StephenPrata着 2、《TheCProgrammingLanguage,2ndEdition》【美】BrianW.KernighanDavidM.Rithie... 阅读全文
posted @ 2013-04-22 09:39 net小伙 阅读(778) 评论(0) 推荐(0) 编辑
摘要:壹:在最近的项目中,我们涉及到了“内存对齐”技术。对于大部分程序员来说,“内存对齐”对他们来说都应该是“透明的”。“内存对齐”应该是编译器的“管辖范围”。编译器为程序中的每个“数据单元”安排在适当的位置上。但是C语言的一个特点就是太灵活,太强大,它允许你干预“内存对齐”。如果你想了解更加底层的秘密,“内存对齐”对你就不应该再透明了。一、内存对齐的原因大部分的参考资料都是如是说的:1、平台原因(移植原因):不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。2、性能原因:数据结构(尤其是栈)应该尽可能地在自然边界上对齐。原因在于, 阅读全文
posted @ 2013-03-25 10:04 net小伙 阅读(490) 评论(0) 推荐(0) 编辑