对arm进行从语言开发时 怎么知道C语言中对寄存器的定义,头文件中有么,去哪里找s3c2410a头文件
初学arm请高手指教
------解决方案--------------------
我认为网上应该很多,要不结合datasheet自己定义?
------解决方案--------------------
随便在网上找个例程里就有
如果不闲麻烦的话,也可以自己写,呵呵
------解决方案--------------------
去UBOOT,VIVI里有现成的,网上一搜一大把!
------解决方案--------------------
CPU的寄存器不方便在C里面访问,外围的寄存器可以很方便的用C访问.
------解决方案--------------------
通常在.h和.inc的头文件里边定义。
------解决方案--------------------
可以看一下别人的代码,比如网上的一些BOOTLOADER。
------解决方案--------------------
// Memory control
#define rBWSCON (*(volatile unsigned *)0x48000000) //Bus width & wait status
#define rBANKCON0 (*(volatile unsigned *)0x48000004) //Boot ROM control
#define rBANKCON1 (*(volatile unsigned *)0x48000008) //BANK1 control
#define rBANKCON2 (*(volatile unsigned *)0x4800000c) //BANK2 cControl
#define rBANKCON3 (*(volatile unsigned *)0x48000010) //BANK3 control
#define rBANKCON4 (*(volatile unsigned *)0x48000014) //BANK4 control
#define rBANKCON5 (*(volatile unsigned *)0x48000018) //BANK5 control
#define rBANKCON6 (*(volatile unsigned *)0x4800001c) //BANK6 control
#define rBANKCON7 (*(volatile unsigned *)0x48000020) //BANK7 control
#define rREFRESH (*(volatile unsigned *)0x48000024) //DRAM/SDRAM refresh
#define rBANKSIZE (*(volatile unsigned *)0x48000028) //Flexible Bank Size
#define rMRSRB6 (*(volatile unsigned *)0x4800002c) //Mode register set for SDRAM
#define rMRSRB7 (*(volatile unsigned *)0x48000030) //Mode register set for SDRAM
// USB Host
// Control and Status group
#define rHcRevision (*(volatile unsigned *)0x49000000)
#define rHcControl (*(volatile unsigned *)0x49000004)
#define rHcCommonStatus (*(volatile unsigned *)0x49000008)
#define rHcInterruptStatus (*(volatile unsigned *)0x4900000c)
#define rHcInterruptEnable (*(volatile unsigned *)0x49000010)
#define rHcInterruptDisable (*(volatile unsigned *)0x49000014)
// Memory pointer group
#define rHcHCCA (*(volatile unsigned *)0x49000018)
#define rHcPeriodCuttentED (*(volatile unsigned *)0x4900001c)
#define rHcControlHeadED (*(volatile unsigned *)0x49000020)
#define rHcControlCurrentED (*(volatile unsigned *)0x49000024)
#define rHcBulkHeadED (*(volatile unsigned *)0x49000028)
#define rHcBulkCurrentED (*(volatile unsigned *)0x4900002c)
#define rHcDoneHead (*(volatile unsigned *)0x49000030)
// Frame counter group
#define rHcRmInterval (*(volatile unsigned *)0x49000034)