S3C2440裸板遭遇****** Error: Unable to halt ARM core问题,求解

2024-05-13

1. S3C2440裸板遭遇****** Error: Unable to halt ARM core问题,求解

1.检查复位电路工作是否正常,上电时用示波器检查复位信号是否正常(低到高,大概几百毫秒)
2.2440工作电压是否正常(3.3v和1.25v)
3.检查OM0:OM1是不是悬空了,应该连接到固定电平的(NAND或者NOR启动)

S3C2440裸板遭遇****** Error: Unable to halt ARM core问题,求解

2. 2440开发板可能的硬件故障有哪些??可能的软件故障有哪些?故障处理的要求??急!!

还是建立一个适合自己的工具链。

H-JTAG软件可以通过JLINK将编好的程序烧到开发板。

3. 关于ARMs3c2440的问题。高手帮忙。全部分数给你

#include 
 #include 
 unsigned char com_in_buf[1];
 void port_init(void)
{PORTA=0xff;
DDRA=0xff;
PORTB=0x00;
DDRB=0x00;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0x00;
}
 void uart0_init(void)
{UCSRB=0x00;
 UCSRA=0x00;
 UCSRC=BTT(URSEL)|0x06;
 UBRRL=0x33;
 UBRRH=0x00;
 UCSRB=0x98;
  }
void send_data(unsigned char back)
{while(!(USSRA&(1<<UDRE)));
 UDR=BAK;
 }
#progma interrupt_handler uart0_rx_isr;
void uart0_rx_isr(void)
{com_in_buf[0]=UDR;
 send_dat(com_in_buf[0]);
  }
void init_devices(void)
{port_init();
 uart0_init();
MCUCR=0x00;
CICR=0x00;
TIMSK=0x00;
SEI();
}
void main(void)
 {char j;
 init_devices();
 while(1)
{
for(j=0;j<100;j++);
 
}
 
}

关于ARMs3c2440的问题。高手帮忙。全部分数给你

4. mini2440开发板裸机启动代码addr2440.s,人才请进! 部分代码如下,我不太懂,求详细解释,采纳后给高分!

汇编我懂一些,帮你解释一下吧,(一行一行地来,以分号结尾):

读取BWSCON寄存器的地址到r0;
取BWSCON寄存器的值;
判断BWSCON寄存器值的bit1 和bit2 是不是都为零(把r0与6相与,并把结果存入r0,影响标志位);
如果都为零跳转至copy_proc_beg;
把ResetEntry值与PC值相加并把相加结果存入r0;
判断r0是否为零;
若为零则跳转至copy_proc_beg;

5. 请问那个JLINK "Unable to Halt Arm Core"的问题是怎么解决呢?

There are several reasons why the CPU core can not be halted.
Either the memory wait signal of the core is still enabled or CPU disables the clock (wrong PLL clock settings/CPU enters power-save mode).
Therefore the core cannot communicate via JTAG.
The only way to gain control of the core via JTAG is to reset it and halt it immediately.
BTW: Which STR7xx are you using?
Could you please do the following:
Start the J-Link commander (JLink.exe)
Set a very high JTAG-speed by typing "speed [speed in kHz], for example "speed 8000" and press enter. If you are using a STR75x core - a TDMI-S core, this may not work.
Now type "rx 0" - This will reset the core as quickly as possible. The higher the speed the earlier the core is stopped.
You should see:
Reset delay: 0 ms
Reset type NORMAL: Using RESET pin, halting CPU after Reset
Info: Resetting target using RESET pin
The core is halted after reset. Type "regs" to see the CPU registers:
PC: (R15) = 00000000, CPSR = 000000D3 (SVC mode, ARM FIQ dis. IRQ dis.)
R0 = A0000054, R1 = 00008040, R2 = 00000000, R3 = 20000004
R4 = 000000E1, R5 = 000000C7, R6 = 0000004D, R7 = 000000BD
USR: R8 =00000000, R9 =00000000, R10=00000001, R11 =00000001, R12 =00000099
R13=200007FC, R14=000000C7
FIQ: R8 =00000000, R9 =00000000, R10=00000000, R11 =00000000, R12 =00000000
R13=04000000, R14=00000000, SPSR=C00000FF
SVC: R13=00000000, R14=000000F4, SPSR=000000FF
ABT: R13=00000000, R14=00000000, SPSR=D000005F
IRQ: R13=20000900, R14=00000000, SPSR=F00000F7
UND: R13=00000000, R14=00000000, SPSR=D000007A
If you can see the registers' contents, the next step will be to erase the contents of the flash. Use J-Flash and set the following settings:
JTAG\JTAG speed before/after init to 8000kHz (or the value you tried with J-Link commander)
CPU\Init sequence: Action type: Reset, Type: 0, Delay: 0ms
Now connect to the target and select "Erase chip" to erase the flash contents.

请问那个JLINK "Unable to Halt Arm Core"的问题是怎么解决呢?

最新文章
热门文章
推荐阅读