No coprocessor UsageFault

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

No coprocessor UsageFault

643 次查看
bamdadslr
Contributor II

Hi,

I am running a code on a LPC4088 board. In part of this code, when I want to initialize the ABI protocol, the IDE gave a hard fault error. Looking into a suggestion provided here http://chmorgan.blogspot.com/2013/06/debugging-imprecise-bus-access-fault-on.html, I added "*(uint8_t *)0xE000E008 |= (1<<1);" to main(). Now, what I get as the error is NOCP: No coprocessor Usagefault. The processor does not support coprocessor instructions. 

Any ideas on how to solve this is greatly appreciated. 

Note: based on this document https://web.eecs.umich.edu/~prabal/teaching/eecs373-f10/readings/ARMv7-M_ARM.pdf, I tried to monitor CPACR register, this is the value in memory starting from 0xE000ED88: 00F00000 00000000 00000800 00000000 00000000.

0 项奖励
1 回复

636 次查看
xiangjun_rong
NXP TechSupport
NXP TechSupport

Hi,

As you know that the LPC4088 uses Cortex-M4 core, the register ACTLR is located at 0xE000E008 address.

0xE000E008 ACTLR RW Privileged 0x00000000 Auxiliary Control Register

The CPACR is located at address 0xE000ED88.

0xE000ED88 CPACR RW 0x00000000 Coprocessor Access Control Register

The bit 2 in ACTLR register is DISDEFWBUF, which is explained as

"When set to 1, disables write buffer use during default memory map accesses. This causes all
BusFaults to be precise BusFaults but decreases performance because any store to memory must
complete before the processor can execute the next instruction.
Note
This bit only affects write buffers implemented in the Cortex-M4 processor.

"

Because this is ARM peripheral register, I suggest you contact ARM support.

You can download "Cortex-M4 generic user guide" from the link:

https://developer.arm.com/documentation/dui0553/latest/

 hope it can help you

BR

XiangJun Rong