RVDS4.0上开发cortex A8 NEON程序

用RVDS4.0集成开发环境新建一个target为cortex A8 NEON的工程,即便是hellowolrd,也无法正常运行,

然而自己写makefile调用amrcc的方式就可以。在水木等地咨询,虽然回复的网友众多,其中不乏一些高手,但是问题总是解决不了。

最后还是arm的技术支持技高一筹,给了下面的代码,并设置程序入口点为init_cpu,问题解决

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0472a/CHDFDADC.html

#ifdef __TARGET_ARCH_7_A
__asm void init_cpu()
{
    // Set up CPU state
    MRC p15,0,r4,c1,c0,0
    ORR r4,r4,#0x00400000   // enable unaligned mode (U=1)
    BIC r4,r4,#0x00000002   // disable alignment faults (A=0)
    // MMU not enabled: no page tables
    MCR p15,0,r4,c1,c0,0
#ifdef __BIG_ENDIAN
    SETEND BE
#endif
    MRC p15,0,r4,c1,c0,2    // Enable VFP access in the CAR -
    ORR r4,r4,#0x00f00000   // must be done before any VFP instructions
    MCR p15,0,r4,c1,c0,2
    MOV r4,#0x40000000      // Set EN bit in FPEXC
    MSR FPEXC,r4
    IMPORT __main
    B __main
}
#endif

posted @ 2010-08-30 22:38  c6000  阅读(1632)  评论(0编辑  收藏  举报