首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
裸机 2410 dma
2024-08-27
[国嵌攻略][059][2440-DMA程序设计]
初始化DMA控制器 1.设置源地址 DISRC(0x4B000000)设置为发送数据的源地址,DISRCC0(0x4B0000004)设置为内存AHB总线,目的地址增长 2.设置目的地址 DIDST0(0x4B00000C)设置为发送数据的目的地址,DIDSTC0设置中断模式为数据减为0,设置串口APH总线,目的地址不增长 3.设置DMA控制寄存器 DCON0(0x4B000010)设置请求源为中断(26-24位),设置DMA请求源为硬件(23位),关闭重载(22位),设置发送数据长度(19-0
ok6410的DMA裸机总结
1.为何使用DMA:为了提高CPU的工作效率,避免多余的等待时间 2.关于DMA控制器:(1)通道数:2440有4个通道,6410有4个DMA控制器(初始化的时候要选择),32个通道.210有两种DMA一种是内存与内存之间,另外则是普通的内存与外设之间.(2)请求源:(3)基本时序 nXDREQ请求生效并经过2CLK周期同步后,nXDACK响应并开始生效,但至少还要经过3CLK的周期延迟,DMA控制器才可获得总线的控制权,并开始数据传输(4)工作模式:•Demond模式:如果DMA完成一次请求后
mini2440裸机试炼之——DMA直接存取 实现Uart(串口)通信
这个仅仅能作为自己初步了解MDA的开门篇 实现功能: 将字符串数据通过DMA0通道传递给UTXH0,然后在终端 显示.传输数据完后.DMA0产生中断,beep声, LED亮. DMA基本知识 计算机系统中各种经常使用的数据输入/输出方法有查询方式(包含无条件及条件传送方式)和中断方式,这些方式适用于CPU与慢速及中速外设之间的数据交换.但当高速外设要与系统内存或者要在系统内存的不同区域之间进行大量数据的高速传送时.就在一定程度上限制了数据传送的速率.直接存储器存取(DMA)就是为解决问题提出的,
【ARM】2410裸机系列-流水灯
开发环境 1.硬件平台:FS2410(s3c2410) 2.主机:Ubuntu 12.04 LTS LED原理图 LED的GPIO的配置 配置GPFCON寄存器,设置GPF4-7为输出 配置GPFDAT,设置LED灯亮与灭 主要步骤 通过设置GPFCON将GPF4-7设置为输出 设置GPFDAT,可以将led灯亮或灭,GPFDAT的相应位置1灯灭,置0灯亮 源代码 NAND flash启动 关狗 设置栈 //start.S .text .global _start _start: #d
【ARM】2410裸机系列-ADC数模转换
开发环境 1.硬件平台:FS2410 2.主机:Ubuntu 12.04 ADC寄存器配置 1.初始化ADC(ADCCON) 设置预分频,预分频因子,选择A/D转换通道,并选择正常模式且启动转换 2.判断转换是否结束(ADCCON[5]) 3.读取转换结果(ADCDATn) 串口的初始化 见<串口通信·FS2410>:http://infohacker.blog.51cto.com/6751239/1223137 源代码 //adc.c #i
【ARM】2410裸机系列-uart串口通信
开发环境 (1)硬件平台:FS2410 (2)主机:Ubuntu 12.04 FS2410串口的原理图 串口UART寄存器配置 配置TXD0与RXD0(GPH2.GPH3) 设置波特率(UBRDIVn) 设置传输格式(ULCONn) 选择时钟源与中断方式(UCONn) 设置FIFO(UFCONn) 设置流控(UMCONn) 接收字符和发送字符(UTRSTATn) 源代码 //uart.c #include "2410addr.h" void putc(char ch) //发送字
【ARM】2410裸机系列-按键查询式控制led
开发环境 硬件平台:FS2410 主机:Ubuntu 12.04 LTS LED灯原理图 按键原理图 按键的接线资源 KSCAN0 -> GPE11 KSCAN1 -> GPG6 KSCAN2 -> GPE13 KSCAN3 -> GPG2 EINT0 -> GPF0 EINT2 -> GPF2 EINT11 -> GPG3 EINT19 -> GPG11 程序主要原理 这里实现对 K1,K2
【ARM】2410裸机系列-中断处理
目的 为了更好地掌握S3C2410中断的原理及中断程序的编写. 内容利用S3C2410的外部中断0和外部中断1实现两个按键功能 原理 本次选择的是外部中断EXTINT0和EXTINT11.中断的产生分别来自按钮SB1202和SB1203,当按钮按下时,EXTINT0(对应管脚GPF0)或EXTINT11(对应管脚GPG3)和地连接,输入低电平,从而向CPU发出中断请求. 当CPU受理后,进入相应的中断服务程序,通过超级终端的主窗口显示当前进入的中断号. 程序 #include "2410addr
S3C2416裸机开发系列十六_sd卡驱动实现
S3C2416裸机开发系列十六 sd卡驱动实现 象棋小子 1048272975 SD卡(Secure Digital Memory Card)具有体积小.容量大.传输数据快.可插拔.安全性好等长处.被广泛应用于便携式设备上.比如作为数码相机的存储卡,作为手机.平板多媒体扩展卡用的TF卡(micro sd).笔者此处就s3c2416 sd卡驱动的实现作一个简单的介绍. 1. sd卡概述 sd卡技术是在MMC卡的基础上发展起来的,其尺寸与MMC卡一样,仅仅是比MMC卡厚了0.7mm,因此sd设
mini2440裸机音乐播放器(非常久曾经的笔记)
[这是好久曾经写的.有点乱,没时间整理.当做记录用的.] 图片粘贴失效.没上传图,想要的直接下载文档吧. 项目目的:通过IIS,触摸屏,LCD模块实现音乐播放器功能(button上一首.下一首.播放.暂停的音频控制功能,并实现播放歌曲时显示对应的歌曲图片,不播放时显示hello music图片) 项目设备:windows7(32位),mini2440.uboot(nandflash).ADS1.2开发环境,jlink v8.耳机: 功能模块LCD.触摸屏.IIS 分别介绍: Main函数中主频设
tiny4412 裸机程序 八、重定位到DRAM及LCD实验【转】
本文转载自:http://blog.csdn.net/eshing/article/details/37407423 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 一.实验原理 上一章已经解释的很清楚了,如何将所要运行的user_bin程序定位到DRAM中,这一章要进行重定位到DRAM后运行LCD程序,实际上一章中BL2中程序可以不用改动,直接重写我们的USER目录下的程序即可,将USER目录下的LED灯闪烁程序用LCD程序替换就行,最后编译出的程序名字也叫us
Xilinx DMA的几种方式与架构
DMA是direct memory access,在FPGA系统中,常用的几种DMA需求: 1. 在PL内部无PS(CPU这里统一称为PS)持续干预搬移数据,常见的接口形态为AXIS与AXI,AXI与AXI: 2. 从PL与PS之间搬移数据,对于ZYNQ就比较好理解,属于单个芯片内部接口,对于PCIe等其它接口,会稍微复杂一些,属于多个芯片之间的接口: 探索DMA 方式的目的: 1. 了解芯片内部数据搬移的方法,DMA的常用接口.实现方式: 2. 了解芯片之间的数据搬移方法,DMA常用接口.实现
S32K148_CAN驱动(裸机开发)
hello,大家好.今天我又来啦,今天记录一下S32K148-CAN裸机驱动编写,有错误地方欢迎大家指正. CAN的发送接收在S32K148中主要有三种方式,一种是邮箱机制(mailbox),一种FIFO方式,还有一种DMA方式.邮箱方式较为简单,也比较好理解.我的想法是先搞懂一种实现方式,再去满满研究其他方法. 邮箱机制主要涉及到一下寄存器: 还有一个RAMn[n]寄存器. 具体每个寄存器的功能数据手册有详细介绍,我就不逐个叙述了.直接根据我的demo程序来作简要介绍. CAN的初始化主要包括
STM32基于HAL库通过DMA读写SDIO
通过STM32CUBEMX生成DMA读写sdio的工程,再读写过程中总会卡死在DMA中断等待读写完成的while中,最终发现while等待的标志在SDIO的中断里置位的,而SDIO中断优先级如果小于或等于DMA中断优先级,则SDIO中断永远不能抢占DMA中断,DMA处于持续等待中,解决办法由两种,一种是直接提高SDIO中断优先级到比DMA中断优先级高,第二种是直接在HAL库中卡住的中断等待函数中注释掉while等待. 另外还有一点就是在SDIO数据读写的时候需要注意的两点,一个是读写数据最好四字
z-stack协议uart分析(DMA)
1.从ZMain里面的main函数开始分析 2.进入int main( void ); HalDriverInit(); //硬件相关初始化,有DMA初始化和UART初始化 3.进入HalDriverInit(); /* DMA */#if (defined HAL_DMA) && (HAL_DMA == TRUE) // Must be called before the init call to any module that uses DMA. HalDmaInit();#
STM32之DMA+ADC
借用小甲鱼的经典:各位互联网的广大网友们.大家早上中午晚上好..(打下小广告,因为小甲鱼的视频真的很不错).每次看小甲鱼的视频自学都是比较轻松愉快的..我在想,如果小甲鱼出STM32的视频,我会一集不漏的听的.哈.好了..学习到了STM32的DMA模块..琢磨了一下中文参考手册,官方是这样描述的: 直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输.无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操作. 是的,无需CPU干预,可以想
STM32F103之DMA
一.背景: 需要使用STM32的DAC,例程代码中用了DMA,对DMA之前没有实际操作过,也很早就想知道DMA到底是什么,因此,看了一下午手册,代码和网上的资料,便有了此篇文章,做个记录. 二.正文: DMA(Direct Memory Access),直接翻译为"直接存储器存取",数据手册对其定义为:提供在"外设和存储器之间"或者"存储器和存储器之间"的高速数据传输,无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操
ASM:《X86汇编语言-从实模式到保护模式》越计卷:实模式下对DMA和Sound Blaster声卡的控制
说实话越计卷作者用了16页(我还是删过的),来讲怎么控制声卡,其实真正归纳起来就那么几点. ★PART1:直接存储访问 1. 总线控制设备(bus master) 在硬件技术不发达的早期,处理器是最重要的总线主控制设备,它有权决定谁参与总线数据传输.考虑代码片断:mov [0x2000],dx,在执行这条指令时,处理器不但发出地址信号,也发出控制信号,控制信号用来表明该地址是发给内存的,还是发给外部设备的.所有设备都有译码电路,这些译码电路的输入就是地址和控制信号.以上指令执行的时候,内存的译码
基于KEIL4开发ARM9(S3C2440)的裸机程序
本文主要介绍如何使用Keil4开发ARM9(S3C2440)裸机程序. 说明: 一.平台: 操作系统:Windows XP系统 KEIL版本:4.73 开发板:ARM9(S3C2440) 二.建立工程: 1.新建工程,选择S3C2440A处理器: 2.对工程进行设置 1)设置RAM.ROM地址: RAM1: Start:0x30000000 Size:0x200000 ROM1: Start:0x30200000 Size:0x200000 2)生成Hex文件 3)设置生成.0 .bin .
【SPI】Polling Interrupt DMA
三種將資料在I/O間傳送的方法有 1. Polling2. Interrupt-driven I/O3. DMA(Direct Memory Access) Polling:最簡單的方式讓I/O device與CPU溝通.I/O device只要將information放進status register,CPU會周期性的檢查並取得information來得知需要服務的device. Interrupt-driven I/O:利用interrupt的機制,當一個I/O device需要服務時,會發
关于DMA和它的仇家
[基础知识]什么叫做DMA?DMA=Direct Memory Access.这是一种通过硬件实现的数据传输机制.简单的说,就是不在CPU的参与下完成数据的传输.[/基础知识]不太明白?我举个简单的例子:比如有个数组a,我希望把这个数组中的内容传输到另一个数组b中.我们假设这两个数组都是一样大.比如int a[10000];int b[10000];.那么我可以这样做:[code=c]for(int x=0;x<sizeof(a)/sizeof(int);x++){ b[x]=a[x];}
热门专题
maven 如何一起讲依赖一起打包
Unity鼠标点击获得collider
circos图 透明度
centos mysql数据备份
mysql集群搭建几种方式
node_exporter开机启动
laravel路由找不到
ubuntu qt 配置ffmpeg
jstree 重新生成
vue selection-change和row-click
sybase数据库显示中文
springboot mysql 连接超时设置
命令未正确结束insert into
微信小程序前端开发踩坑——引入weui组件库
cron表达式 和linux crontab
linux c 获取内存使用情况
win7没有speechlib怎么办
idea连接spark
ios uibutton 一行代码设置上下布局
linux smb es文件浏览器连不上