资源描述:
《csl学习笔记--第二章 怎么应用csl》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第二章怎么应用CSL2.1概述外设可以通过CSL声明/初始化目标来进行配置,同时在你的C源代码中调用CSL函数。2.2应用CSL此部分提供了一个实例来应用CSL的APIs,利用CSL可以有两种方式对外设编程:1.基于寄存器配置(PER_config):通过设置存储器映像寄存器中的全部变量来配置外设,相对于功能参数配置,基于寄存器配置需要很少的周期和代码长度,但不会抽象。2.功能参数配置(PER_setup):通过参数的设置配置外设。相比于基于寄存器的配置,功能参数配置需要更多的周期和代码的长度,但是更加抽象。下面这个例子是基于寄存器配置说明了用
2、CSL初始化DMA通道0并把0x3000地址上的数据复制到0x2000。源地址:2000h目的地址:3000h传送长度:16个16位单字节2.2.1应用DMA_config()函数以下的实例和步骤是应用DMA_config()函数来初始化寄存器,本例用于C5509器件。1.加载csl.h和含有dma外设的.不同的头文件在表1.1列出。#include#include//Example-specificinitialization#defineN16//blocksizetotransfe
3、r#pragmaDATA_SECTION(src,”table1”)/*scrdatatableaddress*/Uint16src[N]={0xBEEFu,0xBEEFu,0xBEEFu,0xBEEFu,0xBEEFu,0xBEEFu,0xBEEFu,0xBEEFu,0xBEEFu,0xBEEFu,0xBEEFu,0xBEEFu,0xBEEFu,0xBEEFu,0xBEEFu,0xBEEFu};#pragmaDATA_SECTION(dst,”table2”)/*dstdatatableaddress*/Uint16dst[N];2.定义和初
4、始化DMA通道配置结构体。DMA_Configmyconfig={/*DMAconfigurationstructure*/DMA_DMACSDP_RMK(DMA_DMACSDP_DSTBEN_NOBURST,/*Destinationburst:−DMA_DMACSDP_DSTBEN_NOBURSTDMA_DMACSDP_DSTBEN_BURST4*/DMA_DMACSDP_DSTPACK_OFF,/*Destinationpacking:−DMA_DMACSDP_DSTPACK_ONDMA_DMACSDP_DSTPACK_OFF*/DMA_
5、DMACSDP_DST_SARAM,/*Destinationselection:−DMA_DMACSDP_DST_SARAMDMA_DMACSDP_DST_DARAMDMA_DMACSDP_DST_EMIFDMA_DMACSDP_DST_PERIPH*/DMA_DMACSDP_SRCBEN_NOBURST,/*Sourceburst:−DMA_DMACSDP_SRCBEN_NOBURSTDMA_DMACSDP_SRCBEN_BURST4*/DMA_DMACSDP_SRCPACK_OFF,/*Sourcepacking:−DMA_DMACSDP
6、_SRCPACK_ONDMA_DMACSDP_SRCPACK_OFF*/DMA_DMACSDP_SRC_SARAM,/*Sourceselection:−DMA_DMACSDP_SRC_SARAMDMA_DMACSDP_SRC_DARAMDMA_DMACSDP_SRC_EMIFDMA_DMACSDP_SRC_PERIPH*/DMA_DMACSDP_DATATYPE_16BIT/*Datatype:−DMA_DMACSDP_DATATYPE_8BITDMA_DMACSDP_DATATYPE_16BITDMA_DMACSDP_DATATYPE_32
7、BIT*/)/*DMACSDP*/DMA_DMACCR_RMK(DMA_DMACCR_DSTAMODE_POSTINC,/*Destinationaddressmode:−DMA_DMACCR_DSTAMODE_CONSTDMA_DMACCR_DSTAMODE_POSTINCDMA_DMACCR_DSTAMODE_SGLINDXDMA_DMACCR_DSTAMODE_DBLINDX*/DMA_DMACCR_SRCAMODE_POSTINC,/*Sourceaddressmode:−DMA_DMACCR_SRCAMODE_CONSTDMA_DMA
8、CCR_SRCAMODE_POSTINCDMA_DMACCR_SRCAMODE_SGLINDXDMA_DMACCR_SRCAMODE_DBLINDX*