Bare Metal Series - DMA Summary

Publisher:painterLatest update time:2022-03-16 Source: eefocus Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere

After working on DMA for several days, I finally succeeded. It was just a small step, and I need to continue to improve it. Why is it so difficult to configure several DMA registers? I need to think about why. Let me record it first.


Another day has passed, and now I still don’t quite understand some issues. It may be due to the limitation of my knowledge or some knowledge that I am not familiar with. First of all, I started by transferring data from UART to memory, but the problem that has not been solved until now is here, that is, a problem about the physical address of DMA transmission. First of all, due to my unfamiliarity with C language, I became very confused about the definition of addresses in ARM. In another article, I will analyze the definition of #define rUTXH0 (*(volatile unsigned char *)0x50000020). In fact, to do DMA experiments, just allocate a string constant from the memory and then transfer it to the UART send buffer register. However, from the serial port to the memory, the physical address is one aspect. In fact, after allocating a physical address, when debugging with jlink, you can get data in the first transmission, but later you can only see the change in the address and the data no longer changes. The possible reason is that the memory needs to be checked and cleared before reading and writing? I don’t understand. About


A few summary of the serial port: 

1. DMA addresses require continuous physical addresses. Generally, applications allocate linear addresses and virtual addresses, which may be discontinuous. Address mapping is needed here. This is very important. Secondly, distinguish the difference between string constants and global character arrays, and look more at the allocation relationship of memory areas. 2. DMA initialization can have hardware and software requests. The DMA request in 2440 is automatically issued by the hardware, that is, the initialization of DMA is automatically completed by the hardware, and no programming initialization is required. When using an external DMA source, you need to program and initialize DMA yourself. 3. DMA register configuration, 2 types of transfer sizes, unit and burst. 2 types of mode request and handshake, demand and handshake. 2 types of service single service and overall service, single and whole.


Reference address:Bare Metal Series - DMA Summary

Previous article:Bare Metal Series - DMA Work
Next article:Bare metal series——supervivi burning

Latest Microcontroller Articles
Change More Related Popular Components

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号