나는 (0x1228A432) 특정 메모리 주소에 등록 바이트를 기록 할특정 메모리 주소로 등록 할 바이트를 쓰는 방법은 무엇입니까?
그러나,이 레지스터는 다음과 같은 구조를 가지고 :
Bits | Access | Name | Reset | Description |
[31:8] | Read only | -------- | ------ | Reserved |
[7:0] | Read-write | REG[7:0] | 0xXX | ----------- |
방법없이이 레지스터에 바이트를 쓰고, 말해주십시오 예약 비트를 "만지기"?
EDIT1 : 내 타겟은 Cortex A9입니다. (예를 0xFF로)
EDIT2을 256 비트 값을 사용하여 DDR2 메모리 내장에 나는 성공적으로 읽기/쓰기 수 :
// First stage
static unsigned char *p = 0;
char * argv1="0x60000000";
unsigned long address=strtoul(argv1, 0, 0);
p = (unsigned char *) argv1;
// Second stage
char * argv4="FF";
int value=strtol(argv4,0,16);
// Third stage
int offset = 9;
p[offset]=value;
EDIT3 : 나는 다음과 같은 방법으로 DDR2 메모리와 함께 작동하는 데 사용 내가 발견 다음 정보를 확인하십시오.
모든 레지스터는 32 비트이며 바이트 쓰기를 지원하지 않습니다. 쓰기 작업은 워드 와이드 여야하며 예약 됨으로 표시된 비트는 읽기 - 수정 - 쓰기를 사용하여 으로 보존해야합니다.
이 마이크로 컨트롤러에 대한인가 등, 아마 무시 예약 비트에 쓰기는, 또는 모든 0/1해야 하는가? '((uint8_t *) 0x1228A432) [0] = 42;'충분합니까? –
그것은 선택의 아키텍처에 따라 매우 다릅니다. 바이트 단위 액세스가 허용됩니까? 일부 마이크로 컨트롤러 (예컨대, STM32)는 예를 들어, 선택 비트를 설정/리셋하기위한 추가 수단을 갖는다. PIO 출력 레지스터. 다른 비트는 건드리지 않는다. 우리에게 당신의 목표가 무엇인지 알려주세요 :) –
@ H2CO3 불행히도 이것은 작동하지 않습니다. –