123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143 |
- /*-------------------------------------------------------------------*/
- /* LPC176x Register Definitions and Cortex-M3 Supplement Definitions */
- /* This file is a non-copyrighted public domain software */
- /*-------------------------------------------------------------------*/
-
- #ifndef __LPC176x
- #define __LPC176x
- #include <stdint.h>
-
- #define USE_SV_SERVICE 0 /* Enable supervisor service for user mode task */
-
-
- /* System Controls */
- #define EXTINT (*(volatile uint32_t*)0x400FC140)
- #define EXTMODE (*(volatile uint32_t*)0x400FC148)
- #define EXTPOLAR (*(volatile uint32_t*)0x400FC14C)
- #define RSID (*(volatile uint32_t*)0x400FC180)
- #define SCS (*(volatile uint32_t*)0x400FC1A0)
-
- /* Clocking and Power Controls */
- #define CLKSRCSEL (*(volatile uint32_t*)0x400FC10C)
- #define PLL0CON (*(volatile uint32_t*)0x400FC080)
- #define PLL0CFG (*(volatile uint32_t*)0x400FC084)
- #define PLL0STAT (*(volatile uint32_t*)0x400FC088)
- #define PLL0FEED (*(volatile uint32_t*)0x400FC08C)
- #define PLL1CON (*(volatile uint32_t*)0x400FC0A0)
- #define PLL1CFG (*(volatile uint32_t*)0x400FC0A4)
- #define PLL1STAT (*(volatile uint32_t*)0x400FC0A8)
- #define PLL1FEED (*(volatile uint32_t*)0x400FC0AC)
- #define CCLKCFG (*(volatile uint32_t*)0x400FC104)
- #define USBCLKCFG (*(volatile uint32_t*)0x400FC108)
- #define PCLKSEL ( (volatile uint32_t*)0x400FC1A8)
- #define PCLKSEL0 (*(volatile uint32_t*)0x400FC1A8)
- #define PCLKSEL1 (*(volatile uint32_t*)0x400FC1AC)
- #define PCON (*(volatile uint32_t*)0x400FC0C0)
- #define PCONP (*(volatile uint32_t*)0x400FC0C4)
- #define CLKOUTCFG (*(volatile uint32_t*)0x400FC1C8)
-
- /* Flash Accelerator */
- #define FLASHCFG (*(volatile uint32_t*)0x400FC000)
-
- /* Pin Configurations */
- #define PINSEL ( (volatile uint32_t*)0x4002C000)
- #define PINSEL0 (*(volatile uint32_t*)0x4002C000)
- #define PINSEL1 (*(volatile uint32_t*)0x4002C004)
- #define PINSEL2 (*(volatile uint32_t*)0x4002C008)
- #define PINSEL3 (*(volatile uint32_t*)0x4002C00C)
- #define PINSEL4 (*(volatile uint32_t*)0x4002C010)
- #define PINSEL7 (*(volatile uint32_t*)0x4002C01C)
- #define PINSEL8 (*(volatile uint32_t*)0x4002C020)
- #define PINSEL9 (*(volatile uint32_t*)0x4002C024)
- #define PINSEL10 (*(volatile uint32_t*)0x4002C028)
- #define PINMODE ( (volatile uint32_t*)0x4002C040)
- #define PINMODE0 (*(volatile uint32_t*)0x4002C040)
- #define PINMODE1 (*(volatile uint32_t*)0x4002C044)
- #define PINMODE2 (*(volatile uint32_t*)0x4002C048)
- #define PINMODE3 (*(volatile uint32_t*)0x4002C04C)
- #define PINMODE4 (*(volatile uint32_t*)0x4002C050)
- #define PINMODE5 (*(volatile uint32_t*)0x4002C054)
- #define PINMODE6 (*(volatile uint32_t*)0x4002C058)
- #define PINMODE7 (*(volatile uint32_t*)0x4002C05C)
- #define PINMODE9 (*(volatile uint32_t*)0x4002C064)
- #define PINMODE_OD ( (volatile uint32_t*)0x4002C068)
- #define PINMODE_OD0 (*(volatile uint32_t*)0x4002C068)
- #define PINMODE_OD1 (*(volatile uint32_t*)0x4002C06C)
- #define PINMODE_OD2 (*(volatile uint32_t*)0x4002C070)
- #define PINMODE_OD3 (*(volatile uint32_t*)0x4002C074)
- #define PINMODE_OD4 (*(volatile uint32_t*)0x4002C078)
- #define I2CPADCFG (*(volatile uint32_t*)0x4002C07C)
-
- /* GPIO */
- #define FIO0DIR (*(volatile uint32_t*)0x2009C000)
- #define FIO0DIRL (*(volatile uint16_t*)0x2009C000)
- #define FIO0DIRH (*(volatile uint16_t*)0x2009C002)
- #define FIO0DIR0 (*(volatile uint8_t*)0x2009C000)
- #define FIO0DIR1 (*(volatile uint8_t*)0x2009C001)
- #define FIO0DIR2 (*(volatile uint8_t*)0x2009C002)
- #define FIO0DIR3 (*(volatile uint8_t*)0x2009C003)
-
- #define FIO1DIR (*(volatile uint32_t*)0x2009C020)
- #define FIO1DIRL (*(volatile uint16_t*)0x2009C020)
- #define FIO1DIRH (*(volatile uint16_t*)0x2009C022)
- #define FIO1DIR0 (*(volatile uint8_t*)0x2009C020)
- #define FIO1DIR1 (*(volatile uint8_t*)0x2009C021)
- #define FIO1DIR2 (*(volatile uint8_t*)0x2009C022)
- #define FIO1DIR3 (*(volatile uint8_t*)0x2009C023)
-
- #define FIO2DIR (*(volatile uint32_t*)0x2009C040)
- #define FIO2DIRL (*(volatile uint16_t*)0x2009C040)
- #define FIO2DIRH (*(volatile uint16_t*)0x2009C042)
- #define FIO2DIR0 (*(volatile uint8_t*)0x2009C040)
- #define FIO2DIR1 (*(volatile uint8_t*)0x2009C041)
- #define FIO2DIR2 (*(volatile uint8_t*)0x2009C042)
- #define FIO2DIR3 (*(volatile uint8_t*)0x2009C043)
-
- #define FIO3DIR (*(volatile uint32_t*)0x2009C060)
- #define FIO3DIRL (*(volatile uint16_t*)0x2009C060)
- #define FIO3DIRH (*(volatile uint16_t*)0x2009C062)
- #define FIO3DIR0 (*(volatile uint8_t*)0x2009C060)
- #define FIO3DIR1 (*(volatile uint8_t*)0x2009C061)
- #define FIO3DIR2 (*(volatile uint8_t*)0x2009C062)
- #define FIO3DIR3 (*(volatile uint8_t*)0x2009C063)
-
- #define FIO4DIR (*(volatile uint32_t*)0x2009C080)
- #define FIO4DIRL (*(volatile uint16_t*)0x2009C080)
- #define FIO4DIRH (*(volatile uint16_t*)0x2009C082)
- #define FIO4DIR0 (*(volatile uint8_t*)0x2009C080)
- #define FIO4DIR1 (*(volatile uint8_t*)0x2009C081)
- #define FIO4DIR2 (*(volatile uint8_t*)0x2009C082)
- #define FIO4DIR3 (*(volatile uint8_t*)0x2009C083)
-
- #define FIO0MASK (*(volatile uint32_t*)0x2009C010)
- #define FIO0MASKL (*(volatile uint16_t*)0x2009C010)
- #define FIO0MASKH (*(volatile uint16_t*)0x2009C012)
- #define FIO0MASK0 (*(volatile uint8_t*)0x2009C010)
- #define FIO0MASK1 (*(volatile uint8_t*)0x2009C011)
- #define FIO0MASK2 (*(volatile uint8_t*)0x2009C012)
- #define FIO0MASK3 (*(volatile uint8_t*)0x2009C013)
-
- #define FIO1MASK (*(volatile uint32_t*)0x2009C030)
- #define FIO1MASKL (*(volatile uint16_t*)0x2009C030)
- #define FIO1MASKH (*(volatile uint16_t*)0x2009C032)
- #define FIO1MASK0 (*(volatile uint8_t*)0x2009C030)
- #define FIO1MASK1 (*(volatile uint8_t*)0x2009C031)
- #define FIO1MASK2 (*(volatile uint8_t*)0x2009C032)
- #define FIO1MASK3 (*(volatile uint8_t*)0x2009C033)
-
- #define FIO2MASK (*(volatile uint32_t*)0x2009C050)
- #define FIO2MASKL (*(volatile uint16_t*)0x2009C050)
- #define FIO2MASKH (*(volatile uint16_t*)0x2009C052)
- #define FIO2MASK0 (*(volatile uint8_t*)0x2009C050)
- #define FIO2MASK1 (*(volatile uint8_t*)0x2009C051)
- #define FIO2MASK2 (*(volatile uint8_t*)0x2009C052)
- #define FIO2MASK3 (*(volatile uint8_t*)0x2009C053)
-
- #define FIO3MASK (*(volatile uint32_t*)0x2009C070)
- #define FIO3MASKL (*(volatile uint16_t*)0x2009C070)
- #define FIO3MASKH (*(volatile uint16_t*)0x2009C072)
- #define FIO3MASK0 (*(volatile uint8_t*)0x2009C070)
- #define FIO3MASK1 (*(volatile uint8_t*)0x2009C071)
- #define FIO3MASK2 (*(volatile uint8_t*)0x2009C072)
- #define FIO3MASK3 (*(volatile uint8_t*)0x2009C073)
-
- #define FIO4MASK (*(volatile uint32_t*)0x2009C090)
- #define FIO4MASKL (*(volatile uint16_t*)0x2009C090)
- #define FIO4MASKH (*(volatile uint16_t*)0x2009C092)
- #define FIO4MASK0 (*(volatile uint8_t*)0x2009C090)
- #define FIO4MASK1 (*(volatile uint8_t*)0x2009C091)
- #define FIO4MASK2 (*(volatile uint8_t*)0x2009C092)
- #define FIO4MASK3 (*(volatile uint8_t*)0x2009C093)
-
- #define FIO0PIN (*(volatile uint32_t*)0x2009C014)
- #define FIO0PINL (*(volatile uint16_t*)0x2009C014)
- #define FIO0PINH (*(volatile uint16_t*)0x2009C016)
- #define FIO0PIN0 (*(volatile uint8_t*)0x2009C014)
- #define FIO0PIN1 (*(volatile uint8_t*)0x2009C015)
- #define FIO0PIN2 (*(volatile uint8_t*)0x2009C016)
- #define FIO0PIN3 (*(volatile uint8_t*)0x2009C017)
-
- #define FIO1PIN (*(volatile uint32_t*)0x2009C034)
- #define FIO1PINL (*(volatile uint16_t*)0x2009C034)
- #define FIO1PINH (*(volatile uint16_t*)0x2009C036)
- #define FIO1PIN0 (*(volatile uint8_t*)0x2009C034)
- #define FIO1PIN1 (*(volatile uint8_t*)0x2009C035)
- #define FIO1PIN2 (*(volatile uint8_t*)0x2009C036)
- #define FIO1PIN3 (*(volatile uint8_t*)0x2009C037)
-
- #define FIO2PIN (*(volatile uint32_t*)0x2009C054)
- #define FIO2PINL (*(volatile uint16_t*)0x2009C054)
- #define FIO2PINH (*(volatile uint16_t*)0x2009C056)
- #define FIO2PIN0 (*(volatile uint8_t*)0x2009C054)
- #define FIO2PIN1 (*(volatile uint8_t*)0x2009C055)
- #define FIO2PIN2 (*(volatile uint8_t*)0x2009C056)
- #define FIO2PIN3 (*(volatile uint8_t*)0x2009C057)
-
- #define FIO3PIN (*(volatile uint32_t*)0x2009C074)
- #define FIO3PINL (*(volatile uint16_t*)0x2009C074)
- #define FIO3PINH (*(volatile uint16_t*)0x2009C076)
- #define FIO3PIN0 (*(volatile uint8_t*)0x2009C074)
- #define FIO3PIN1 (*(volatile uint8_t*)0x2009C075)
- #define FIO3PIN2 (*(volatile uint8_t*)0x2009C076)
- #define FIO3PIN3 (*(volatile uint8_t*)0x2009C077)
-
- #define FIO4PIN (*(volatile uint32_t*)0x2009C094)
- #define FIO4PINL (*(volatile uint16_t*)0x2009C094)
- #define FIO4PINH (*(volatile uint16_t*)0x2009C096)
- #define FIO4PIN0 (*(volatile uint8_t*)0x2009C094)
- #define FIO4PIN1 (*(volatile uint8_t*)0x2009C095)
- #define FIO4PIN2 (*(volatile uint8_t*)0x2009C096)
- #define FIO4PIN3 (*(volatile uint8_t*)0x2009C097)
-
- #define FIO0SET (*(volatile uint32_t*)0x2009C018)
- #define FIO0SETL (*(volatile uint16_t*)0x2009C018)
- #define FIO0SETH (*(volatile uint16_t*)0x2009C01A)
- #define FIO0SET0 (*(volatile uint8_t*)0x2009C018)
- #define FIO0SET1 (*(volatile uint8_t*)0x2009C019)
- #define FIO0SET2 (*(volatile uint8_t*)0x2009C01A)
- #define FIO0SET3 (*(volatile uint8_t*)0x2009C01B)
-
- #define FIO1SET (*(volatile uint32_t*)0x2009C038)
- #define FIO1SETL (*(volatile uint16_t*)0x2009C038)
- #define FIO1SETH (*(volatile uint16_t*)0x2009C03A)
- #define FIO1SET0 (*(volatile uint8_t*)0x2009C038)
- #define FIO1SET1 (*(volatile uint8_t*)0x2009C039)
- #define FIO1SET2 (*(volatile uint8_t*)0x2009C03A)
- #define FIO1SET3 (*(volatile uint8_t*)0x2009C03B)
-
- #define FIO2SET (*(volatile uint32_t*)0x2009C058)
- #define FIO2SETL (*(volatile uint16_t*)0x2009C058)
- #define FIO2SETH (*(volatile uint16_t*)0x2009C05A)
- #define FIO2SET0 (*(volatile uint8_t*)0x2009C058)
- #define FIO2SET1 (*(volatile uint8_t*)0x2009C059)
- #define FIO2SET2 (*(volatile uint8_t*)0x2009C05A)
- #define FIO2SET3 (*(volatile uint8_t*)0x2009C05B)
-
- #define FIO3SET (*(volatile uint32_t*)0x2009C078)
- #define FIO3SETL (*(volatile uint16_t*)0x2009C078)
- #define FIO3SETH (*(volatile uint16_t*)0x2009C07A)
- #define FIO3SET0 (*(volatile uint8_t*)0x2009C078)
- #define FIO3SET1 (*(volatile uint8_t*)0x2009C079)
- #define FIO3SET2 (*(volatile uint8_t*)0x2009C07A)
- #define FIO3SET3 (*(volatile uint8_t*)0x2009C07B)
-
- #define FIO4SET (*(volatile uint32_t*)0x2009C098)
- #define FIO4SETL (*(volatile uint16_t*)0x2009C098)
- #define FIO4SETH (*(volatile uint16_t*)0x2009C09A)
- #define FIO4SET0 (*(volatile uint8_t*)0x2009C098)
- #define FIO4SET1 (*(volatile uint8_t*)0x2009C099)
- #define FIO4SET2 (*(volatile uint8_t*)0x2009C09A)
- #define FIO4SET3 (*(volatile uint8_t*)0x2009C09B)
-
- #define FIO0CLR (*(volatile uint32_t*)0x2009C01C)
- #define FIO0CLRL (*(volatile uint16_t*)0x2009C01C)
- #define FIO0CLRH (*(volatile uint16_t*)0x2009C01E)
- #define FIO0CLR0 (*(volatile uint8_t*)0x2009C01C)
- #define FIO0CLR1 (*(volatile uint8_t*)0x2009C01D)
- #define FIO0CLR2 (*(volatile uint8_t*)0x2009C01E)
- #define FIO0CLR3 (*(volatile uint8_t*)0x2009C01F)
-
- #define FIO1CLR (*(volatile uint32_t*)0x2009C03C)
- #define FIO1CLRL (*(volatile uint16_t*)0x2009C03C)
- #define FIO1CLRH (*(volatile uint16_t*)0x2009C03E)
- #define FIO1CLR0 (*(volatile uint8_t*)0x2009C03C)
- #define FIO1CLR1 (*(volatile uint8_t*)0x2009C03D)
- #define FIO1CLR2 (*(volatile uint8_t*)0x2009C03E)
- #define FIO1CLR3 (*(volatile uint8_t*)0x2009C03F)
-
- #define FIO2CLR (*(volatile uint32_t*)0x2009C05C)
- #define FIO2CLRL (*(volatile uint16_t*)0x2009C05C)
- #define FIO2CLRH (*(volatile uint16_t*)0x2009C05E)
- #define FIO2CLR0 (*(volatile uint8_t*)0x2009C05C)
- #define FIO2CLR1 (*(volatile uint8_t*)0x2009C05D)
- #define FIO2CLR2 (*(volatile uint8_t*)0x2009C05E)
- #define FIO2CLR3 (*(volatile uint8_t*)0x2009C05F)
-
- #define FIO3CLR (*(volatile uint32_t*)0x2009C07C)
- #define FIO3CLRL (*(volatile uint16_t*)0x2009C07C)
- #define FIO3CLRH (*(volatile uint16_t*)0x2009C07E)
- #define FIO3CLR0 (*(volatile uint8_t*)0x2009C07C)
- #define FIO3CLR1 (*(volatile uint8_t*)0x2009C07D)
- #define FIO3CLR2 (*(volatile uint8_t*)0x2009C07E)
- #define FIO3CLR3 (*(volatile uint8_t*)0x2009C07F)
-
- #define FIO4CLR (*(volatile uint32_t*)0x2009C09C)
- #define FIO4CLRL (*(volatile uint16_t*)0x2009C09C)
- #define FIO4CLRH (*(volatile uint16_t*)0x2009C09E)
- #define FIO4CLR0 (*(volatile uint8_t*)0x2009C09C)
- #define FIO4CLR1 (*(volatile uint8_t*)0x2009C09D)
- #define FIO4CLR2 (*(volatile uint8_t*)0x2009C09E)
- #define FIO4CLR3 (*(volatile uint8_t*)0x2009C09F)
-
- #define IOIntStatus (*(volatile uint32_t*)0x40028080)
- #define IO0IntStatR (*(volatile uint32_t*)0x40028084)
- #define IO0IntStatF (*(volatile uint32_t*)0x40028088)
- #define IO0IntClr (*(volatile uint32_t*)0x4002808C)
- #define IO0IntEnR (*(volatile uint32_t*)0x40028090)
- #define IO0IntEnF (*(volatile uint32_t*)0x40028094)
- #define IO2IntStatR (*(volatile uint32_t*)0x400280A4)
- #define IO2IntStatF (*(volatile uint32_t*)0x400280A8)
- #define IO2IntClr (*(volatile uint32_t*)0x400280AC)
- #define IO2IntEnR (*(volatile uint32_t*)0x400280B0)
- #define IO2IntEnF (*(volatile uint32_t*)0x400280B4)
-
- /* Ethernet MAC */
- #define MAC1 (*(volatile uint32_t*)0x50000000)
- #define MAC2 (*(volatile uint32_t*)0x50000004)
- #define IPGT (*(volatile uint32_t*)0x50000008)
- #define IPGR (*(volatile uint32_t*)0x5000000C)
- #define CLRT (*(volatile uint32_t*)0x50000010)
- #define MAXF (*(volatile uint32_t*)0x50000014)
- #define SUPP (*(volatile uint32_t*)0x50000018)
- #define TEST (*(volatile uint32_t*)0x5000001C)
- #define MCFG (*(volatile uint32_t*)0x50000020)
- #define MCMD (*(volatile uint32_t*)0x50000024)
- #define MADR (*(volatile uint32_t*)0x50000028)
- #define MWTD (*(volatile uint32_t*)0x5000002C)
- #define MRDD (*(volatile uint32_t*)0x50000030)
- #define MIND (*(volatile uint32_t*)0x50000034)
- #define SA0 (*(volatile uint32_t*)0x50000040)
- #define SA1 (*(volatile uint32_t*)0x50000044)
- #define SA2 (*(volatile uint32_t*)0x50000048)
- #define Command (*(volatile uint32_t*)0x50000100)
- #define Status (*(volatile uint32_t*)0x50000104)
- #define RxDescriptor (*(volatile uint32_t*)0x50000108)
- #define RxStatus (*(volatile uint32_t*)0x5000010C)
- #define RxDescriptorNumber (*(volatile uint32_t*)0x50000110)
- #define RxProduceIndex (*(volatile uint32_t*)0x50000114)
- #define RxConsumeIndex (*(volatile uint32_t*)0x50000118)
- #define TxDescriptor (*(volatile uint32_t*)0x5000011C)
- #define TxStatus (*(volatile uint32_t*)0x50000120)
- #define TxDescriptorNumber (*(volatile uint32_t*)0x50000124)
- #define TxProduceIndex (*(volatile uint32_t*)0x50000128)
- #define TxConsumeIndex (*(volatile uint32_t*)0x5000012C)
- #define TSV0 (*(volatile uint32_t*)0x50000158)
- #define TSV1 (*(volatile uint32_t*)0x5000015C)
- #define RSV (*(volatile uint32_t*)0x50000160)
- #define FlowControlCounter (*(volatile uint32_t*)0x50000170)
- #define FlowControlStatus (*(volatile uint32_t*)0x50000174)
- #define RxFliterCtrl (*(volatile uint32_t*)0x50000200)
- #define RxFilterWoLStatus (*(volatile uint32_t*)0x50000204)
- #define RxFilterWoLClear (*(volatile uint32_t*)0x50000208)
- #define HashFilterL (*(volatile uint32_t*)0x50000210)
- #define HashFilterH (*(volatile uint32_t*)0x50000214)
- #define IntStatus (*(volatile uint32_t*)0x50000FE0)
- #define IntEnable (*(volatile uint32_t*)0x50000FE4)
- #define IntClear (*(volatile uint32_t*)0x50000FE8)
- #define IntSet (*(volatile uint32_t*)0x50000FEC)
- #define PowerDown (*(volatile uint32_t*)0x50000FF4)
-
- /* USB Device */
- #define USBClkCtrl (*(volatile uint32_t*)0x5000CFF4)
- #define USBClkSt (*(volatile uint32_t*)0x5000CFF8)
- #define USBIntSt (*(volatile uint32_t*)0x400FC1C0)
- #define USBDevIntSt (*(volatile uint32_t*)0x5000C200)
- #define USBDevIntEn (*(volatile uint32_t*)0x5000C204)
- #define USBDevIntClr (*(volatile uint32_t*)0x5000C208)
- #define USBDevIntSet (*(volatile uint32_t*)0x5000C20C)
- #define USBDevIntPri (*(volatile uint32_t*)0x5000C22C)
- #define USBEpIntSt (*(volatile uint32_t*)0x5000C230)
- #define USBEpIntEn (*(volatile uint32_t*)0x5000C234)
- #define USBEpIntClr (*(volatile uint32_t*)0x5000C238)
- #define USBEpIntSet (*(volatile uint32_t*)0x5000C23C)
- #define USBEpIntPri (*(volatile uint32_t*)0x5000C240)
- #define USBReEp (*(volatile uint32_t*)0x5000C244)
- #define USBEpIn (*(volatile uint32_t*)0x5000C248)
- #define USBMaxPSize (*(volatile uint32_t*)0x5000C24C)
- #define USBRxData (*(volatile uint32_t*)0x5000C218)
- #define USBRxPLen (*(volatile uint32_t*)0x5000C220)
- #define USBTxData (*(volatile uint32_t*)0x5000C21C)
- #define USBTxPLen (*(volatile uint32_t*)0x5000C224)
- #define USBCtrl (*(volatile uint32_t*)0x5000C228)
- #define USBCmdCode (*(volatile uint32_t*)0x5000C210)
- #define USBCmdData (*(volatile uint32_t*)0x5000C214)
- #define USBDMARSt (*(volatile uint32_t*)0x5000C250)
- #define USBDMARClr (*(volatile uint32_t*)0x5000C254)
- #define USBDMARSet (*(volatile uint32_t*)0x5000C258)
- #define USBUDCAH (*(volatile uint32_t*)0x5000C280)
- #define USBEpDMASt (*(volatile uint32_t*)0x5000C284)
- #define USBEpDMAEn (*(volatile uint32_t*)0x5000C288)
- #define USBEpDMADis (*(volatile uint32_t*)0x5000C28C)
- #define USBDMAIntSt (*(volatile uint32_t*)0x5000C290)
- #define USBDMAIntEn (*(volatile uint32_t*)0x5000C294)
- #define USBEoTIntSt (*(volatile uint32_t*)0x5000C2A0)
- #define USBEoTIntClr (*(volatile uint32_t*)0x5000C2A4)
- #define USBEoTIntSet (*(volatile uint32_t*)0x5000C2A8)
- #define USBNDDRIntSt (*(volatile uint32_t*)0x5000C2AC)
- #define USBNDDRIntClr (*(volatile uint32_t*)0x5000C2B0)
- #define USBNDDRIntSet (*(volatile uint32_t*)0x5000C2B4)
- #define USBSysErrIntSt (*(volatile uint32_t*)0x5000C2B8)
- #define USBSysErrIntClr (*(volatile uint32_t*)0x5000C2BC)
- #define USBSysErrIntSet (*(volatile uint32_t*)0x5000C2C0)
-
- /* USB OTG */
- #define USBIntSt (*(volatile uint32_t*)0x400FC1C0)
- #define OTGIntSt (*(volatile uint32_t*)0x5000C100)
- #define OTGIntEn (*(volatile uint32_t*)0x5000C104)
- #define OTGIntSet (*(volatile uint32_t*)0x5000C108)
- #define OTGIntClr (*(volatile uint32_t*)0x5000C10C)
- #define OTGStCtrl (*(volatile uint32_t*)0x5000C110)
- #define OTGTmr (*(volatile uint32_t*)0x5000C114)
- #define I2C_RX (*(volatile uint32_t*)0x5000C300)
- #define I2C_TX (*(volatile uint32_t*)0x5000C300)
- #define I2C_STS (*(volatile uint32_t*)0x5000C304)
- #define I2C_CTL (*(volatile uint32_t*)0x5000C308)
- #define I2C_CLKHI (*(volatile uint32_t*)0x5000C30C)
- #define I2C_CLKLO (*(volatile uint32_t*)0x5000C310)
- #define OTGClkCtrl (*(volatile uint32_t*)0x5000CFF4)
- #define OTGClkSt (*(volatile uint32_t*)0x5000CFF8)
-
- /* UART0,UART1,UART2,UART3 */
- #define U0RBR (*(volatile uint32_t*)0x4000C000)
- #define U0THR (*(volatile uint32_t*)0x4000C000)
- #define U0DLL (*(volatile uint32_t*)0x4000C000)
- #define U0DLM (*(volatile uint32_t*)0x4000C004)
- #define U0IER (*(volatile uint32_t*)0x4000C004)
- #define U0IIR (*(volatile uint32_t*)0x4000C008)
- #define U0FCR (*(volatile uint32_t*)0x4000C008)
- #define U0LCR (*(volatile uint32_t*)0x4000C00C)
- #define U0LSR (*(volatile uint32_t*)0x4000C014)
- #define U0SCR (*(volatile uint32_t*)0x4000C01C)
- #define U0ACR (*(volatile uint32_t*)0x4000C020)
- #define U0ICR (*(volatile uint32_t*)0x4000C024)
- #define U0FDR (*(volatile uint32_t*)0x4000C028)
- #define U0TER (*(volatile uint32_t*)0x4000C030)
-
- #define U1RBR (*(volatile uint32_t*)0x40010000)
- #define U1THR (*(volatile uint32_t*)0x40010000)
- #define U1DLL (*(volatile uint32_t*)0x40010000)
- #define U1DLM (*(volatile uint32_t*)0x40010004)
- #define U1IER (*(volatile uint32_t*)0x40010004)
- #define U1IIR (*(volatile uint32_t*)0x40010008)
- #define U1FCR (*(volatile uint32_t*)0x40010008)
- #define U1LCR (*(volatile uint32_t*)0x4001000C)
- #define U1MCR (*(volatile uint32_t*)0x40010010)
- #define U1LSR (*(volatile uint32_t*)0x40010014)
- #define U1MSR (*(volatile uint32_t*)0x40010018)
- #define U1SCR (*(volatile uint32_t*)0x4001001C)
- #define U1ACR (*(volatile uint32_t*)0x40010020)
- #define U1FDR (*(volatile uint32_t*)0x40010028)
- #define U1TER (*(volatile uint32_t*)0x40010030)
- #define U1RS485CTRL (*(volatile uint32_t*)0x4001004C)
- #define U1ADRMATCH (*(volatile uint32_t*)0x40010050)
- #define U1RS485DLY (*(volatile uint32_t*)0x40010054)
-
- #define U2RBR (*(volatile uint32_t*)0x40098000)
- #define U2THR (*(volatile uint32_t*)0x40098000)
- #define U2DLL (*(volatile uint32_t*)0x40098000)
- #define U2DLM (*(volatile uint32_t*)0x40098004)
- #define U2IER (*(volatile uint32_t*)0x40098004)
- #define U2IIR (*(volatile uint32_t*)0x40098008)
- #define U2FCR (*(volatile uint32_t*)0x40098008)
- #define U2LCR (*(volatile uint32_t*)0x4009800C)
- #define U2LSR (*(volatile uint32_t*)0x40098014)
- #define U2SCR (*(volatile uint32_t*)0x4009801C)
- #define U2ACR (*(volatile uint32_t*)0x40098020)
- #define U2ICR (*(volatile uint32_t*)0x40098024)
- #define U2FDR (*(volatile uint32_t*)0x40098028)
- #define U2TER (*(volatile uint32_t*)0x40098030)
-
- #define U3RBR (*(volatile uint32_t*)0x4009C000)
- #define U3THR (*(volatile uint32_t*)0x4009C000)
- #define U3DLL (*(volatile uint32_t*)0x4009C000)
- #define U3DLM (*(volatile uint32_t*)0x4009C004)
- #define U3IER (*(volatile uint32_t*)0x4009C004)
- #define U3IIR (*(volatile uint32_t*)0x4009C008)
- #define U3FCR (*(volatile uint32_t*)0x4009C008)
- #define U3LCR (*(volatile uint32_t*)0x4009C00C)
- #define U3LSR (*(volatile uint32_t*)0x4009C014)
- #define U3SCR (*(volatile uint32_t*)0x4009C01C)
- #define U3ACR (*(volatile uint32_t*)0x4009C020)
- #define U3ICR (*(volatile uint32_t*)0x4009C024)
- #define U3FDR (*(volatile uint32_t*)0x4009C028)
- #define U3TER (*(volatile uint32_t*)0x4009C030)
-
- /* CAN1,CAN2 */
- #define AFMR (*(volatile uint32_t*)0x4003C000)
- #define SFF_sa (*(volatile uint32_t*)0x4003C004)
- #define SFF_GRP_sa (*(volatile uint32_t*)0x4003C008)
- #define EFF_sa (*(volatile uint32_t*)0x4003C00C)
- #define EFF_GRP_sa (*(volatile uint32_t*)0x4003C010)
- #define ENDofTable (*(volatile uint32_t*)0x4003C014)
- #define LUTerrAd (*(volatile uint32_t*)0x4003C018)
- #define LUTerr (*(volatile uint32_t*)0x4003C01C)
-
- #define CANTxSR (*(volatile uint32_t*)0x40040000)
- #define CANRxSR (*(volatile uint32_t*)0x40040004)
- #define CANMSR (*(volatile uint32_t*)0x40040008)
- #define CAN1MOD (*(volatile uint32_t*)0x40044000)
- #define CAN1CMR (*(volatile uint32_t*)0x40044004)
- #define CAN1GSR (*(volatile uint32_t*)0x40044008)
- #define CAN1ICR (*(volatile uint32_t*)0x4004400C)
- #define CAN1IER (*(volatile uint32_t*)0x40044010)
- #define CAN1BTR (*(volatile uint32_t*)0x40044014)
- #define CAN1EWL (*(volatile uint32_t*)0x40044018)
- #define CAN1SR (*(volatile uint32_t*)0x4004401C)
- #define CAN1RFS (*(volatile uint32_t*)0x40044020)
- #define CAN1RID (*(volatile uint32_t*)0x40044024)
- #define CAN1RDA (*(volatile uint32_t*)0x40044028)
- #define CAN1RDB (*(volatile uint32_t*)0x4004402C)
- #define CAN1TFI1 (*(volatile uint32_t*)0x40044030)
- #define CAN1TID1 (*(volatile uint32_t*)0x40044034)
- #define CAN1TDA1 (*(volatile uint32_t*)0x40044038)
- #define CAN1TDB1 (*(volatile uint32_t*)0x4004403C)
- #define CAN1TFI2 (*(volatile uint32_t*)0x40044040)
- #define CAN1TID2 (*(volatile uint32_t*)0x40044044)
- #define CAN1TDA2 (*(volatile uint32_t*)0x40044048)
- #define CAN1TDB2 (*(volatile uint32_t*)0x4004404C)
- #define CAN1TFI3 (*(volatile uint32_t*)0x40044050)
- #define CAN1TID3 (*(volatile uint32_t*)0x40044054)
- #define CAN1TDA3 (*(volatile uint32_t*)0x40044058)
- #define CAN1TDB3 (*(volatile uint32_t*)0x4004405C)
-
- #define CAN2MOD (*(volatile uint32_t*)0x40048000)
- #define CAN2CMR (*(volatile uint32_t*)0x40048004)
- #define CAN2GSR (*(volatile uint32_t*)0x40048008)
- #define CAN2ICR (*(volatile uint32_t*)0x4004800C)
- #define CAN2IER (*(volatile uint32_t*)0x40048010)
- #define CAN2BTR (*(volatile uint32_t*)0x40048014)
- #define CAN2EWL (*(volatile uint32_t*)0x40048018)
- #define CAN2SR (*(volatile uint32_t*)0x4004801C)
- #define CAN2RFS (*(volatile uint32_t*)0x40048020)
- #define CAN2RID (*(volatile uint32_t*)0x40048024)
- #define CAN2RDA (*(volatile uint32_t*)0x40048028)
- #define CAN2RDB (*(volatile uint32_t*)0x4004802C)
- #define CAN2TFI1 (*(volatile uint32_t*)0x40048030)
- #define CAN2TID1 (*(volatile uint32_t*)0x40048034)
- #define CAN2TDA1 (*(volatile uint32_t*)0x40048038)
- #define CAN2TDB1 (*(volatile uint32_t*)0x4004803C)
- #define CAN2TFI2 (*(volatile uint32_t*)0x40048040)
- #define CAN2TID2 (*(volatile uint32_t*)0x40048044)
- #define CAN2TDA2 (*(volatile uint32_t*)0x40048048)
- #define CAN2TDB2 (*(volatile uint32_t*)0x4004804C)
- #define CAN2TFI3 (*(volatile uint32_t*)0x40048050)
- #define CAN2TID3 (*(volatile uint32_t*)0x40048054)
- #define CAN2TDA3 (*(volatile uint32_t*)0x40048058)
- #define CAN2TDB3 (*(volatile uint32_t*)0x4004805C)
-
- /* SPI0 */
- #define S0SPCR (*(volatile uint32_t*)0x40020000)
- #define S0SPSR (*(volatile uint32_t*)0x40020004)
- #define S0SPDR (*(volatile uint32_t*)0x40020008)
- #define S0SPCCR (*(volatile uint32_t*)0x4002000C)
- #define S0SPINT (*(volatile uint32_t*)0x4002001C)
-
- /* SSP0,SSP1 */
- #define SSP0CR0 (*(volatile uint32_t*)0x40088000)
- #define SSP0CR1 (*(volatile uint32_t*)0x40088004)
- #define SSP0DR (*(volatile uint32_t*)0x40088008)
- #define SSP0SR (*(volatile uint32_t*)0x4008800C)
- #define SSP0CPSR (*(volatile uint32_t*)0x40088010)
- #define SSP0IMSC (*(volatile uint32_t*)0x40088014)
- #define SSP0RIS (*(volatile uint32_t*)0x40088018)
- #define SSP0MIS (*(volatile uint32_t*)0x4008801C)
- #define SSP0ICR (*(volatile uint32_t*)0x40088020)
- #define SSP0DMACR (*(volatile uint32_t*)0x40088024)
- #define SSP1CR0 (*(volatile uint32_t*)0x40030000)
- #define SSP1CR1 (*(volatile uint32_t*)0x40030004)
- #define SSP1DR (*(volatile uint32_t*)0x40030008)
- #define SSP1SR (*(volatile uint32_t*)0x4003000C)
- #define SSP1CPSR (*(volatile uint32_t*)0x40030010)
- #define SSP1IMSC (*(volatile uint32_t*)0x40030014)
- #define SSP1RIS (*(volatile uint32_t*)0x40030018)
- #define SSP1MIS (*(volatile uint32_t*)0x4003001C)
- #define SSP1ICR (*(volatile uint32_t*)0x40030020)
- #define SSP1DMACR (*(volatile uint32_t*)0x40030024)
-
- /* I2C0,I2C1,I2C2 */
- #define I2C0CONSET (*(volatile uint32_t*)0x4001C000)
- #define I2C0STAT (*(volatile uint32_t*)0x4001C004)
- #define I2C0DAT (*(volatile uint32_t*)0x4001C008)
- #define I2C0ADR0 (*(volatile uint32_t*)0x4001C00C)
- #define I2C0SCLH (*(volatile uint32_t*)0x4001C010)
- #define I2C0SCLL (*(volatile uint32_t*)0x4001C014)
- #define I2C0CONCLR (*(volatile uint32_t*)0x4001C018)
- #define I2C0MMCTRL (*(volatile uint32_t*)0x4001C01C)
- #define I2C0ADR1 (*(volatile uint32_t*)0x4001C020)
- #define I2C0ADR2 (*(volatile uint32_t*)0x4001C024)
- #define I2C0ADR3 (*(volatile uint32_t*)0x4001C028)
- #define I2C0DATA_BUFFER (*(volatile uint32_t*)0x4001C02C)
- #define I2C0MASK ( (volatile uint32_t*)0x4001C030)
- #define I2C0MASK0 (*(volatile uint32_t*)0x4001C030)
- #define I2C0MASK1 (*(volatile uint32_t*)0x4001C034)
- #define I2C0MASK2 (*(volatile uint32_t*)0x4001C038)
- #define I2C0MASK3 (*(volatile uint32_t*)0x4001C03C)
- #define I2C1CONSET (*(volatile uint32_t*)0x4005C000)
- #define I2C1STAT (*(volatile uint32_t*)0x4005C004)
- #define I2C1DAT (*(volatile uint32_t*)0x4005C008)
- #define I2C1ADR0 (*(volatile uint32_t*)0x4005C00C)
- #define I2C1SCLH (*(volatile uint32_t*)0x4005C010)
- #define I2C1SCLL (*(volatile uint32_t*)0x4005C014)
- #define I2C1CONCLR (*(volatile uint32_t*)0x4005C018)
- #define I2C1MMCTRL (*(volatile uint32_t*)0x4005C01C)
- #define I2C1ADR1 (*(volatile uint32_t*)0x4005C020)
- #define I2C1ADR2 (*(volatile uint32_t*)0x4005C024)
- #define I2C1ADR3 (*(volatile uint32_t*)0x4005C028)
- #define I2C1DATA_BUFFER (*(volatile uint32_t*)0x4005C02C)
- #define I2C1MASK ( (volatile uint32_t*)0x4005C030)
- #define I2C1MASK0 (*(volatile uint32_t*)0x4005C030)
- #define I2C1MASK1 (*(volatile uint32_t*)0x4005C034)
- #define I2C1MASK2 (*(volatile uint32_t*)0x4005C038)
- #define I2C1MASK3 (*(volatile uint32_t*)0x4005C03C)
- #define I2C2CONSET (*(volatile uint32_t*)0x400A0000)
- #define I2C2STAT (*(volatile uint32_t*)0x400A0004)
- #define I2C2DAT (*(volatile uint32_t*)0x400A0008)
- #define I2C2ADR0 (*(volatile uint32_t*)0x400A000C)
- #define I2C2SCLH (*(volatile uint32_t*)0x400A0010)
- #define I2C2SCLL (*(volatile uint32_t*)0x400A0014)
- #define I2C2CONCLR (*(volatile uint32_t*)0x400A0018)
- #define I2C2MMCTRL (*(volatile uint32_t*)0x400A001C)
- #define I2C2ADR1 (*(volatile uint32_t*)0x400A0020)
- #define I2C2ADR2 (*(volatile uint32_t*)0x400A0024)
- #define I2C2ADR3 (*(volatile uint32_t*)0x400A0028)
- #define I2C2DATA_BUFFER (*(volatile uint32_t*)0x400A002C)
- #define I2C2MASK ( (volatile uint32_t*)0x400A0030)
- #define I2C2MASK0 (*(volatile uint32_t*)0x400A0030)
- #define I2C2MASK1 (*(volatile uint32_t*)0x400A0034)
- #define I2C2MASK2 (*(volatile uint32_t*)0x400A0038)
- #define I2C2MASK3 (*(volatile uint32_t*)0x400A003C)
-
- /* I2S */
- #define I2SDAO (*(volatile uint32_t*)0x400A8000)
- #define I2SDAI (*(volatile uint32_t*)0x400A8004)
- #define I2STXFIFO (*(volatile uint32_t*)0x400A8008)
- #define I2SRXFIFO (*(volatile uint32_t*)0x400A800C)
- #define I2SSTATE (*(volatile uint32_t*)0x400A8010)
- #define I2SDMA1 (*(volatile uint32_t*)0x400A8014)
- #define I2SDMA2 (*(volatile uint32_t*)0x400A8018)
- #define I2SIRQ (*(volatile uint32_t*)0x400A801C)
- #define I2STXRATE (*(volatile uint32_t*)0x400A8020)
- #define I2SRXRATE (*(volatile uint32_t*)0x400A8024)
- #define I2STXBITRATE (*(volatile uint32_t*)0x400A8028)
- #define I2SRXBITRATE (*(volatile uint32_t*)0x400A802C)
- #define I2STXMODE (*(volatile uint32_t*)0x400A8030)
- #define I2SRXMODE (*(volatile uint32_t*)0x400A8034)
-
- /* Timer0,Timer1,Timer2,Timer3 */
- #define T0IR (*(volatile uint32_t*)0x40004000)
- #define T0TCR (*(volatile uint32_t*)0x40004004)
- #define T0TC (*(volatile uint32_t*)0x40004008)
- #define T0PR (*(volatile uint32_t*)0x4000400C)
- #define T0PC (*(volatile uint32_t*)0x40004010)
- #define T0MCR (*(volatile uint32_t*)0x40004014)
- #define T0MR ( (volatile uint32_t*)0x40004018)
- #define T0MR0 (*(volatile uint32_t*)0x40004018)
- #define T0MR1 (*(volatile uint32_t*)0x4000401C)
- #define T0MR2 (*(volatile uint32_t*)0x40004020)
- #define T0MR3 (*(volatile uint32_t*)0x40004024)
- #define T0CCR (*(volatile uint32_t*)0x40004028)
- #define T0CR0 (*(volatile uint32_t*)0x4000402C)
- #define T0CR1 (*(volatile uint32_t*)0x40004030)
- #define T0EMR (*(volatile uint32_t*)0x4000403C)
- #define T0CTCR (*(volatile uint32_t*)0x40004070)
-
- #define T1IR (*(volatile uint32_t*)0x40008000)
- #define T1TCR (*(volatile uint32_t*)0x40008004)
- #define T1TC (*(volatile uint32_t*)0x40008008)
- #define T1PR (*(volatile uint32_t*)0x4000800C)
- #define T1PC (*(volatile uint32_t*)0x40008010)
- #define T1MCR (*(volatile uint32_t*)0x40008014)
- #define T1MR ( (volatile uint32_t*)0x40008018)
- #define T1MR0 (*(volatile uint32_t*)0x40008018)
- #define T1MR1 (*(volatile uint32_t*)0x4000801C)
- #define T1MR2 (*(volatile uint32_t*)0x40008020)
- #define T1MR3 (*(volatile uint32_t*)0x40008024)
- #define T1CCR (*(volatile uint32_t*)0x40008028)
- #define T1CR0 (*(volatile uint32_t*)0x4000802C)
- #define T1CR1 (*(volatile uint32_t*)0x40008030)
- #define T1EMR (*(volatile uint32_t*)0x4000803C)
- #define T1CTCR (*(volatile uint32_t*)0x40008070)
-
- #define T2IR (*(volatile uint32_t*)0x40090000)
- #define T2TCR (*(volatile uint32_t*)0x40090004)
- #define T2TC (*(volatile uint32_t*)0x40090008)
- #define T2PR (*(volatile uint32_t*)0x4009000C)
- #define T2PC (*(volatile uint32_t*)0x40090010)
- #define T2MCR (*(volatile uint32_t*)0x40090014)
- #define T2MR ( (volatile uint32_t*)0x40090018)
- #define T2MR0 (*(volatile uint32_t*)0x40090018)
- #define T2MR1 (*(volatile uint32_t*)0x4009001C)
- #define T2MR2 (*(volatile uint32_t*)0x40090020)
- #define T2MR3 (*(volatile uint32_t*)0x40090024)
- #define T2CCR (*(volatile uint32_t*)0x40090028)
- #define T2CR0 (*(volatile uint32_t*)0x4009002C)
- #define T2CR1 (*(volatile uint32_t*)0x40090030)
- #define T2EMR (*(volatile uint32_t*)0x4009003C)
- #define T2CTCR (*(volatile uint32_t*)0x40090070)
-
- #define T3IR (*(volatile uint32_t*)0x40094000)
- #define T3TCR (*(volatile uint32_t*)0x40094004)
- #define T3TC (*(volatile uint32_t*)0x40094008)
- #define T3PR (*(volatile uint32_t*)0x4009400C)
- #define T3PC (*(volatile uint32_t*)0x40094010)
- #define T3MCR (*(volatile uint32_t*)0x40094014)
- #define T3MR ( (volatile uint32_t*)0x40094018)
- #define T3MR0 (*(volatile uint32_t*)0x40094018)
- #define T3MR1 (*(volatile uint32_t*)0x4009401C)
- #define T3MR2 (*(volatile uint32_t*)0x40094020)
- #define T3MR3 (*(volatile uint32_t*)0x40094024)
- #define T3CCR (*(volatile uint32_t*)0x40094028)
- #define T3CR0 (*(volatile uint32_t*)0x4009402C)
- #define T3CR1 (*(volatile uint32_t*)0x40094030)
- #define T3EMR (*(volatile uint32_t*)0x4009403C)
- #define T3CTCR (*(volatile uint32_t*)0x40094070)
-
- /* Repeative Interrupt Timer */
- #define RICOMPVAL (*(volatile uint32_t*)0x400B0000)
- #define RIMASK (*(volatile uint32_t*)0x400B0004)
- #define RICTRL (*(volatile uint32_t*)0x400B0008)
- #define RICOUNTER (*(volatile uint32_t*)0x400B000C)
-
- /* PWM1 */
- #define PWM1IR (*(volatile uint32_t*)0x40018000)
- #define PWM1TCR (*(volatile uint32_t*)0x40018004)
- #define PWM1TC (*(volatile uint32_t*)0x40018008)
- #define PWM1PR (*(volatile uint32_t*)0x4001800C)
- #define PWM1PC (*(volatile uint32_t*)0x40018010)
- #define PWM1MCR (*(volatile uint32_t*)0x40018014)
- #define PWM1MR0 (*(volatile uint32_t*)0x40018018)
- #define PWM1MR1 (*(volatile uint32_t*)0x4001801C)
- #define PWM1MR2 (*(volatile uint32_t*)0x40018020)
- #define PWM1MR3 (*(volatile uint32_t*)0x40018024)
- #define PWM1CCR (*(volatile uint32_t*)0x40018028)
- #define PWM1CR0 (*(volatile uint32_t*)0x4001802C)
- #define PWM1CR1 (*(volatile uint32_t*)0x40018030)
- #define PWM1CR2 (*(volatile uint32_t*)0x40018034)
- #define PWM1CR3 (*(volatile uint32_t*)0x40018038)
- #define PWM1MR4 (*(volatile uint32_t*)0x40018040)
- #define PWM1MR5 (*(volatile uint32_t*)0x40018044)
- #define PWM1MR6 (*(volatile uint32_t*)0x40018048)
- #define PWM1PCR (*(volatile uint32_t*)0x4001804C)
- #define PWM1LER (*(volatile uint32_t*)0x40018050)
- #define PWM1CTCR (*(volatile uint32_t*)0x40018070)
-
- /* Motor Control PWM */
- #define MCCON (*(volatile uint32_t*)0x400B8000)
- #define MCCON_SET (*(volatile uint32_t*)0x400B8004)
- #define MCCON_CLR (*(volatile uint32_t*)0x400B8008)
- #define MCCAPCON (*(volatile uint32_t*)0x400B800C)
- #define MCCAPCON_SET (*(volatile uint32_t*)0x400B8010)
- #define MCCAPCON_CLR (*(volatile uint32_t*)0x400B8014)
- #define MCTC ( (volatile uint32_t*)0x400B8018)
- #define MCTC0 (*(volatile uint32_t*)0x400B8018)
- #define MCTC1 (*(volatile uint32_t*)0x400B801C)
- #define MCTC2 (*(volatile uint32_t*)0x400B8020)
- #define MCLIM ( (volatile uint32_t*)0x400B8024)
- #define MCLIM0 (*(volatile uint32_t*)0x400B8024)
- #define MCLIM1 (*(volatile uint32_t*)0x400B8028)
- #define MCLIM2 (*(volatile uint32_t*)0x400B802C)
- #define MCMAT ( (volatile uint32_t*)0x400B8030)
- #define MCMAT0 (*(volatile uint32_t*)0x400B8030)
- #define MCMAT1 (*(volatile uint32_t*)0x400B8034)
- #define MCMAT2 (*(volatile uint32_t*)0x400B8038)
- #define MCDT (*(volatile uint32_t*)0x400B803C)
- #define MCCP (*(volatile uint32_t*)0x400B8040)
- #define MCCAP ( (volatile uint32_t*)0x400B8044)
- #define MCCAP0 (*(volatile uint32_t*)0x400B8044)
- #define MCCAP1 (*(volatile uint32_t*)0x400B8048)
- #define MCCAP2 (*(volatile uint32_t*)0x400B804C)
- #define MCINTEN (*(volatile uint32_t*)0x400B8050)
- #define MCINTEN_SET (*(volatile uint32_t*)0x400B8054)
- #define MCINTEN_CLR (*(volatile uint32_t*)0x400B8058)
- #define MCCNTCON (*(volatile uint32_t*)0x400B805C)
- #define MCCNTCON_SET (*(volatile uint32_t*)0x400B8060)
- #define MCCNTCON_CLR (*(volatile uint32_t*)0x400B8064)
- #define MCINTF (*(volatile uint32_t*)0x400B8068)
- #define MCINTF_SET (*(volatile uint32_t*)0x400B806C)
- #define MCINTF_CLR (*(volatile uint32_t*)0x400B8070)
- #define MCCAP_CLR (*(volatile uint32_t*)0x400B8074)
-
- /* Quadrature Encoder Interface */
- #define QEICON (*(volatile uint32_t*)0x400BC000)
- #define QEICONF (*(volatile uint32_t*)0x400BC008)
- #define QEISTAT (*(volatile uint32_t*)0x400BC004)
- #define QEIPOS (*(volatile uint32_t*)0x400BC00C)
- #define QEIMAXPOS (*(volatile uint32_t*)0x400BC010)
- #define CMPOS0 (*(volatile uint32_t*)0x400BC014)
- #define CMPOS1 (*(volatile uint32_t*)0x400BC018)
- #define CMPOS2 (*(volatile uint32_t*)0x400BC01C)
- #define INXCNT (*(volatile uint32_t*)0x400BC020)
- #define INXCMP (*(volatile uint32_t*)0x400BC024)
- #define QEILOAD (*(volatile uint32_t*)0x400BC028)
- #define QEITIME (*(volatile uint32_t*)0x400BC02C)
- #define QEIVEL (*(volatile uint32_t*)0x400BC030)
- #define QEICAP (*(volatile uint32_t*)0x400BC034)
- #define VELCOMP (*(volatile uint32_t*)0x400BC038)
- #define FILTER (*(volatile uint32_t*)0x400BC03C)
- #define QEIINTSTAT (*(volatile uint32_t*)0x400BCFE0)
- #define QEISET (*(volatile uint32_t*)0x400BCFEC)
- #define QEICLR (*(volatile uint32_t*)0x400BCFE8)
- #define QEIIE (*(volatile uint32_t*)0x400BCFE4)
- #define QEIIES (*(volatile uint32_t*)0x400BCFDC)
- #define QEIIEC (*(volatile uint32_t*)0x400BCFD8)
-
- /* RTC */
- #define RTC_ILR (*(volatile uint32_t*)0x40024000)
- #define RTC_CCR (*(volatile uint32_t*)0x40024008)
- #define RTC_CIIR (*(volatile uint32_t*)0x4002400C)
- #define RTC_AMR (*(volatile uint32_t*)0x40024010)
- #define RTC_AUX (*(volatile uint32_t*)0x4002405C)
- #define RTC_AUXEN (*(volatile uint32_t*)0x40024058)
- #define RTC_CTIME0 (*(volatile uint32_t*)0x40024014)
- #define RTC_CTIME1 (*(volatile uint32_t*)0x40024018)
- #define RTC_CTIME2 (*(volatile uint32_t*)0x4002401C)
- #define RTC_SEC (*(volatile uint32_t*)0x40024020)
- #define RTC_MIN (*(volatile uint32_t*)0x40024024)
- #define RTC_HOUR (*(volatile uint32_t*)0x40024028)
- #define RTC_DOM (*(volatile uint32_t*)0x4002402C)
- #define RTC_DOW (*(volatile uint32_t*)0x40024030)
- #define RTC_DOY (*(volatile uint32_t*)0x40024034)
- #define RTC_MONTH (*(volatile uint32_t*)0x40024038)
- #define RTC_YEAR (*(volatile uint32_t*)0x4002403C)
- #define RTC_CALIBRATION (*(volatile uint32_t*)0x40024040)
- #define RTC_GPREG ( (volatile uint32_t*)0x40024044)
- #define RTC_GPREG0 (*(volatile uint32_t*)0x40024044)
- #define RTC_GPREG1 (*(volatile uint32_t*)0x40024048)
- #define RTC_GPREG2 (*(volatile uint32_t*)0x4002404C)
- #define RTC_GPREG3 (*(volatile uint32_t*)0x40024050)
- #define RTC_GPREG4 (*(volatile uint32_t*)0x40024054)
- #define RTC_ALSEC (*(volatile uint32_t*)0x40024060)
- #define RTC_ALMIN (*(volatile uint32_t*)0x40024064)
- #define RTC_ALHOUR (*(volatile uint32_t*)0x40024068)
- #define RTC_ALDOM (*(volatile uint32_t*)0x4002406C)
- #define RTC_ALDOW (*(volatile uint32_t*)0x40024070)
- #define RTC_ALDOY (*(volatile uint32_t*)0x40024074)
- #define RTC_ALMON (*(volatile uint32_t*)0x40024078)
- #define RTC_ALYEAR (*(volatile uint32_t*)0x4002407C)
-
- /* WDT */
- #define WDMOD (*(volatile uint32_t*)0x40000000)
- #define WDTC (*(volatile uint32_t*)0x40000004)
- #define WDFEED (*(volatile uint32_t*)0x40000008)
- #define WDTV (*(volatile uint32_t*)0x4000000C)
- #define WDCLKSEL (*(volatile uint32_t*)0x40000010)
-
- /* ADC0 */
- #define AD0CR (*(volatile uint32_t*)0x40034000)
- #define AD0GDR (*(volatile uint32_t*)0x40034004)
- #define AD0INTEN (*(volatile uint32_t*)0x4003400C)
- #define AD0DR ( (volatile uint32_t*)0x40034010)
- #define AD0DR0 (*(volatile uint32_t*)0x40034010)
- #define AD0DR1 (*(volatile uint32_t*)0x40034014)
- #define AD0DR2 (*(volatile uint32_t*)0x40034018)
- #define AD0DR3 (*(volatile uint32_t*)0x4003401C)
- #define AD0DR4 (*(volatile uint32_t*)0x40034020)
- #define AD0DR5 (*(volatile uint32_t*)0x40034024)
- #define AD0DR6 (*(volatile uint32_t*)0x40034028)
- #define AD0DR7 (*(volatile uint32_t*)0x4003402C)
- #define AD0STAT (*(volatile uint32_t*)0x40034030)
- #define AD0TRM (*(volatile uint32_t*)0x40034034)
-
- /* DAC */
- #define DACR (*(volatile uint32_t*)0x4008C000)
- #define DACCTRL (*(volatile uint32_t*)0x4008C004)
- #define DACCNTVAL (*(volatile uint32_t*)0x4008C008)
-
- /* GPDMA */
- #define DMACIntStat (*(volatile uint32_t*)0x50004000)
- #define DMACIntTCStat (*(volatile uint32_t*)0x50004004)
- #define DMACIntTCClear (*(volatile uint32_t*)0x50004008)
- #define DMACIntErrStat (*(volatile uint32_t*)0x5000400C)
- #define DMACIntErrClr (*(volatile uint32_t*)0x50004010)
- #define DMACRawIntTCStat (*(volatile uint32_t*)0x50004014)
- #define DMACRawIntErrStat (*(volatile uint32_t*)0x50004018)
- #define DMACEnbldChns (*(volatile uint32_t*)0x5000401C)
- #define DMACSoftBReq (*(volatile uint32_t*)0x50004020)
- #define DMACSoftSReq (*(volatile uint32_t*)0x50004024)
- #define DMACSoftLBReq (*(volatile uint32_t*)0x50004028)
- #define DMACSoftLSReq (*(volatile uint32_t*)0x5000402C)
- #define DMACConfig (*(volatile uint32_t*)0x50004030)
- #define DMACSync (*(volatile uint32_t*)0x50004034)
- #define DMAREQSEL (*(volatile uint32_t*)0x400FC1C4)
- #define DMACC0SrcAddr (*(volatile uint32_t*)0x50004100)
- #define DMACC0DestAddr (*(volatile uint32_t*)0x50004104)
- #define DMACC0LLI (*(volatile uint32_t*)0x50004108)
- #define DMACC0Control (*(volatile uint32_t*)0x5000410C)
- #define DMACC0Config (*(volatile uint32_t*)0x50004110)
- #define DMACC1SrcAddr (*(volatile uint32_t*)0x50004120)
- #define DMACC1DestAddr (*(volatile uint32_t*)0x50004124)
- #define DMACC1LLI (*(volatile uint32_t*)0x50004128)
- #define DMACC1Control (*(volatile uint32_t*)0x5000412C)
- #define DMACC1Config (*(volatile uint32_t*)0x50004130)
- #define DMACC2SrcAddr (*(volatile uint32_t*)0x50004140)
- #define DMACC2DestAddr (*(volatile uint32_t*)0x50004144)
- #define DMACC2LLI (*(volatile uint32_t*)0x50004148)
- #define DMACC2Control (*(volatile uint32_t*)0x5000414C)
- #define DMACC2Config (*(volatile uint32_t*)0x50004150)
- #define DMACC3SrcAddr (*(volatile uint32_t*)0x50004160)
- #define DMACC3DestAddr (*(volatile uint32_t*)0x50004164)
- #define DMACC3LLI (*(volatile uint32_t*)0x50004168)
- #define DMACC3Control (*(volatile uint32_t*)0x5000416C)
- #define DMACC3Config (*(volatile uint32_t*)0x50004170)
- #define DMACC4SrcAddr (*(volatile uint32_t*)0x50004180)
- #define DMACC4DestAddr (*(volatile uint32_t*)0x50004184)
- #define DMACC4LLI (*(volatile uint32_t*)0x50004188)
- #define DMACC4Control (*(volatile uint32_t*)0x5000418C)
- #define DMACC4Config (*(volatile uint32_t*)0x50004190)
- #define DMACC5SrcAddr (*(volatile uint32_t*)0x500041A0)
- #define DMACC5DestAddr (*(volatile uint32_t*)0x500041A4)
- #define DMACC5LLI (*(volatile uint32_t*)0x500041A8)
- #define DMACC5Control (*(volatile uint32_t*)0x500041AC)
- #define DMACC5Config (*(volatile uint32_t*)0x500041B0)
- #define DMACC6SrcAddr (*(volatile uint32_t*)0x500041C0)
- #define DMACC6DestAddr (*(volatile uint32_t*)0x500041C4)
- #define DMACC6LLI (*(volatile uint32_t*)0x500041C8)
- #define DMACC6Control (*(volatile uint32_t*)0x500041CC)
- #define DMACC6Config (*(volatile uint32_t*)0x500041D0)
- #define DMACC7SrcAddr (*(volatile uint32_t*)0x500041E0)
- #define DMACC7DestAddr (*(volatile uint32_t*)0x500041E4)
- #define DMACC7LLI (*(volatile uint32_t*)0x500041E8)
- #define DMACC7Control (*(volatile uint32_t*)0x500041EC)
- #define DMACC7Config (*(volatile uint32_t*)0x500041F0)
-
-
- /* Cortex-M3 System timer */
- #define SYST_CSR (*(volatile uint32_t*)0xE000E010)
- #define SYST_RVR (*(volatile uint32_t*)0xE000E014)
- #define SYST_CVR (*(volatile uint32_t*)0xE000E018)
- #define SYST_CALIB (*(volatile uint32_t*)0xE000E01C)
-
- /* Cortex-M3 NVIC */
- #define ISER ( (volatile uint32_t*)0xE000E100)
- #define ICER ( (volatile uint32_t*)0xE000E180)
- #define ISPR ( (volatile uint32_t*)0xE000E200)
- #define ICPR ( (volatile uint32_t*)0xE000E280)
- #define IABR ( (volatile uint32_t*)0xE000E300)
- #define IPR ( (volatile uint8_t *)0xE000E400)
- #define STIR (*(volatile uint32_t*)0xE000EF00)
-
- /* Cortex-M3 SCB */
- #define ACTLR (*(volatile uint32_t*)0xE000E008)
- #define CPUID (*(volatile uint32_t*)0xE000ED00)
- #define ICSR (*(volatile uint32_t*)0xE000ED04)
- #define VTOR (*(volatile uint32_t*)0xE000ED08)
- #define AIRCR (*(volatile uint32_t*)0xE000ED0C)
- #define SCR (*(volatile uint32_t*)0xE000ED10)
- #define CCR (*(volatile uint32_t*)0xE000ED14)
- #define SHPR ( (volatile uint8_t *)0xE000ED14)
- #define CFSR (*(volatile uint32_t*)0xE000ED28)
- #define MMSR (*(volatile uint32_t*)0xE000ED28)
- #define BFSR (*(volatile uint32_t*)0xE000ED29)
- #define UFSR (*(volatile uint32_t*)0xE000ED2A)
- #define HFSR (*(volatile uint32_t*)0xE000ED2C)
- #define MMFAR (*(volatile uint32_t*)0xE000ED34)
- #define BFAR (*(volatile uint32_t*)0xE000ED38)
-
-
-
- /*--------------------------------------------------------------*/
- /* Cortex-M3 core/peripheral access macros */
- /*--------------------------------------------------------------*/
-
- /* These are for only privileged mode */
- #define __enable_irq() asm volatile ("CPSIE i\n")
- #define __disable_irq() asm volatile ("CPSID i\n")
- #define __enable_irqn(n) ISER[(n) / 32] = 1 << ((n) % 32)
- #define __disable_irqn(n) ICER[(n) / 32] = 1 << ((n) % 32)
- #define __test_irqn_enabled(n) (ISER[(n) / 32] & (1 << ((n) % 32)))
- #define __set_irqn(n) ISPR[(n) / 32] = 1 << ((n) % 32)
- #define __clear_irqn(n) ICPR[(n) / 32] = 1 << ((n) % 32)
- #define __test_irqn(n) (ICPR[(n) / 32] & (1 << ((n) % 32)))
- #define __test_irqn_active(n) (IABR[n / 32] & (1 << ((n) % 32)))
- #define __set_irqn_priority(n,v) IPR[n] = (v)
- #define __set_faultn_priority(n,v) SHPR[(n) + 16] = (v)
- #define __get_MSP() ({uint32_t __rv; asm ("MRS %0, MSP\n" : "=r" (__rv)); __rv;})
- #define __get_PSP() ({uint32_t __rv; asm ("MRS %0, PSP\n" : "=r" (__rv)); __rv;})
- #define __get_PRIMASK() ({uint32_t __rv; asm ("MRS %0, PRIMASK\n" : "=r" (__rv)); __rv;})
- #define __get_FAULTMASK() ({uint32_t __rv; asm ("MRS %0, FAULTMASK\n" : "=r" (__rv)); __rv;})
- #define __get_BASEPRI() ({uint32_t __rv; asm ("MRS %0, BASEPRI\n" : "=r" (__rv)); __rv;})
- #define __get_CONTROL() ({uint32_t __rv; asm ("MRS %0, CONTROL\n" : "=r" (__rv)); __rv;})
- #define __set_MSP(arg) {uint32_t __v=arg; asm ("MSR MSP, %0\n" :: "r" (__v));}
- #define __set_PSP(arg) {uint32_t __v=arg; asm ("MSR PSP, %0\n" :: "r" (__v));}
- #define __set_PRIMASK(arg) {uint32_t __v=arg; asm ("MSR PRIMASK, %0\n" :: "r" (__v));}
- #define __set_FAULTMASK(arg) {uint32_t __v=arg; asm ("MSR FAULTMASK, %0\n" :: "r" (__v));}
- #define __set_BASEPRI(arg) {uint32_t __v=arg; asm ("MSR BASEPRI, %0\n" :: "r" (__v));}
- #define __set_CONTORL(arg) {uint32_t __v=arg; asm ("MSR CONTROL, %0\nISB\n" :: "r" (__v));}
-
- /* These functions and macros are alternative of above for user mode */
- #if USE_SV_SERVICE
- #define __enable_irq_user() asm volatile ("SVC #0\n") /* CPSIE i */
- #define __disable_irq_user() asm volatile ("SVC #1\n") /* CPSID i */
- #define __enable_irq_user() asm volatile ("SVC #2\n") /* CPSIE f */
- #define __disable_irq_user() asm volatile ("SVC #3\n") /* CPSID f */
- uint32_t __get_scs_reg (volatile uint32_t* reg); /* Read a register in SCS */
- void __set_scs_reg (volatile uint32_t* reg, uint32_t val); /* Write a register in SCS */
- #define __enable_irqn_user(n) __set_scs_reg(&ISER[((n) / 32)], 1 << ((n) % 32))
- #define __disable_irqn_user(n) __set_scs_reg(&ISCR[((n) / 32)], 1 << ((n) % 32))
- #define __test_irqn_enabled_user(n) (__get_scs_reg(&ISCR[(n) / 32]) & (1 << ((n) % 32)))
- #define __set_irqn_user(n) __set_scs_reg(&ISPR[((n) / 32)], 1 << ((n) % 32))
- #define __clear_irqn_user(n) __set_scs_reg(&ICPR[((n) / 32)], 1 << ((n) % 32))
- #define __test_irqn_user(n) (__get_scs_reg(&ICPR[(n) / 32]) & (1 << ((n) % 32)))
- #define __test_active_irqn_user(n) (__get_scs_reg(&IABR[(n) / 32]) & (1 << ((n) % 32)))
- #define __set_irqn_priority_user(n,v) __set_scs_reg(&IPR[n], (v))
- #define __set_faultn_priority_user(n,v) __set_scs_reg(&SHPR[(n) + 16], (v))
- #endif
-
- /* These functions/macros can be used at user/privileged mode */
- #define __REV(arg) ({uint32_t __r, __v=arg; asm ("REV %0,%1\n" : "=r" (__r) : "r" (__v) ); __r;})
- #define __REV16(arg) ({uint32_t __r, __v=arg; asm ("REV16 %0,%1\n" : "=r" (__r) : "r" (__v) ); __r;})
- #define __REVSH(arg) ({uint32_t __r, __v=arg; asm ("REVSH %0,%1\n" : "=r" (__r) : "r" (__v) ); __r;})
- #define __RBIT(arg) ({uint32_t __r, __v=arg; asm ("RBIT %0,%1\n" : "=r" (__r) : "r" (__v) ); __r;})
- #define __LDREXB(p) ({uint8_t __r; asm ("LDREXB %0,[%1]\n" : "=r" (__r) : "r" (p)); __r;})
- #define __LDREXH(p) ({uint16_t __r; asm ("LDREXH %0,[%1]\n" : "=r" (__r) : "r" (p)); __r;})
- #define __LDREXW(p) ({uint32_t __r; asm ("LDREX %0,[%1]\n" : "=r" (__r) : "r" (p)); __r;})
- #define __STREXB(d,p) ({register uint32_t __r asm("r2"); register uint8_t __d asm("r1") = d; register volatile uint8_t *__p asm("r0") = p; asm ("STREXB %0,%2,[%1]\n" : "=r" (__r) : "r" (__p), "r" (__d)); __r;})
- #define __STREXH(d,p) ({register uint32_t __r asm("r2"); register uint16_t __d asm("r1") = d; register volatile uint16_t *__p asm("r0") = p; asm ("STREXH %0,%2,[%1]\n" : "=r" (__r) : "r" (p), "r" (__d)); __r;})
- #define __STREXW(d,p) ({register uint32_t __r asm("r2"); register uint32_t __d asm("r1") = d; register volatile uint32_t *__p asm("r0") = p; asm ("STREX %0,%2,[%1]\n" : "=r" (__r) : "r" (p), "r" (__d)); __r;})
- #define __CLREX() asm volatile ("CLREX\n")
- #define __SEV() asm volatile ("SEV\n")
- #define __WFE() asm volatile ("WFE\n")
- #define __WFI() asm volatile ("WFI\n")
-
- /* LPC176x IRQ number */
- #define MemManage_IRQn (-12)
- #define BusFault_IRQn (-11)
- #define UsageFault_IRQn (-10)
- #define SVC_IRQn (-5)
- #define DebugMon_IRQn (-4)
- #define PendSV_IRQn (-2)
- #define SysTick_IRQn (-1)
- #define WDT_IRQn 0
- #define TIMER0_IRQn 1
- #define TIMER1_IRQn 2
- #define TIMER2_IRQn 3
- #define TIMER3_IRQn 4
- #define UART0_IRQn 5
- #define UART1_IRQn 6
- #define UART2_IRQn 7
- #define UART3_IRQn 8
- #define PWM1_IRQn 9
- #define I2C0_IRQn 10
- #define I2C1_IRQn 11
- #define I2C2_IRQn 12
- #define SPI_IRQn 13
- #define SSP0_IRQn 14
- #define SSP1_IRQn 15
- #define PLL0_IRQn 16
- #define RTC_IRQn 17
- #define EINT0_IRQn 18
- #define EINT1_IRQn 19
- #define EINT2_IRQn 20
- #define EINT3_IRQn 21
- #define ADC_IRQn 22
- #define BOD_IRQn 23
- #define USB_IRQn 24
- #define CAN_IRQn 25
- #define GPDMA_IRQn 26
- #define I2S_IRQn 27
- #define ETHER_IRQn 28
- #define RIT_IRQn 29
- #define MCPWM_IRQn 30
- #define QEI_IRQn 31
- #define PLL1_IRQn 32
- #define USBACT_IRQn 33
- #define CANACT_IRQn 34
-
- /* LPC176x Peripheral Divider */
- #define __set_PCLKSEL(p,v) PCLKSEL[(p) / 16] = (PCLKSEL[(p) / 16] & ~(3 << ((p) * 2 % 32))) | (v << ((p) * 2 % 32))
- #define PCLKDIV_4 0
- #define PCLKDIV_1 1
- #define PCLKDIV_2 2
- #define PCLKDIV_8 3
- #define PCLK_WDT 0
- #define PCLK_TIMER0 1
- #define PCLK_TIMER1 2
- #define PCLK_UART0 3
- #define PCLK_UART1 4
- #define PCLK_PWM1 6
- #define PCLK_I2C0 7
- #define PCLK_SPI 8
- #define PCLK_SSP1 10
- #define PCLK_DAC 11
- #define PCLK_ADC 12
- #define PCLK_CAN1 13
- #define PCLK_CAN2 14
- #define PCLK_ACF 15
- #define PCLK_QEI 16
- #define PCLK_GPIOINT 17
- #define PCLK_PCB 18
- #define PCLK_I2C1 19
- #define PCLK_SSP0 21
- #define PCLK_TIMER2 22
- #define PCLK_TIMER3 23
- #define PCLK_UART2 24
- #define PCLK_UART3 25
- #define PCLK_I2C2 26
- #define PCLK_I2S 27
- #define PCLK_RIT 28
- #define PCLK_SYSCON 29
- #define PCLK_MC 30
-
- /* LPC176x Pin Configuration */
- #define __set_PINSEL(p,b,v) PINSEL[(p) * 2 + (b) / 16] = (PINSEL[(p) * 2 + (b) / 16] & ~(3 << ((b) * 2 % 32))) | (v << ((b) * 2 % 32))
- #define __set_PINMODE(p,b,v) PINMODE[(p) * 2 + (b) / 16] = (PINMODE[(p) * 2 + (b) / 16] & ~(3 << ((b) * 2 % 32))) | (v << ((b) * 2 % 32))
- #define __set_PINOD(p,b,v) PINOD[p] = (PINOD[p] & ~(1 << (b))) | ((v) << (b))
-
- /* LPC176x Power Control */
- #define __set_PCONP(p,v) PCONP = (PCONP & ~(1 << (p))) | (1 << (p))
- #define PCTIM0 1
- #define PCTIM1 2
- #define PCUART0 3
- #define PCUART1 4
- #define PCPWM1 6
- #define PCIIC0 7
- #define PCSPI 8
- #define PCRTC 9
- #define PCSSP1 10
- #define PCADC 12
- #define PCCAN1 13
- #define PCCAN2 14
- #define PCGPIO 15
- #define PCRIT 16
- #define PCMCPWM 17
- #define PCQEI 18
- #define PCI2C1 19
- #define PCSSP0 21
- #define PCTIM2 22
- #define PCTIM3 23
- #define PCUART2 24
- #define PCUART3 25
- #define PCI2C2 26
- #define PCI2S 27
- #define PCGPDMA 29
- #define PCENET 30
- #define PCUSB 31
-
-
- /*--------------------------------------------------------------*/
- /* Misc Macros */
- /*--------------------------------------------------------------*/
-
-
- #define _BV(bit) (1<<(bit))
-
- #define IMPORT_BIN(sect, file, sym) asm (\
- ".section " #sect "\n"\
- ".balign 4\n"\
- ".global " #sym "\n"\
- #sym ":\n"\
- ".incbin \"" file "\"\n"\
- ".global _sizeof_" #sym "\n"\
- ".set _sizeof_" #sym ", . - " #sym "\n"\
- ".balign 4\n"\
- ".section \".text\"\n")
-
- #define IMPORT_BIN_PART(sect, file, ofs, siz, sym) asm (\
- ".section " #sect "\n"\
- ".balign 4\n"\
- ".global " #sym "\n"\
- #sym ":\n"\
- ".incbin \"" file "\"," #ofs "," #siz "\n"\
- ".global _sizeof_" #sym "\n"\
- ".set _sizeof_" #sym ", . - " #sym "\n"\
- ".balign 4\n"\
- ".section \".text\"\n")
-
- /* Jump to secondary application */
- #define JUMP_APP(appvt) asm (\
- "LDR SP, [%0]\n" /* Initialize SP */\
- "LDR PC, [%0, #4]\n" /* Go to reset vector */\
- : : "r" (appvt))
-
-
- #endif /* __LPC176x */
|