저는 zynq 장치를 사용하여 독립 실행 형 프로그램 (OS없이)에서 DRAM의 데이터를 ARM의 주변 장치로 전송하려고합니다. 예제 코드에서이 코드는 트랜잭션의 소스 주소와 대상 주소를 선언하는 코드입니다.임베디드 암 프로세서의 특정 물리적 메모리에서 메모리 조각을 어떻게 할당합니까?
volatile static u8 SrcBuffer[BUFFER_BYTESIZE] __attribute__ ((aligned (64)));
volatile static u8 DestBuffer[BUFFER_BYTESIZE] __attribute__ ((aligned (64)));
OS가 없으므로 주소의 가치는 무엇입니까? 어떻게 변경할 수 있습니까? 이미로 다른 물건이있을 것이다 링커 파일에서
__attribute__ ((section ("your_section")))
(:
RAM의 특정 영역을 특별한 용도로 사용하려면 예약하기 위해 링커 스크립트를 설정하는 것이 좋습니다 그 지역은 다른 용도로 사용되지 않습니다. 그런 다음 간단히 메모리 시작 포인터를 사용하십시오. –
예를 들어 DMA를 사용 했습니까? – Lundin
예, DMA를 사용합니다. srcBuffer 및 DestBuffer는 DMA 트랜잭션을위한 것입니다. –