
ARM的学习
文章平均质量分 81
狼性天下
这个作者很懒,什么都没留下…
展开
-
ARM和DM9000的网卡接口设计与实现
摘自:http://home.eeworld.com.cn/my/space.php?uid=139215&do=blog&id=22235 基于ARM和DM9000的网卡接口设计与实现 2008-07-03 15:38:02 作者:李剑雄 来源:微计算机信息关键字:ARM微控制器驱动程序 网卡芯片 接口 中断源 开发与实现 数据总线宽度 北京航转载 2012-11-01 14:02:44 · 2293 阅读 · 1 评论 -
STM32中USART常用的发送函数
1.中断模式void USART2_IRQHandler(void) //串口2中断服务程序{ u8 u8Temp; /*****************发送中断************************************/ if (USART_GetITStatus(USART2, USART_IT_TXE) == SET)原创 2017-01-09 23:37:57 · 1747 阅读 · 0 评论 -
STM32 驱动液晶LCD12864
#include "led.h"#undef APP_DE#include "hawk.h"液晶采用晶联讯电子的JLX19264G-260#define FEEDDOG() GPIOC->ODR^= GPIO_Pin_0//LCD IO初始化void LCD_Init(void){ GPIO_InitTypeDef GPIO_InitSt原创 2017-01-13 18:56:13 · 12441 阅读 · 2 评论 -
STM32 UART常用的3种中断接收
#include "sys.h"#include "usart.h" #include "main.h"//如果使用ucos,则包括下面的头文件即可.#if SYSTEM_SUPPORT_OS#include "includes.h" //ucos 使用 #endif//注意,读取USARTx->SR能避免莫名其妙的错误 u8 US原创 2017-01-08 11:00:41 · 21459 阅读 · 0 评论 -
单片机开发新架构---时间片轮询
转载出处:http://bbs.eeworld.com.cn/thread-311494-1-1.html时间片轮询法,在很多书籍中有提到,而且有很多时候都是与操作系统一起出现,也就是说很多时候是操作系统中使用了这一方法。不过我们这里要说的这个时间片轮询法并不是挂在操作系统下,而是在前后台程序中使用此法。也是本贴要详细说明和介绍的方法。 对于时间片轮询法,虽然转载 2017-01-07 00:26:33 · 1367 阅读 · 1 评论 -
经典_STM32_ADC多通道采样
STM32 ADC多通道转换描述:用ADC连续采集11路模拟信号,并由DMA传输到内存。ADC配置为扫描并且连续转换模式,ADC的时钟配置为12MHZ。在每次转换结束后,由DMA循环将转换的数据传输到内存中。ADC可以连续采集N次求平均值。最后通过串口传输出最后转换的结果。程序如下:#i nclude "stm32f10x.h" //这个头文件包括STM32F10x所有外围寄存器、位、转载 2017-01-06 15:01:00 · 14946 阅读 · 0 评论 -
sd 协议解析
摘自:http://blog.youkuaiyun.com/g_salamander/article/details/14167055一、SD 存储卡特性介绍1、存储容量 a、标准容量SD存储卡(SDSC): 不大于2GB b、大容量SD存储卡(SDHC): 大于2GB、不大于32GB c、超大容量SD存储卡(SDXC):大于32GB、不大转载 2016-09-06 10:42:04 · 3531 阅读 · 0 评论 -
STM323中低功耗模式
STM32进入低功耗模式 备份SRAM和RTC模块都可以保持正常工作状态。1 睡眠模式 sleep:进入睡眠状态前采取以下措施:除保留将要唤醒Cortx内核的时钟之外,关闭所有外设时钟,并开启内部HSI(可设置为1MHz)后,STM32睡眠消耗电流大概0.5mA左右。2.停机模式 close down:停机模式设置完成后,CPU遇到WFI或WFE指令就会停止工作转载 2015-12-18 18:30:46 · 3089 阅读 · 0 评论 -
Keil MDK下学习STM32注意事项
摘自:http://blog.sina.com.cn/s/blog_6bd352290101b7tx.html1、STM32固件库使用外围设备的主要思路 在STM32中,外围设备的配置思路比较固定。首先是使能相关的时钟,一方面是设备本身的时钟,另一方面如果设备通过IO口输出还需要使能IO口的时钟;最后如果对应的IO口是复用功能的IO口,则还必须使能AFIO转载 2015-08-07 21:12:20 · 1905 阅读 · 1 评论 -
转一篇比较详细介绍FatFs文件系统移植的文章
摘自:http://blog.163.com/zhshq_hg@126/blog/static/3278568820090710053782/ 补充一点,FatFs的作者写了两个,一个是正宗的FatFs,比较适合大的RAM的设备,另一个是FatFs/Tiny,比较适合小RAM的系统,比如单片机,FatFs/Tiny占用较小的RAM,代价是更慢的读写速度和更少的API函数。不过两个都支持FA转载 2017-02-06 16:11:01 · 4337 阅读 · 0 评论 -
FATFS文件系统
FatFS 是一个通用的文件系统模块,用于在小型嵌入式系统中实现FAT文件系统。 FatFs 的编写遵循ANSI C,因此不依赖于硬件平台。它可以嵌入到便宜的微控制器中,如 8051, PIC, AVR, SH, Z80, H8, ARM 等等,不需要做任何修改。它的官方网址http://elm-chan.org/fsw/ff/00index_e.html。转载 2017-02-03 14:53:57 · 350 阅读 · 0 评论 -
STM32 SPI2读W25Q128驱动
//SPI1 读写一个字节//TxData:要写入的字节//返回值:读取到的字节u8 SPI2_ReadWriteByte(u8 TxData){ while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) == RESET){}//等待发送区空 SPI_I2S_SendData(SPI2, TxData); //通过外原创 2017-01-13 11:40:23 · 11360 阅读 · 1 评论 -
独立按键扫描程序的思考(整合两种算法)
摘自:http://blog.youkuaiyun.com/xuechaojie/article/details/6761772网上看到Etual 2008年总结的《新型按键扫描》的博文,很有感触。关于按键扫描的介绍和应用可以参照原文,本文只是我对程序的一些心得和体会。原文的链接找不到了,给个转载的:http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn转载 2017-01-13 11:36:47 · 1324 阅读 · 0 评论 -
经典按键扫描算法理解
以下假设你懂C语言,因为纯粹的C语言描述,所以和处理器平台无关,你可以在MCS-51,AVR,PIC,甚至是ARM平台上面测试这个程序性能。 以下以AVR的MEGA8作为平台讲解,没有其它原因,因为我手头上只有AVR的板子而已没有51的。用51也可以,只是芯片初始化部分不同,还有寄存器名字不同而已。核心算法:unsigned char Trg;unsigned char Cont;转载 2017-01-13 10:44:03 · 4534 阅读 · 0 评论 -
STM32学习--流水灯
参考http://blog.youkuaiyun.com/wangxiaobupt/article/details/18443833一、准备工作 STM32的官方固件库二、建立步骤 建立工程文件夹fled;文件夹中需要包含的文件 CORE //放入固件库里的核心支持文件core_cm3、core_cm3.h 和设备支持文件starup_stm32f10x_..原创 2015-07-13 22:52:50 · 1123 阅读 · 0 评论 -
STM32中assert_param的使用
在STM32的固件库和提供的例程中,到处都可以见到assert_param()的使用。如果打开任何一个例程中的stm32f10x_conf.h文件,就可以看到实际上assert_param是一个宏定义;在固件库中,它的作用就是检测传递给函数的参数是否是有效的参数。所谓有效的参数是指满足规定范围的参数,比如某个参数的取值范围只能是小于3的正整数,如果给出的参数大于3,则这个assert_转载 2017-01-13 09:00:12 · 396 阅读 · 0 评论 -
基于STM32的智能学习空调项目的定时器捕获驱动
/************************************************************************************************************************** 函数 : TIM3.C* 功能 : 红外信号捕获和发射* 参数 : 无* 返回 : 无* 依赖 : 底层读写函数原创 2017-01-13 00:14:03 · 408 阅读 · 0 评论 -
基于STM32的DS18B20驱动
#include "ds18b20.h"#include "delay.h" short tmp_arg; //温度平滑滤波//复位DS18B20void DS18B20_Rst(void) { DS18B20_IO_OUT(); //SET PG11 OUTPUT DS18B20_DQ_OUT=0; //拉低DQ原创 2017-01-13 00:29:53 · 3142 阅读 · 0 评论 -
基于STM32的DS1302时钟芯片驱动
/************************************************************************************************************************** 函数 : DS1302.H* 功能 : DS1302头文件* 参数 : 无* 返回 : 无* 依赖 : 底层读写函数原创 2017-01-12 23:38:06 · 11345 阅读 · 0 评论 -
STM32--GPIO学习
摘自:http://blog.youkuaiyun.com/wangxiaobupt/article/details/18150043八种模式:(1)GPIO_Mode_AIN 模拟输入 //一般用在ADC上(2)GPIO_Mode_IN_FLOATING 浮空输入 //高低电平不确定,一般用在数据传输,读取电平高低(3)GPIO_Mode_IPD 下拉输入 //默认低电平,接转载 2015-06-26 22:28:37 · 653 阅读 · 0 评论 -
如何上手学习一款新的微控制器或处理器
任何一款MCU,其基本原理和功能都是大同小异,所不同的只是其外围功能模块的配置及数量、指令系统等。对于指令系统,虽然形式上看似千差万别,但实际上只是符号的不同,其所代表的含义、所要完成的功能和寻址方式基本上是类似的。因此,对于任何一款MCU,主要应从如下的几个方面来理解和掌握: * MCU的特点:要了解一款MCU,首先需要知道就是其ROM空间、RAM空间、IO口数量、定时器数量和定时方式、所转载 2013-03-31 00:01:19 · 753 阅读 · 0 评论 -
编写Linux下的USB键盘驱动(附源码)
摘自:http://tech.techweb.com.cn/thread-383835-1-1.html 1. 指定USB键盘驱动所需的头文件:1 t! q5 f( V4 ~9 V3 [/ M0 P8 J/ `. d" r6 o) Y #include /*内核头文件,含有内核一些常用函数的原型定义*/0 H( C2 p, Z; q7 D( b% m#inc转载 2012-11-19 12:46:44 · 4900 阅读 · 0 评论 -
基于S3C2440的Linux内核移植和yaffs2文件系统制作--Bootloader的功能
3、Bootloader的功能实际应用中的 Bootloader根据所需功能的不同可以设计得很复杂,除完成基本的初始化系统和调用 Linux 内核等基本任务外,还可以执行很多用户输入的命令,比如设置 Linux 启动参数,给 Flash 分区等;也可以设计得很简单,只完成最基本的功能。但为了能达到启动Linux 内核的目的,所有的 Bootloader都必须具备以下功能:(1)、初始化 R转载 2012-11-18 21:20:15 · 546 阅读 · 0 评论 -
基于S3C2440的Linux内核移植和yaffs2文件系统制作--编译内核
1.3.4、编译内核编译内核需要遵守以下步骤:1、make depmake dep的意思就是说:如果你使用程序A(比如支持特殊设备),而A需用到B(比如B是A的一 个模块/子程序)。而你在做make config的时候将一个设备的驱动 由内核支持改为module,或取消支持,这将可能影响到B的一个参数的设置,需重新编译B,重新编译或连接A....如果程序数量非常多, 你是很难手工完全做转载 2012-11-18 21:38:48 · 523 阅读 · 0 评论 -
S3C2440系统中断
摘自: ++++++++++++++++++++++++++++++++++++++++++http://blog.youkuaiyun.com/mr_raptor/article/details/6556186++++++++++++++++++++++++++++++++++++++++++1.1 S3C2440系统中断CPU和外设构成了计算机系统,CPU和外设之间通过总线进行连接转载 2012-11-18 17:40:52 · 392 阅读 · 0 评论 -
linux超级终端minicom的使用方法
===== 一.Minicom介绍 ===== Linux下的Minicom的功能与Windows下的超级终端功能相似,可以通过串口控制外部的硬件 设备.适于在linux通过超级终端对嵌入式设备行管理.同样也可以使用minicom对外置Modem 进行控制. ===== 二.Minicom的安装 ===== ==== 1.rpm包方式 ==== GTES 1转载 2012-12-02 23:26:08 · 431 阅读 · 0 评论 -
Linux图形界面中客户端、服务器、窗口管理器之间的关系
很多LINUX初学者在学习linux图形方面的知识时会遇到一些概念,如:X、X11、Xfree86、WM、 KDE、GNOME、QT、QT/E、Qtopia、DirectFB、Framebuffer、显卡加速驱动等等。理解它们之间是什么关系,对我们学习来说是非常重要的。写这篇文章的目的,就是想让大家明晰这些概念及它们之间的关系。(部分内容引用网络上的一些描述比较清晰的内容)一、Linux操作系转载 2012-11-16 11:20:49 · 586 阅读 · 0 评论 -
ARM中断学习一/[友善2440test中的中断处理部分]
摘自:http://blog.youkuaiyun.com/canjiangsu/article/details/6162132 《 嵌入式开源网:www.embedos.org ,不可错过的网站,有兴趣的朋友还可以做版主,开源、共享、免费!——博主推荐 》一直在看2440的中断处理部分,不懂的实在太多了,百度到这篇文章,实在有听君一席话,胜养十年猪的感觉啊,下面上文章:中断向量转载 2012-11-13 11:24:05 · 398 阅读 · 0 评论 -
s3c2440对nandflash的操作
摘自:http://blog.youkuaiyun.com/canjiangsu/article/details/6162677 S3C2440内部集成了一个Nand flash控制器。S3C2440的Nand flash控制器包含了如下的特性: l 一个引导启动单元l Nand Flash存储器接口,支持8位或16位的每页大小为256字,512字节,1K字和2K字转载 2012-11-13 11:11:07 · 394 阅读 · 0 评论 -
基于S3C2440的Linux内核移植和yaffs2文件系统制作--启动系统
第三章 启动系统将前面两章生成的内核映像文件和根文件系统映像文件下载到mini2440开发板,查看启动信息。我成功移植启动信息如下:VIVI version 0.1.4 (root@capcross) (gcc version 2.95.3 20010315 (release)) #0.1.4 Mon Oct 27 10:18:15 CST 2008MMU table base add转载 2012-11-18 23:07:31 · 678 阅读 · 0 评论 -
基于S3C2440的Linux内核移植和yaffs2文件系统制作-- 配置Linux内核
1.3.3 配置Linux内核1、 进入Linux-2.6.29.1内核主目录,通过以下命令将2410的默认配置文件写到当前目录下的.config。S3C2410的配置和S3C2440差不多,,在这基础上进行修改。make s3c2410_defconfig 2、 配置内核模块的功能,有几种方式可以进行界面选择:make menuconfig(文本选单的转载 2012-11-18 21:36:42 · 620 阅读 · 0 评论 -
s3c2410 时钟频率
PLLPLL(Phase Locked Loop): 为锁相回路或锁相环,用来统一整合时脉讯号,使内存能正确的存取资料。PLL用于振荡器中的反馈技术。 锁相环是一种反馈电路,其作用是使得电路上的时钟和某一外部时钟的相位同步。PLL通过比较外部信号的相位和由压控晶振(VCXO)的相位来实现同步的,在比较的过程中,锁相环电路会不断根据外部信号的相位来调整本地晶振的时钟相位,直到两个信号的相位转载 2012-12-07 11:27:31 · 2647 阅读 · 1 评论 -
基于S3C2440的Linux内核移植和yaffs2文件系统制作--Linux内核移植
1.3 Linux内核移植1.3.1 移植内核和根文件系统准备工作移植内核前,保证你已经装上了Linux系统,建立好了交叉编译环境,我用的是虚拟机,装的Redhat9.0系统,交叉编译工具用的是友善之臂的arm-linux-gcc-4.3.2。开始移植Linux内核了,下面是我我使用的内核和文件系统,以及所用到的工具及获取方法:1、Linux系统我是在虚拟机上安装的Redhat转载 2012-11-18 21:26:50 · 470 阅读 · 0 评论 -
基于S3C2440的Linux内核移植和yaffs2文件系统制作--制作根文件系统
第二章 制作根文件系统2.1 根文件系统预备知识嵌入式Linux中都需要构建根文件系统,构建根文件系统的规则在FHS(Filesystem Hierarchy Standard)文档中,下面是根文件系统顶层目录。目录内容bin存放所有用户都可以使用的、基本的命令。sbin存放的是基本的系统命令,它们用于启动系统、修复系统等。usr里面存放的是共享、只读的程序转载 2012-11-18 22:59:48 · 504 阅读 · 0 评论 -
基于S3C2440的Linux内核移植和yaffs2文件系统制作--修改Linux源码参数
1.3.2 修改Linux源码中参数1、解压内核源码mkdir /opt/studyarmcd /mnt/hgfs/sharetar –jxvf linux-2.6.29.1.tar.bz2 –C /opt/studyarm2、 进入内核目录,修改makefile,并对内核进行默认配置进行修改 193行,修改 ARCH转载 2012-11-18 21:31:44 · 582 阅读 · 0 评论 -
基于S3C2440的Linux内核移植和yaffs2文件系统制作-- Linux内核入口
1、 Linux内核入口 Linux 非压缩内核的入口位于文件/arch/arm/kernel/head-armv.S 中的stext 段。该段的基地址就是压缩内核解压后的跳转地址。如果系统中加载的内核是非压缩的 Image,那么bootloader将内核从 Flash中拷贝到 RAM 后将直接跳到该地址处,从而启动 Linux 内核。不同体系结构的 Linux 系统的入口文件是不同的,而且因转载 2012-11-18 21:21:46 · 565 阅读 · 0 评论 -
基于S3C2440的Linux内核移植和yaffs2文件系统制作--Bootloader的执行过程
2 、Bootloader的执行过程 不同的处理器上电或复位后执行的第一条指令地址并不相同,对于 ARM 处理器来说,该地址为 0x00000000。对于一般的嵌入式系统,通常把 Flash 等非易失性存储器映射到这个地址处,而 Bootloader就位于该存储器的最前端,所以系统上电或复位后执行的第一段程序便是Bootloader。而因为存储 Bootloader的存储器不同,Bootloa转载 2012-11-18 21:18:30 · 530 阅读 · 0 评论 -
基于S3C2440的Linux内核移植和yaffs2文件系统制作--内核移植
第一章 移植内核1.1 Linux内核基础知识在动手进行Linux内核移植之前,非常有必要对Linux内核进行一定的了解,下面从Linux内核的版本和分类说起。1.1.1 Linux版本Linux内核的版本号可以从源代码的顶层目录下的Makefile中看到,比如2.6.29.1内核的Makefile中:VERSION = 2PATCHLEVEL = 6SUBLEVEL转载 2012-11-18 21:17:06 · 470 阅读 · 0 评论 -
教你如何找到导致程序跑飞的指令
教你如何找到导致程序跑飞的指令摘自:自blog.sina.com.cn/ifreecoding调试嵌入式程序时,你是否遇到过程序跑飞最终导致硬件异常中断的问题?遇到这种问题是否感觉比较难定位?不知道问题出在哪里,没有办法跟踪?尤其是当别人的程序踩了自己的内存,那就只能哭了今天在论坛上看有同学求助这种问题,正好我还算有一点办法,就和大家分享一下。解决办法非常非常简单,本文转载 2017-02-03 23:31:17 · 3890 阅读 · 0 评论