Помогите разрбраться.
Делаю простой тестовый проект для LPC2478
Код
#include <stdio.h>
#include <LPC24xx.H>
int main (void) {
while (1) {
; /* ... */
}
}
При запуске дебагера выдает ошибку в файле LPC2400.s
*** error 65: access violation at 0xA0033000 : no 'read' permission
при исполнении кода в помеченной (//!!!!) строке
Код
EMC_DYN_RASCAS3_Val EQU 0x00000303
……………………………..
; Dummy read (set SDRAM Mode register)
IF (EMC_DYNCS0_SETUP != 0)
LDR R4, =DYN_MEM0_BASE
LDR R5, =(EMC_DYN_RASCAS0_Val:AND:0x00000300); get CAS Latency
LSR R5, #4 ; set CAS Latency (Bit4..6)
IF ((EMC_DYN_CFG0_Val:AND:0x00004000) != 0)
ORR R5, R5, #0x02 ; set burst length 4 (Bit0..2)
LSL R5, #11
ELSE
ORR R5, R5, #0x03 ; set burst length 8 (Bit0..2)
LSL R5, #12
ENDIF
ADD R4, R4, R5 //!!!!
LDR R4, [R4, #0]
ENDIF
IF (EMC_DYNCS1_SETUP != 0)
С другими МК, например LPC2129, дебагер работает нормально. Правда и Startup у них разный.
Вторая проблема с DMA
Есть код (пример написанный не мной)
Код
#define DMA_SRC 0x7FD00000
#define DMA_DST 0x7FD01000
…………………………………..
volatile BYTE *TXBuffer = (BYTE *)(DMA_SRC);
volatile BYTE *SRXBuffer = (BYTE *)(DMA_DST);
………………………………………….
for ( i = 0; i < BUFSIZE; i++ ) /* clear buffer */
{
TXBuffer[i] = i;
RXBuffer[i] = 0;
}
При присвоении элементам буферов значений возникают ошибки
*** error 65: access violation at 0x7FD00000 : no 'write' permission
*** error 65: access violation at 0x7FD01000 : no 'write' permission
*** error 65: access violation at 0x7FD00001 : no 'write' permission
*** error 65: access violation at 0x7FD01001 : no 'write' permission
………………………….
Дебагер с DMA работать не может?