안녕하세요.
현재 uart를 컨트롤하기 위해 /dev/mem을 오픈해서 이것을 mmap 한후에
해당 uart가 할당된 메모리 주소와 레지스터들의 오프셋을 통하여 직접적 컨트롤을 하려고 하는데요.
이게 해당 주소에 접근해서 읽는것은 읽히는데 쓰여지질 않습니다.
if((fd=open("/dev/mem", O_RDWR | O_NOCTTY | O_SYNC)) ==-1) FATAL;
varMapUart0 = mmap(0,4096UL, PROT_READ | PROT_WRITE, MAP_SHARED, fd,
EXYNOS5_PA_UART0 & ~(4096UL-1));
이런 형식으로 초기화후에
volatile uint32_t *ulcon_addr = (volatile uint32_t *)((char*)varMapUart0+ULCON0);
*ulcon_addr=0x3;
이런식으로 해당 레지스터에 접근해서 데이터를 수정하려고 하였지만, 수정되지 않았습니다.