12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124 |
- /*!
- * @file apm32f10x.h
- *
- * @brief CMSIS Cortex-M3 Device Peripheral Access Layer Header File.
- *
- * @details This file contains all the peripheral register's definitions, bits definitions and memory mapping
- *
- * @version V1.0.4
- *
- * @date 2022-12-01
- *
- * @attention
- *
- * Copyright (C) 2020-2022 Geehy Semiconductor
- *
- * You may not use this file except in compliance with the
- * GEEHY COPYRIGHT NOTICE (GEEHY SOFTWARE PACKAGE LICENSE).
- *
- * The program is only for reference, which is distributed in the hope
- * that it will be useful and instructional for customers to develop
- * their software. Unless required by applicable law or agreed to in
- * writing, the program is distributed on an "AS IS" BASIS, WITHOUT
- * ANY WARRANTY OR CONDITIONS OF ANY KIND, either express or implied.
- * See the GEEHY SOFTWARE PACKAGE LICENSE for the governing permissions
- * and limitations under the License.
- */
- /* Define to prevent recursive inclusion */
- #ifndef __APM32F10X_H
- #define __APM32F10X_H
- #ifdef __cplusplus
- extern "C" {
- #endif
- /*!
- * APM32F10X_LD: APM32 Low density devices, the Flash memory density ranges between 16 and 32 Kbytes.
- * APM32F10X_MD: APM32 Medium density devices, the Flash memory density ranges between 64 and 128 Kbytes.
- * APM32F10X_HD: APM32 High density devices, the Flash memory density ranges between 256 and 512 Kbytes.
- * APM32F10X_CL: APM32 Connectivity line devices, such as APM32F105xx and APM32F107xx serial devices.
- */
- #if !defined (APM32F10X_LD) && !defined (APM32F10X_MD) && !defined (APM32F10X_HD) && !defined (APM32F10X_CL)
- #error "Please select a the target APM32F10x device used in your application (in apm32f10x.h file)"
- #endif
- /** @addtogroup CMSIS
- @{
- */
- /** @addtogroup APM32F10x
- * @brief Peripheral Access Layer
- @{
- */
- /** @defgroup HSE_Macros
- @{
- */
- /**
- * @brief Define Value of the External oscillator in Hz
- */
- #ifndef HSE_VALUE
- #ifndef APM32F10X_CL
- #define HSE_VALUE ((uint32_t)8000000)
- #else
- #define HSE_VALUE ((uint32_t)25000000)
- #endif
- #endif
- /* Time out for HSE start up */
- #define HSE_STARTUP_TIMEOUT ((uint16_t)0x05000)
- /* Value of the Internal oscillator in Hz */
- #define HSI_VALUE ((uint32_t)8000000)
- /**@} end of group HSE_Macros */
- /** @defgroup APM32F10x_StdPeripheral_Library_Version
- @{
- */
- /**
- * @brief APM32F10x Standard Peripheral Library version number
- */
- #define __APM32F10X_STDPERIPH_VERSION_MAIN (0x01) /*!< [31:24] main version */
- #define __APM32F10X_STDPERIPH_VERSION_SUB1 (0x00) /*!< [23:16] sub1 version */
- #define __APM32F10X_STDPERIPH_VERSION_SUB2 (0x07) /*!< [15:8] sub2 version */
- #define __APM32F10X_STDPERIPH_VERSION_RC (0x00) /*!< [7:0] release candidate */
- #define __APM32F10X_STDPERIPH_VERSION ( (__APM32F10X_STDPERIPH_VERSION_MAIN << 24)\
- |(__APM32F10X_STDPERIPH_VERSION_SUB1 << 16)\
- |(__APM32F10X_STDPERIPH_VERSION_SUB2 << 8)\
- |(__APM32F10X_STDPERIPH_VERSION_RC))
- /**@} end of group APM32F0xx_StdPeripheral_Library_Version */
- /** @defgroup Configuraion_for_CMSIS
- @{
- */
- /* APM32 devices does not provide an MPU */
- #define __MPU_PRESENT 0
- /* APM32 uses 4 Bits for the Priority Levels */
- #define __NVIC_PRIO_BITS 4
- /* Set to 1 if different SysTick Config is used */
- #define __Vendor_SysTickConfig 0
- /**@} end of group Configuraion_for_CMSIS */
- /** @defgroup Peripheral_Enumerations
- @{
- */
- /**
- * @brief APM32F10x Interrupt Number Definition, according to the selected device
- * in @ref Library_configuration_section
- */
- typedef enum IRQn
- {
- /****** Cortex-M3 Processor Exceptions Numbers ***************************************************/
- NonMaskableInt_IRQn = -14, /*!< 2 Non Maskable Interrupt */
- MemoryManagement_IRQn = -12, /*!< 4 Cortex-M3 Memory Management Interrupt */
- BusFault_IRQn = -11, /*!< 5 Cortex-M3 Bus Fault Interrupt */
- UsageFault_IRQn = -10, /*!< 6 Cortex-M3 Usage Fault Interrupt */
- SVCall_IRQn = -5, /*!< 11 Cortex-M3 SV Call Interrupt */
- DebugMonitor_IRQn = -4, /*!< 12 Cortex-M3 Debug Monitor Interrupt */
- PendSV_IRQn = -2, /*!< 14 Cortex-M3 Pend SV Interrupt */
- SysTick_IRQn = -1, /*!< 15 Cortex-M3 System Tick Interrupt */
- /****** APM32 specific Interrupt Numbers *********************************************************/
- WWDT_IRQn = 0, /*!< Window WatchDog Interrupt */
- PVD_IRQn = 1, /*!< PVD through EINT Line detection Interrupt */
- TAMPER_IRQn = 2, /*!< Tamper Interrupt */
- RTC_IRQn = 3, /*!< RTC global Interrupt */
- FLASH_IRQn = 4, /*!< FLASH global Interrupt */
- RCM_IRQn = 5, /*!< RCM global Interrupt */
- EINT0_IRQn = 6, /*!< EINT Line0 Interrupt */
- EINT1_IRQn = 7, /*!< EINT Line1 Interrupt */
- EINT2_IRQn = 8, /*!< EINT Line2 Interrupt */
- EINT3_IRQn = 9, /*!< EINT Line3 Interrupt */
- EINT4_IRQn = 10, /*!< EINT Line4 Interrupt */
- DMA1_Channel1_IRQn = 11, /*!< DMA1 Channel 1 global Interrupt */
- DMA1_Channel2_IRQn = 12, /*!< DMA1 Channel 2 global Interrupt */
- DMA1_Channel3_IRQn = 13, /*!< DMA1 Channel 3 global Interrupt */
- DMA1_Channel4_IRQn = 14, /*!< DMA1 Channel 4 global Interrupt */
- DMA1_Channel5_IRQn = 15, /*!< DMA1 Channel 5 global Interrupt */
- DMA1_Channel6_IRQn = 16, /*!< DMA1 Channel 6 global Interrupt */
- DMA1_Channel7_IRQn = 17, /*!< DMA1 Channel 7 global Interrupt */
- #if defined (APM32F10X_LD)
- /* APM32F10X Low-density devices specific Interrupt Numbers */
- ADC1_2_IRQn = 18, /*!< ADC1 and ADC2 global Interrupt */
- USBD1_HP_CAN1_TX_IRQn = 19, /*!< USB Device 1 High Priority or CAN1 TX Interrupts */
- USBD1_LP_CAN1_RX0_IRQn = 20, /*!< USB Device 1 Low Priority or CAN1 RX0 Interrupts */
- CAN1_RX1_IRQn = 21, /*!< CAN1 RX1 Interrupt */
- CAN1_SCE_IRQn = 22, /*!< CAN1 SCE Interrupt */
- EINT9_5_IRQn = 23, /*!< External Line[9:5] Interrupts */
- TMR1_BRK_IRQn = 24, /*!< TMR1 Break Interrupt */
- TMR1_UP_IRQn = 25, /*!< TMR1 Update Interrupt */
- TMR1_TRG_COM_IRQn = 26, /*!< TMR1 Trigger and Commutation Interrupt */
- TMR1_CC_IRQn = 27, /*!< TMR1 Capture Compare Interrupt */
- TMR2_IRQn = 28, /*!< TMR2 global Interrupt */
- TMR3_IRQn = 29, /*!< TMR3 global Interrupt */
- I2C1_EV_IRQn = 31, /*!< I2C1 Event Interrupt */
- I2C1_ER_IRQn = 32, /*!< I2C1 Error Interrupt */
- SPI1_IRQn = 35, /*!< SPI1 global Interrupt */
- USART1_IRQn = 37, /*!< USART1 global Interrupt */
- USART2_IRQn = 38, /*!< USART2 global Interrupt */
- EINT15_10_IRQn = 40, /*!< External Line[15:10] Interrupts */
- RTCAlarm_IRQn = 41, /*!< RTC Alarm through EINT Line Interrupt */
- USBDWakeUp_IRQn = 42, /*!< USB Device WakeUp from suspend through EINT Line Interrupt */
- FPU_IRQn = 43, /*!< FPU Global Interrupt */
- QSPI_IRQn = 44, /*!< QSPI Global Interrupt */
- USBD2_HP_IRQn = 45, /*!< USB Device 2 High Priority */
- USBD2_LP_IRQn = 46 /*!< USB Device 2 Low Priority */
- #elif defined (APM32F10X_MD)
- /* APM32F10X Medium-density devices specific Interrupt Numbers */
- ADC1_2_IRQn = 18, /*!< ADC1 and ADC2 global Interrupt */
- USBD1_HP_CAN1_TX_IRQn = 19, /*!< USB Device 1 High Priority or CAN1 TX Interrupts */
- USBD1_LP_CAN1_RX0_IRQn = 20, /*!< USB Device 1 Low Priority or CAN1 RX0 Interrupts */
- CAN1_RX1_IRQn = 21, /*!< CAN1 RX1 Interrupt */
- CAN1_SCE_IRQn = 22, /*!< CAN1 SCE Interrupt */
- EINT9_5_IRQn = 23, /*!< External Line[9:5] Interrupts */
- TMR1_BRK_IRQn = 24, /*!< TMR1 Break Interrupt */
- TMR1_UP_IRQn = 25, /*!< TMR1 Update Interrupt */
- TMR1_TRG_COM_IRQn = 26, /*!< TMR1 Trigger and Commutation Interrupt */
- TMR1_CC_IRQn = 27, /*!< TMR1 Capture Compare Interrupt */
- TMR2_IRQn = 28, /*!< TMR2 global Interrupt */
- TMR3_IRQn = 29, /*!< TMR3 global Interrupt */
- TMR4_IRQn = 30, /*!< TMR4 global Interrupt */
- I2C1_EV_IRQn = 31, /*!< I2C1 Event Interrupt */
- I2C1_ER_IRQn = 32, /*!< I2C1 Error Interrupt */
- I2C2_EV_IRQn = 33, /*!< I2C2 Event Interrupt */
- I2C2_ER_IRQn = 34, /*!< I2C2 Error Interrupt */
- SPI1_IRQn = 35, /*!< SPI1 global Interrupt */
- SPI2_IRQn = 36, /*!< SPI2 global Interrupt */
- USART1_IRQn = 37, /*!< USART1 global Interrupt */
- USART2_IRQn = 38, /*!< USART2 global Interrupt */
- USART3_IRQn = 39, /*!< USART3 global Interrupt */
- EINT15_10_IRQn = 40, /*!< External Line[15:10] Interrupts */
- RTCAlarm_IRQn = 41, /*!< RTC Alarm through EINT Line Interrupt */
- USBDWakeUp_IRQn = 42, /*!< USB Device WakeUp from suspend through EINT Line Interrupt */
- FPU_IRQn = 43, /*!< FPU Global Interrupt */
- QSPI_IRQn = 44, /*!< QSPI Global Interrupt */
- USBD2_HP_IRQn = 45, /*!< USB Device 2 High Priority */
- USBD2_LP_IRQn = 46 /*!< USB Device 2 Low Priority */
- #elif defined (APM32F10X_HD)
- /* APM32F10X High-density devices specific Interrupt Numbers */
- ADC1_2_IRQn = 18, /*!< ADC1 and ADC2 global Interrupt */
- USBD1_HP_CAN1_TX_IRQn = 19, /*!< USB Device 1 High Priority or CAN1 TX Interrupts */
- USBD1_LP_CAN1_RX0_IRQn = 20, /*!< USB Device 1 Low Priority or CAN1 RX0 Interrupts */
- CAN1_RX1_IRQn = 21, /*!< CAN1 RX1 Interrupt */
- CAN1_SCE_IRQn = 22, /*!< CAN1 SCE Interrupt */
- EINT9_5_IRQn = 23, /*!< External Line[9:5] Interrupts */
- TMR1_BRK_IRQn = 24, /*!< TMR1 Break Interrupt */
- TMR1_UP_IRQn = 25, /*!< TMR1 Update Interrupt */
- TMR1_TRG_COM_IRQn = 26, /*!< TMR1 Trigger and Commutation Interrupt */
- TMR1_CC_IRQn = 27, /*!< TMR1 Capture Compare Interrupt */
- TMR2_IRQn = 28, /*!< TMR2 global Interrupt */
- TMR3_IRQn = 29, /*!< TMR3 global Interrupt */
- TMR4_IRQn = 30, /*!< TMR4 global Interrupt */
- I2C1_EV_IRQn = 31, /*!< I2C1 Event Interrupt */
- I2C1_ER_IRQn = 32, /*!< I2C1 Error Interrupt */
- I2C2_EV_IRQn = 33, /*!< I2C2 Event Interrupt */
- I2C2_ER_IRQn = 34, /*!< I2C2 Error Interrupt */
- SPI1_IRQn = 35, /*!< SPI1 global Interrupt */
- SPI2_IRQn = 36, /*!< SPI2 global Interrupt */
- USART1_IRQn = 37, /*!< USART1 global Interrupt */
- USART2_IRQn = 38, /*!< USART2 global Interrupt */
- USART3_IRQn = 39, /*!< USART3 global Interrupt */
- EINT15_10_IRQn = 40, /*!< External Line[15:10] Interrupts */
- RTCAlarm_IRQn = 41, /*!< RTC Alarm through EINT Line Interrupt */
- USBDWakeUp_IRQn = 42, /*!< USB Device WakeUp from suspend through EINT Line Interrupt */
- TMR8_BRK_IRQn = 43, /*!< TMR8 Break Interrupt */
- TMR8_UP_IRQn = 44, /*!< TMR8 Update Interrupt */
- TMR8_TRG_COM_IRQn = 45, /*!< TMR8 Trigger and Commutation Interrupt */
- TMR8_CC_IRQn = 46, /*!< TMR8 Capture Compare Interrupt */
- ADC3_IRQn = 47, /*!< ADC3 global Interrupt */
- EMMC_IRQn = 48, /*!< EMMC global Interrupt */
- SDIO_IRQn = 49, /*!< SDIO global Interrupt */
- TMR5_IRQn = 50, /*!< TMR5 global Interrupt */
- SPI3_IRQn = 51, /*!< SPI3 global Interrupt */
- UART4_IRQn = 52, /*!< UART4 global Interrupt */
- UART5_IRQn = 53, /*!< UART5 global Interrupt */
- TMR6_IRQn = 54, /*!< TMR6 global Interrupt */
- TMR7_IRQn = 55, /*!< TMR7 global Interrupt */
- DMA2_Channel1_IRQn = 56, /*!< DMA2 Channel 1 global Interrupt */
- DMA2_Channel2_IRQn = 57, /*!< DMA2 Channel 2 global Interrupt */
- DMA2_Channel3_IRQn = 58, /*!< DMA2 Channel 3 global Interrupt */
- DMA2_Channel4_5_IRQn = 59, /*!< DMA2 Channel 4 and Channel 5 global Interrupt */
- USBD2_HP_CAN2_TX_IRQn = 61, /*!< USB Device 2 High Priority or CAN2 TX Interrupts */
- USBD2_LP_CAN2_RX0_IRQn = 62, /*!< USB Device 2 Low Priority or CAN2 RX0 Interrupts */
- CAN2_RX1_IRQn = 63, /*!< CAN2 RX1 Interrupts */
- CAN2_SCE_IRQn = 64, /*!< CAN2 SCE Interrupts */
- #elif defined (APM32F10X_CL)
- /* APM32F10X Connectivity-line devices specific Interrupt Numbers */
- ADC1_2_IRQn = 18, /*!< ADC1 and ADC2 global Interrupt */
- CAN1_TX_IRQn = 19, /*!< CAN1 TX Interrupts */
- CAN1_RX0_IRQn = 20, /*!< CAN1 RX0 Interrupts */
- CAN1_RX1_IRQn = 21, /*!< CAN1 RX1 Interrupt */
- CAN1_SCE_IRQn = 22, /*!< CAN1 SCE Interrupt */
- EINT9_5_IRQn = 23, /*!< External Line[9:5] Interrupts */
- TMR1_BRK_IRQn = 24, /*!< TMR1 Break Interrupt */
- TMR1_UP_IRQn = 25, /*!< TMR1 Update Interrupt */
- TMR1_TRG_COM_IRQn = 26, /*!< TMR1 Trigger and Commutation Interrupt */
- TMR1_CC_IRQn = 27, /*!< TMR1 Capture Compare Interrupt */
- TMR2_IRQn = 28, /*!< TMR2 global Interrupt */
- TMR3_IRQn = 29, /*!< TMR3 global Interrupt */
- TMR4_IRQn = 30, /*!< TMR4 global Interrupt */
- I2C1_EV_IRQn = 31, /*!< I2C1 Event Interrupt */
- I2C1_ER_IRQn = 32, /*!< I2C1 Error Interrupt */
- I2C2_EV_IRQn = 33, /*!< I2C2 Event Interrupt */
- I2C2_ER_IRQn = 34, /*!< I2C2 Error Interrupt */
- SPI1_IRQn = 35, /*!< SPI1 global Interrupt */
- SPI2_IRQn = 36, /*!< SPI2 global Interrupt */
- USART1_IRQn = 37, /*!< USART1 global Interrupt */
- USART2_IRQn = 38, /*!< USART2 global Interrupt */
- USART3_IRQn = 39, /*!< USART3 global Interrupt */
- EINT15_10_IRQn = 40, /*!< External Line[15:10] Interrupts */
- RTCAlarm_IRQn = 41, /*!< RTC Alarm through EINT Line Interrupt */
- OTG_FS_WKUP_IRQn = 42, /*!< USB Device WakeUp from suspend through EINT Line Interrupt */
- TMR5_IRQn = 50, /*!< TMR5 global Interrupt */
- SPI3_IRQn = 51, /*!< SPI3 global Interrupt */
- UART4_IRQn = 52, /*!< UART4 global Interrupt */
- UART5_IRQn = 53, /*!< UART5 global Interrupt */
- TMR6_IRQn = 54, /*!< TMR6 global Interrupt */
- TMR7_IRQn = 55, /*!< TMR7 global Interrupt */
- DMA2_Channel1_IRQn = 56, /*!< DMA2 Channel 1 global Interrupt */
- DMA2_Channel2_IRQn = 57, /*!< DMA2 Channel 2 global Interrupt */
- DMA2_Channel3_IRQn = 58, /*!< DMA2 Channel 3 global Interrupt */
- DMA2_Channel4_IRQn = 59, /*!< DMA2 Channel 4 global Interrupt */
- DMA2_Channel5_IRQn = 60, /*!< DMA2 Channel 5 global Interrupt */
- ETH_IRQn = 61, /*!< ETH global Interrupt */
- ETH_WKUP_IRQn = 62, /*!< ETH Wake up Interrupt */
- CAN2_TX_IRQn = 63, /*!< CAN2 TX Interrupts */
- CAN2_RX0_IRQn = 64, /*!< CAN2 RX0 Interrupts */
- CAN2_RX1_IRQn = 65, /*!< CAN2 RX1 Interrupts */
- CAN2_SCE_IRQn = 66, /*!< CAN2 SCE Interrupts */
- OTG_FS_IRQn = 67, /*!< OTG FS Interrupts */
- #endif
- } IRQn_Type;
- /**@} end of group Peripheral_Enumerations */
- /* Includes */
- #include "core_cm3.h"
- #include "system_apm32f10x.h"
- #include <stdint.h>
- /** @defgroup Exported_Types
- @{
- */
- typedef int32_t s32;
- typedef int16_t s16;
- typedef int8_t s8;
- typedef const int32_t sc32;
- typedef const int16_t sc16;
- typedef const int8_t sc8;
- typedef __IO int32_t vs32;
- typedef __IO int16_t vs16;
- typedef __IO int8_t vs8;
- typedef __I int32_t vsc32;
- typedef __I int16_t vsc16;
- typedef __I int8_t vsc8;
- typedef uint32_t u32;
- typedef uint16_t u16;
- typedef uint8_t u8;
- typedef const uint32_t uc32;
- typedef const uint16_t uc16;
- typedef const uint8_t uc8;
- typedef __IO uint32_t vu32;
- typedef __IO uint16_t vu16;
- typedef __IO uint8_t vu8;
- typedef __I uint32_t vuc32;
- typedef __I uint16_t vuc16;
- typedef __I uint8_t vuc8;
- #ifndef __IM
- #define __IM __I
- #endif
- #ifndef __OM
- #define __OM __O
- #endif
- #ifndef __IOM
- #define __IOM __IO
- #endif
- enum {BIT_RESET, BIT_SET};
- enum {RESET, SET};
- enum {DISABLE, ENABLE};
- enum {ERROR, SUCCESS};
- #ifndef NULL
- #define NULL ((void *)0)
- #endif
- #if defined (__CC_ARM )
- #pragma anon_unions
- #endif
- /**@} end of group Exported_types */
- /** @defgroup Peripheral_registers_structures
- @{
- */
- /**
- * @brief Reset and clock management unit (RCM)
- */
- typedef struct
- {
- /* Clock control register */
- union
- {
- __IOM uint32_t CTRL;
- struct
- {
- __IOM uint32_t HSIEN : 1;
- __IM uint32_t HSIRDYFLG : 1;
- __IM uint32_t RESERVED1 : 1;
- __IOM uint32_t HSITRIM : 5;
- __IM uint32_t HSICAL : 8;
- __IOM uint32_t HSEEN : 1;
- __IM uint32_t HSERDYFLG : 1;
- __IOM uint32_t HSEBCFG : 1;
- __IOM uint32_t CSSEN : 1;
- __IM uint32_t RESERVED2 : 4;
- __IOM uint32_t PLL1EN : 1;
- __IM uint32_t PLL1RDYFLG : 1;
- __IOM uint32_t PLL2EN : 1;
- __IM uint32_t PLL2RDYFLG : 1;
- __IOM uint32_t PLL3EN : 1;
- __IM uint32_t PLL3RDYFLG : 1;
- __IM uint32_t RESERVED3 : 2;
- } CTRL_B;
- };
- /* Clock configuration register */
- union
- {
- __IOM uint32_t CFG;
- struct
- {
- __IOM uint32_t SCLKSEL : 2;
- __IM uint32_t SCLKSELSTS : 2;
- __IOM uint32_t AHBPSC : 4;
- __IOM uint32_t APB1PSC : 3;
- __IOM uint32_t APB2PSC : 3;
- __IOM uint32_t ADCPSC : 2;
- __IOM uint32_t PLL1SRCSEL : 1;
- #ifdef APM32F10X_CL
- __IOM uint32_t PLLPSC1L : 1;
- __IOM uint32_t PLL1MULCFG : 4;
- __IOM uint32_t OTGFSPSC : 2;
- __IOM uint32_t MCOSEL : 4;
- __IM uint32_t RESERVED : 4;
- #else
- __IOM uint32_t PLLHSEPSC : 1;
- __IOM uint32_t PLL1MULCFG : 4;
- __IOM uint32_t USBDPSC : 2;
- __IOM uint32_t MCOSEL : 3;
- __IOM uint32_t FPUPSC : 1;
- __IOM uint32_t SDRAMPSC : 2;
- __IM uint32_t RESERVED : 2;
- #endif
- } CFG_B;
- } ;
- /* Clock interrupt control register */
- union
- {
- __IOM uint32_t INT;
- struct
- {
- __IM uint32_t LSIRDYFLG : 1;
- __IM uint32_t LSERDYFLG : 1;
- __IM uint32_t HSIRDYFLG : 1;
- __IM uint32_t HSERDYFLG : 1;
- __IM uint32_t PLL1RDYFLG : 1;
- __IM uint32_t PLL2RDYFLG : 1;
- __IM uint32_t PLL3RDYFLG : 1;
- __IM uint32_t CSSFLG : 1;
- __IOM uint32_t LSIRDYEN : 1;
- __IOM uint32_t LSERDYEN : 1;
- __IOM uint32_t HSIRDYEN : 1;
- __IOM uint32_t HSERDYEN : 1;
- __IOM uint32_t PLL1RDYEN : 1;
- __IOM uint32_t PLL2RDYEN : 1;
- __IOM uint32_t PLL3RDYEN : 1;
- __IM uint32_t RESERVED1 : 1;
- __OM uint32_t LSIRDYCLR : 1;
- __OM uint32_t LSERDYCLR : 1;
- __OM uint32_t HSIRDYCLR : 1;
- __OM uint32_t HSERDYCLR : 1;
- __OM uint32_t PLL1RDYCLR : 1;
- __OM uint32_t PLL2RDYCLR : 1;
- __OM uint32_t PLL3RDYCLR : 1;
- __OM uint32_t CSSCLR : 1;
- __IM uint32_t RESERVED2 : 8;
- } INT_B;
- } ;
- /* APB2 peripheral reset register */
- union
- {
- __IOM uint32_t APB2RST;
- struct
- {
- __IOM uint32_t AFIORST : 1;
- __IM uint32_t RESERVED1 : 1;
- __IOM uint32_t PARST : 1;
- __IOM uint32_t PBRST : 1;
- __IOM uint32_t PCRST : 1;
- __IOM uint32_t PDRST : 1;
- __IOM uint32_t PERST : 1;
- __IOM uint32_t PFRST : 1;
- __IOM uint32_t PGRST : 1;
- __IOM uint32_t ADC1RST : 1;
- __IOM uint32_t ADC2RST : 1;
- __IOM uint32_t TMR1RST : 1;
- __IOM uint32_t SPI1RST : 1;
- __IOM uint32_t TMR8RST : 1;
- __IOM uint32_t USART1RST : 1;
- __IOM uint32_t ADC3RST : 1;
- __IM uint32_t RESERVED2 : 16;
- } APB2RST_B;
- } ;
- /* APB1 peripheral reset register */
- union
- {
- __IOM uint32_t APB1RST;
- struct
- {
- __IOM uint32_t TMR2RST : 1;
- __IOM uint32_t TMR3RST : 1;
- __IOM uint32_t TMR4RST : 1;
- __IOM uint32_t TMR5RST : 1;
- __IOM uint32_t TMR6RST : 1;
- __IOM uint32_t TMR7RST : 1;
- __IM uint32_t RESERVED1 : 5;
- __IOM uint32_t WWDTRST : 1;
- __IM uint32_t RESERVED2 : 2;
- __IOM uint32_t SPI2RST : 1;
- __IOM uint32_t SPI3RST : 1;
- __IM uint32_t RESERVED3 : 1;
- __IOM uint32_t USART2RST : 1;
- __IOM uint32_t USART3RST : 1;
- __IOM uint32_t UART4RST : 1;
- __IOM uint32_t UART5RST : 1;
- __IOM uint32_t I2C1RST : 1;
- __IOM uint32_t I2C2RST : 1;
- __IOM uint32_t USBDRST : 1;
- __IM uint32_t RESERVED4 : 1;
- __IOM uint32_t CAN1RST : 1;
- __IOM uint32_t CAN2RST : 1;
- __IOM uint32_t BAKPRST : 1;
- __IOM uint32_t PMURST : 1;
- __IOM uint32_t DACRST : 1;
- __IM uint32_t RESERVED5 : 2;
- } APB1RST_B;
- } ;
- /* AHB clock enable register */
- union
- {
- __IOM uint32_t AHBCLKEN;
- struct
- {
- __IOM uint32_t DMA1EN : 1;
- __IOM uint32_t DMA2EN : 1;
- __IOM uint32_t SRAMEN : 1;
- __IOM uint32_t FPUEN : 1;
- __IOM uint32_t FMCEN : 1;
- __IOM uint32_t QSPIEN : 1;
- __IOM uint32_t CRCEN : 1;
- __IM uint32_t RESERVED1 : 1;
- __IOM uint32_t EMMCEN : 1;
- __IM uint32_t RESERVED2 : 1;
- __IOM uint32_t SDIOEN : 1;
- __IM uint32_t RESERVED3 : 1;
- __IOM uint32_t OTGFSEN : 1;
- __IM uint32_t RESERVED4 : 1;
- __IOM uint32_t MACEN : 1;
- __IOM uint32_t MACTXEN : 1;
- __IOM uint32_t MACRXEN : 1;
- __IM uint32_t RESERVED5 : 15;
- } AHBCLKEN_B;
- } ;
- /* APB2 clock enable register */
- union
- {
- __IOM uint32_t APB2CLKEN;
- struct
- {
- __IOM uint32_t AFIOEN : 1;
- __IM uint32_t RESERVED1 : 1;
- __IOM uint32_t PAEN : 1;
- __IOM uint32_t PBEN : 1;
- __IOM uint32_t PCEN : 1;
- __IOM uint32_t PDEN : 1;
- __IOM uint32_t PEEN : 1;
- __IOM uint32_t PFEN : 1;
- __IOM uint32_t PGEN : 1;
- __IOM uint32_t ADC1EN : 1;
- __IOM uint32_t ADC2EN : 1;
- __IOM uint32_t TMR1EN : 1;
- __IOM uint32_t SPI1EN : 1;
- __IOM uint32_t TMR8EN : 1;
- __IOM uint32_t USART1EN : 1;
- __IOM uint32_t ADC3EN : 1;
- __IM uint32_t RESERVED2 : 16;
- } APB2CLKEN_B;
- };
- /* APB1 clock enable register */
- union
- {
- __IOM uint32_t APB1CLKEN;
- struct
- {
- __IOM uint32_t TMR2EN : 1;
- __IOM uint32_t TMR3EN : 1;
- __IOM uint32_t TMR4EN : 1;
- __IOM uint32_t TMR5EN : 1;
- __IOM uint32_t TMR6EN : 1;
- __IOM uint32_t TMR7EN : 1;
- __IM uint32_t RESERVED1 : 5;
- __IOM uint32_t WWDTEN : 1;
- __IM uint32_t RESERVED2 : 2;
- __IOM uint32_t SPI2EN : 1;
- __IOM uint32_t SPI3EN : 1;
- __IM uint32_t RESERVED3 : 1;
- __IOM uint32_t USART2EN : 1;
- __IOM uint32_t USART3EN : 1;
- __IOM uint32_t UART4EN : 1;
- __IOM uint32_t UART5EN : 1;
- __IOM uint32_t I2C1EN : 1;
- __IOM uint32_t I2C2EN : 1;
- __IOM uint32_t USBDEN : 1;
- __IM uint32_t RESERVED4 : 1;
- __IOM uint32_t CAN1EN : 1;
- __IOM uint32_t CAN2EN : 1;
- __IOM uint32_t BAKPEN : 1;
- __IOM uint32_t PMUEN : 1;
- __IOM uint32_t DACEN : 1;
- __IM uint32_t RESERVED5 : 2;
- } APB1CLKEN_B;
- } ;
- /* Backup domain control register */
- union
- {
- __IOM uint32_t BDCTRL;
- struct
- {
- __IOM uint32_t LSEEN : 1;
- __IM uint32_t LSERDYFLG : 1;
- __IOM uint32_t LSEBCFG : 1;
- __IM uint32_t RESERVED1 : 5;
- __IOM uint32_t RTCSRCSEL : 2;
- __IM uint32_t RESERVED2 : 5;
- __IOM uint32_t RTCCLKEN : 1;
- __IOM uint32_t BDRST : 1;
- __IM uint32_t RESERVED3 : 15;
- } BDCTRL_B;
- } ;
- /* Control/status register */
- union
- {
- __IOM uint32_t CSTS;
- struct
- {
- __IOM uint32_t LSIEN : 1;
- __IM uint32_t LSIRDYFLG : 1;
- __IM uint32_t RESERVED1 : 22;
- __IOM uint32_t RSTFLGCLR : 1;
- __IM uint32_t RESERVED2 : 1;
- __IOM uint32_t NRSTFLG : 1;
- __IOM uint32_t PODRSTFLG : 1;
- __IOM uint32_t SWRSTFLG : 1;
- __IOM uint32_t IWDTRSTFLG : 1;
- __IOM uint32_t WWDTRSTFLG : 1;
- __IOM uint32_t LPWRRSTFLG : 1;
- } CSTS_B;
- } ;
- /* AHB peripheral reset register */
- union
- {
- __IOM uint32_t AHBRST;
- struct
- {
- __IM uint32_t RESERVED1 : 12;
- __IOM uint32_t OTGFSRST : 1;
- __IM uint32_t RESERVED2 : 1;
- __IOM uint32_t MACRST : 1;
- __IM uint32_t RESERVED3 : 17;
- } AHBRST_B;
- } ;
- /* Clock configuration register2 */
- union
- {
- __IOM uint32_t CFG2;
- struct
- {
- __IOM uint32_t PLLPSC1 : 4;
- __IOM uint32_t PLLPSC2 : 4;
- __IOM uint32_t PLL2MUL : 4;
- __IOM uint32_t PLL3MUL : 4;
- __IOM uint32_t PLLPSC1SRC : 1;
- __IOM uint32_t I2S2SRCSEL : 1;
- __IOM uint32_t I2S3SRCSEL : 1;
- __IM uint32_t RESERVED1 : 13;
- } CFG2_B;
- } ;
- } RCM_T;
- /**
- * @brief General purpose I/O (GPIO)
- */
- typedef struct
- {
- /* Port configure register low */
- union
- {
- __IOM uint32_t CFGLOW;
- struct
- {
- __IOM uint32_t MODE0 : 2;
- __IOM uint32_t CFG0 : 2;
- __IOM uint32_t MODE1 : 2;
- __IOM uint32_t CFG1 : 2;
- __IOM uint32_t MODE2 : 2;
- __IOM uint32_t CFG2 : 2;
- __IOM uint32_t MODE3 : 2;
- __IOM uint32_t CFG3 : 2;
- __IOM uint32_t MODE4 : 2;
- __IOM uint32_t CFG4 : 2;
- __IOM uint32_t MODE5 : 2;
- __IOM uint32_t CFG5 : 2;
- __IOM uint32_t MODE6 : 2;
- __IOM uint32_t CFG6 : 2;
- __IOM uint32_t MODE7 : 2;
- __IOM uint32_t CFG7 : 2;
- } CFGLOW_B;
- } ;
- /* Port configure register high */
- union
- {
- __IOM uint32_t CFGHIG;
- struct
- {
- __IOM uint32_t MODE8 : 2;
- __IOM uint32_t CFG8 : 2;
- __IOM uint32_t MODE9 : 2;
- __IOM uint32_t CFG9 : 2;
- __IOM uint32_t MODE10 : 2;
- __IOM uint32_t CFG10 : 2;
- __IOM uint32_t MODE11 : 2;
- __IOM uint32_t CFG11 : 2;
- __IOM uint32_t MODE12 : 2;
- __IOM uint32_t CFG12 : 2;
- __IOM uint32_t MODE13 : 2;
- __IOM uint32_t CFG13 : 2;
- __IOM uint32_t MODE14 : 2;
- __IOM uint32_t CFG14 : 2;
- __IOM uint32_t MODE15 : 2;
- __IOM uint32_t CFG15 : 2;
- } CFGHIG_B;
- } ;
- /* Port data in register */
- union
- {
- __IM uint32_t IDATA;
- struct
- {
- __IM uint32_t IDATA0 : 1;
- __IM uint32_t IDATA1 : 1;
- __IM uint32_t IDATA2 : 1;
- __IM uint32_t IDATA3 : 1;
- __IM uint32_t IDATA4 : 1;
- __IM uint32_t IDATA5 : 1;
- __IM uint32_t IDATA6 : 1;
- __IM uint32_t IDATA7 : 1;
- __IM uint32_t IDATA8 : 1;
- __IM uint32_t IDATA9 : 1;
- __IM uint32_t IDATA10 : 1;
- __IM uint32_t IDATA11 : 1;
- __IM uint32_t IDATA12 : 1;
- __IM uint32_t IDATA13 : 1;
- __IM uint32_t IDATA14 : 1;
- __IM uint32_t IDATA15 : 1;
- __IM uint32_t RESERVED : 16;
- } IDATA_B;
- } ;
- /* Port data output register */
- union
- {
- __IOM uint32_t ODATA;
- struct
- {
- __IOM uint32_t ODATA0 : 1;
- __IOM uint32_t ODATA1 : 1;
- __IOM uint32_t ODATA2 : 1;
- __IOM uint32_t ODATA3 : 1;
- __IOM uint32_t ODATA4 : 1;
- __IOM uint32_t ODATA5 : 1;
- __IOM uint32_t ODATA6 : 1;
- __IOM uint32_t ODATA7 : 1;
- __IOM uint32_t ODATA8 : 1;
- __IOM uint32_t ODATA9 : 1;
- __IOM uint32_t ODATA10 : 1;
- __IOM uint32_t ODATA11 : 1;
- __IOM uint32_t ODATA12 : 1;
- __IOM uint32_t ODATA13 : 1;
- __IOM uint32_t ODATA14 : 1;
- __IOM uint32_t ODATA15 : 1;
- __IM uint32_t RESERVED : 16;
- } ODATA_B;
- } ;
- /* Port bit set/clear register */
- union
- {
- __OM uint32_t BSC;
- struct
- {
- __OM uint32_t BS0 : 1;
- __OM uint32_t BS1 : 1;
- __OM uint32_t BS2 : 1;
- __OM uint32_t BS3 : 1;
- __OM uint32_t BS4 : 1;
- __OM uint32_t BS5 : 1;
- __OM uint32_t BS6 : 1;
- __OM uint32_t BS7 : 1;
- __OM uint32_t BS8 : 1;
- __OM uint32_t BS9 : 1;
- __OM uint32_t BS10 : 1;
- __OM uint32_t BS11 : 1;
- __OM uint32_t BS12 : 1;
- __OM uint32_t BS13 : 1;
- __OM uint32_t BS14 : 1;
- __OM uint32_t BS15 : 1;
- __OM uint32_t BR0 : 1;
- __OM uint32_t BC1 : 1;
- __OM uint32_t BC2 : 1;
- __OM uint32_t BR3 : 1;
- __OM uint32_t BC4 : 1;
- __OM uint32_t BC5 : 1;
- __OM uint32_t BC6 : 1;
- __OM uint32_t BC7 : 1;
- __OM uint32_t BC8 : 1;
- __OM uint32_t BC9 : 1;
- __OM uint32_t BC10 : 1;
- __OM uint32_t BC11 : 1;
- __OM uint32_t BC12 : 1;
- __OM uint32_t BC13 : 1;
- __OM uint32_t BC14 : 1;
- __OM uint32_t BC15 : 1;
- } BSC_B;
- } ;
- /* Port bit clear register */
- union
- {
- __OM uint32_t BC;
- struct
- {
- __OM uint32_t BC0 : 1;
- __OM uint32_t BC1 : 1;
- __OM uint32_t BC2 : 1;
- __OM uint32_t BC3 : 1;
- __OM uint32_t BC4 : 1;
- __OM uint32_t BC5 : 1;
- __OM uint32_t BC6 : 1;
- __OM uint32_t BC7 : 1;
- __OM uint32_t BC8 : 1;
- __OM uint32_t BC9 : 1;
- __OM uint32_t BC10 : 1;
- __OM uint32_t BC11 : 1;
- __OM uint32_t BC12 : 1;
- __OM uint32_t BC13 : 1;
- __OM uint32_t BC14 : 1;
- __OM uint32_t BC15 : 1;
- __IM uint32_t RESERVED : 16;
- } BC_B;
- } ;
- /* Port configuration lock register */
- union
- {
- __IOM uint32_t LOCK;
- struct
- {
- __IOM uint32_t LOCK0 : 1;
- __IOM uint32_t LOCK1 : 1;
- __IOM uint32_t LOCK2 : 1;
- __IOM uint32_t LOCK3 : 1;
- __IOM uint32_t LOCK4 : 1;
- __IOM uint32_t LOCK5 : 1;
- __IOM uint32_t LOCK6 : 1;
- __IOM uint32_t LOCK7 : 1;
- __IOM uint32_t LOCK8 : 1;
- __IOM uint32_t LOCK9 : 1;
- __IOM uint32_t LOCK10 : 1;
- __IOM uint32_t LOCK11 : 1;
- __IOM uint32_t LOCK12 : 1;
- __IOM uint32_t LOCK13 : 1;
- __IOM uint32_t LOCK14 : 1;
- __IOM uint32_t LOCK15 : 1;
- __IOM uint32_t LOCKKEY : 1;
- __IM uint32_t RESERVED : 16;
- } LOCK_B;
- } ;
- } GPIO_T;
- /**
- * @brief Alternate function I/O (AFIO)
- */
- typedef struct
- {
- /* Event control register */
- union
- {
- __IOM uint32_t EVCTRL;
- struct
- {
- __IOM uint32_t PINSEL : 4;
- __IOM uint32_t PORTSEL : 3;
- __IOM uint32_t EVOEN : 1;
- __IM uint32_t RESERVED : 24;
- } EVCTRL_B;
- } ;
- /* Alternate function IO remap and Serial wire JTAG configuration register */
- union
- {
- __IOM uint32_t REMAP1;
- struct
- {
- __IOM uint32_t SPI1RMP : 1;
- __IOM uint32_t I2C1RMP : 1;
- __IOM uint32_t USART1RMP : 1;
- __IOM uint32_t USART2RMP : 1;
- __IOM uint32_t USART3RMP : 2;
- __IOM uint32_t TMR1RMP : 2;
- __IOM uint32_t TMR2RMP : 2;
- __IOM uint32_t TMR3RMP : 2;
- __IOM uint32_t TMR4RMP : 1;
- __IOM uint32_t CAN1RMP : 2;
- __IOM uint32_t PD01RMP : 1;
- __IOM uint32_t TMR5CH4IRMP : 1;
- #if defined(APM32F10X_CL)
- __IM uint32_t RESERVED1 : 4;
- __IOM uint32_t MACRMP : 1;
- __IOM uint32_t CAN2RMP : 1;
- __IOM uint32_t MACEISEL : 1;
- __IOM uint32_t SWJCFG : 3;
- __IM uint32_t RESERVED2 : 1;
- __IOM uint32_t SPI3RMP : 1;
- __IOM uint32_t TMR2ITR1RMP : 1;
- __IOM uint32_t PTPPPSRMP : 1;
- __IM uint32_t RESERVED3 : 1;
- #else
- __IOM uint32_t ADC1_ETRGINJC_RMP : 1;
- __IOM uint32_t ADC1_ETRGREGC_RMP : 1;
- __IOM uint32_t ADC2_ETRGINJC_RMP : 1;
- __IOM uint32_t ADC2_ETRGREGC_RMP : 1;
- __IM uint32_t RESERVED1 : 1;
- __IOM uint32_t CAN2RMP : 1;
- __IM uint32_t RESERVED2 : 1;
- __OM uint32_t SWJCFG : 3;
- __IM uint32_t RESERVED3 : 5;
- #endif
- } REMAP1_B;
- } ;
- /* External interrupt select register1 */
- union
- {
- __IOM uint32_t EINTSEL1;
- struct
- {
- __IOM uint32_t EINT0 : 4;
- __IOM uint32_t EINT1 : 4;
- __IOM uint32_t EINT2 : 4;
- __IOM uint32_t EINT3 : 4;
- __IM uint32_t RESERVED : 16;
- } EINTSEL1_B;
- } ;
- /* External interrupt select register2 */
- union
- {
- __IOM uint32_t EINTSEL2;
- struct
- {
- __IOM uint32_t EINT4 : 4;
- __IOM uint32_t EINT5 : 4;
- __IOM uint32_t EINT6 : 4;
- __IOM uint32_t EINT7 : 4;
- __IM uint32_t RESERVED : 16;
- } EINTSEL2_B;
- } ;
- /* External interrupt select register3 */
- union
- {
- __IOM uint32_t EINTSEL3;
- struct
- {
- __IOM uint32_t EINT8 : 4;
- __IOM uint32_t EINT9 : 4;
- __IOM uint32_t EINT10 : 4;
- __IOM uint32_t EINT11 : 4;
- __IM uint32_t RESERVED : 16;
- } EINTSEL3_B;
- } ;
- /* External interrupt select register4 */
- union
- {
- __IOM uint32_t EINTSEL4;
- struct
- {
- __IOM uint32_t EINT12 : 4;
- __IOM uint32_t EINT13 : 4;
- __IOM uint32_t EINT14 : 4;
- __IOM uint32_t EINT15 : 4;
- __IM uint32_t RESERVED : 16;
- } EINTSEL4_B;
- } ;
- __IM uint32_t RESERVED;
- /* Alternate function IO remap register2 */
- union
- {
- __IOM uint32_t REMAP2;
- struct
- {
- __IM uint32_t RESERVED1 : 10;
- __IOM uint32_t EMMCNADV : 1;
- __IM uint32_t RESERVED2 : 21;
- } REMAP2_B;
- } ;
- } AFIO_T;
- /**
- * @brief Universal synchronous asynchronous receiver transmitter (USART)
- */
- typedef struct
- {
- /* Status register */
- union
- {
- __IOM uint32_t STS;
- struct
- {
- __IM uint32_t PEFLG : 1;
- __IM uint32_t FEFLG : 1;
- __IM uint32_t NEFLG : 1;
- __IM uint32_t OVREFLG : 1;
- __IM uint32_t IDLEFLG : 1;
- __IOM uint32_t RXBNEFLG : 1;
- __IOM uint32_t TXCFLG : 1;
- __IM uint32_t TXBEFLG : 1;
- __IOM uint32_t LBDFLG : 1;
- __IOM uint32_t CTSFLG : 1;
- __IM uint32_t RESERVED : 22;
- } STS_B;
- } ;
- /* TX Buffer Data Register */
- union
- {
- __IOM uint32_t DATA;
- struct
- {
- __IOM uint32_t DATA : 9;
- __IM uint32_t RESERVED : 23;
- } DATA_B;
- } ;
- /* Baud rate register */
- union
- {
- __IOM uint32_t BR;
- struct
- {
- __IOM uint32_t FBR : 4;
- __IOM uint32_t IBR : 12;
- __IM uint32_t RESERVED : 16;
- } BR_B;
- } ;
- /* Control register 1 */
- union
- {
- __IOM uint32_t CTRL1;
- struct
- {
- __IOM uint32_t TXBF : 1;
- __IOM uint32_t RXMUTEEN : 1;
- __IOM uint32_t RXEN : 1;
- __IOM uint32_t TXEN : 1;
- __IOM uint32_t IDLEIEN : 1;
- __IOM uint32_t RXBNEIEN : 1;
- __IOM uint32_t TXCIEN : 1;
- __IOM uint32_t TXBEIEN : 1;
- __IOM uint32_t PEIEN : 1;
- __IOM uint32_t PCFG : 1;
- __IOM uint32_t PCEN : 1;
- __IOM uint32_t WUPMCFG : 1;
- __IOM uint32_t DBLCFG : 1;
- __IOM uint32_t UEN : 1;
- __IM uint32_t RESERVED : 18;
- } CTRL1_B;
- } ;
- /* Control register 2 */
- union
- {
- __IOM uint32_t CTRL2;
- struct
- {
- __IOM uint32_t ADDR : 4;
- __IM uint32_t RESERVED1 : 1;
- __IOM uint32_t LBDLCFG : 1;
- __IOM uint32_t LBDIEN : 1;
- __IM uint32_t RESERVED2 : 1;
- __IOM uint32_t LBCPOEN : 1;
- __IOM uint32_t CPHA : 1;
- __IOM uint32_t CPOL : 1;
- __IOM uint32_t CLKEN : 1;
- __IOM uint32_t STOPCFG : 2;
- __IOM uint32_t LINMEN : 1;
- __IM uint32_t RESERVED3 : 17;
- } CTRL2_B;
- } ;
- /* Control register 3 */
- union
- {
- __IOM uint32_t CTRL3;
- struct
- {
- __IOM uint32_t ERRIEN : 1;
- __IOM uint32_t IREN : 1;
- __IOM uint32_t IRLPEN : 1;
- __IOM uint32_t HDEN : 1;
- __IOM uint32_t SCNACKEN : 1;
- __IOM uint32_t SCEN : 1;
- __IOM uint32_t DMARXEN : 1;
- __IOM uint32_t DMATXEN : 1;
- __IOM uint32_t RTSEN : 1;
- __IOM uint32_t CTSEN : 1;
- __IOM uint32_t CTSIEN : 1;
- __IM uint32_t RESERVED : 21;
- } CTRL3_B;
- } ;
- /* Guard TMRe and divider number register */
- union
- {
- __IOM uint32_t GTPSC;
- struct
- {
- __IOM uint32_t PSC : 8;
- __IOM uint32_t GRDT : 8;
- __IM uint32_t RESERVED : 16;
- } GTPSC_B;
- } ;
- } USART_T;
- /**
- * @brief Flash memory controller(FMC)
- */
- typedef struct
- {
- /* FMC access control register */
- union
- {
- __IOM uint32_t CTRL1;
- struct
- {
- __IOM uint32_t WS : 3;
- __IOM uint32_t HCAEN : 1;
- __IOM uint32_t PBEN : 1;
- __IM uint32_t PBSF : 1;
- __IM uint32_t RESERVED : 26;
- } CTRL1_B;
- } ;
- /* key register */
- union
- {
- __OM uint32_t KEY;
- struct
- {
- __OM uint32_t KEY : 32;
- } KEY_B;
- } ;
- /* option byte key register */
- union
- {
- __OM uint32_t OBKEY;
- struct
- {
- __OM uint32_t OBKEY : 32;
- } OBKEY_B;
- };
- /* status register */
- union
- {
- __IOM uint32_t STS;
- struct
- {
- __IM uint32_t BUSYF : 1;
- __IM uint32_t RESERVED1 : 1;
- __IOM uint32_t PEF : 1;
- __IM uint32_t RESERVED2 : 1;
- __IOM uint32_t WPEF : 1;
- __IOM uint32_t OCF : 1;
- __IM uint32_t RESERVED3 : 26;
- } STS_B;
- };
- /* status register */
- union
- {
- __IOM uint32_t CTRL2;
- struct
- {
- __IOM uint32_t PG : 1;
- __IOM uint32_t PAGEERA : 1;
- __IOM uint32_t MASSERA : 1;
- __IM uint32_t RESERVED1 : 1;
- __IOM uint32_t OBP : 1;
- __IOM uint32_t OBE : 1;
- __IOM uint32_t STA : 1;
- __IOM uint32_t LOCK : 1;
- __IM uint32_t RESERVED2 : 1;
- __IOM uint32_t OBWEN : 1;
- __IOM uint32_t ERRIE : 1;
- __IM uint32_t RESERVED3 : 1;
- __IOM uint32_t OCIE : 1;
- __IM uint32_t RESERVED4 : 19;
- } CTRL2_B;
- } ;
- /* address register */
- union
- {
- __OM uint32_t ADDR;
- struct
- {
- __OM uint32_t ADDR : 32;
- } ADDR_B;
- };
- __IM uint32_t RESERVED;
- /* Option byte register */
- union
- {
- __IOM uint32_t OBCS;
- struct
- {
- __IM uint32_t OBE : 1;
- __IM uint32_t READPROT : 1;
- __IM uint32_t WDTSEL : 1;
- __IM uint32_t RSTSTOP : 1;
- __IM uint32_t RSTSTDB : 1;
- __IM uint32_t UOB : 5;
- __IM uint32_t DATA0 : 8;
- __IM uint32_t DATA1 : 8;
- __IM uint32_t RESERVED : 6;
- } OBCS_B;
- };
- /* Write protection register */
- union
- {
- __IM uint32_t WRTPROT;
- struct
- {
- __IM uint32_t WRTPORT : 32;
- } WRTPORT_B;
- };
- } FMC_T;
- /**
- * @brief CRC calculation unit (CRC)
- */
- typedef struct
- {
- /* @brief DATA register */
- union
- {
- __IOM uint32_t DATA;
- struct
- {
- __IOM uint32_t DATA : 32;
- } DATA_B;
- } ;
- /* @brief independent DATA register */
- union
- {
- __IOM uint32_t INDATA;
- struct
- {
- __IOM uint32_t INDATA : 8;
- __IM uint32_t RESERVED : 24;
- } INDATA_B;
- };
- /* @brief Countrol register */
- union
- {
- __IOM uint32_t CTRL;
- struct
- {
- __IOM uint32_t RST : 1;
- __IM uint32_t RESERVED : 31;
- } CTRL_B;
- };
- } CRC_T;
- /**
- * @brief Real time clock (RTC)
- */
- typedef struct
- {
- /* @brief Control register */
- union
- {
- __IOM uint32_t CTRL;
- struct
- {
- __IOM uint32_t SECIEN : 1;
- __IOM uint32_t ALRIEN : 1;
- __IOM uint32_t OVRIEN : 1;
- __IM uint32_t RESERVED : 29;
- } CTRL_B;
- };
- /* @brief Control and State register */
- union
- {
- __IOM uint32_t CSTS;
- struct
- {
- __IOM uint32_t SECFLG : 1;
- __IOM uint32_t ALRFLG : 1;
- __IOM uint32_t OVRFLG : 1;
- __IOM uint32_t RSYNCFLG : 1;
- __IOM uint32_t CFGMFLG : 1;
- __IM uint32_t OCFLG : 1;
- __IM uint32_t RESERVED : 26;
- } CSTS_B;
- };
- /* @brief RTC predivision loading register High Bit */
- union
- {
- __OM uint32_t PSCRLDH;
- struct
- {
- __OM uint32_t PSCRLDH : 4;
- __IM uint32_t RESERVED : 28;
- } PSCRLDH_B;
- };
- /* @brief RTC predivision loading register Low Bit */
- union
- {
- __OM uint32_t PSCRLDL;
- struct
- {
- __OM uint32_t PSCRLDL : 16;
- __IM uint32_t RESERVED : 16;
- } PSCRLDL_B;
- };
- /* @brief RTC predivider remainder register High Bit */
- union
- {
- __IM uint32_t PSCH;
- struct
- {
- __IM uint32_t PSCH : 4;
- __IM uint32_t RESERVED : 28;
- } PSCH_B;
- };
- /* @brief RTC predivider remainder register Low Bit */
- union
- {
- __IM uint32_t PSCL;
- struct
- {
- __IM uint32_t PSCL : 16;
- __IM uint32_t RESERVED : 16;
- } PSCL_B;
- };
- /* @brief RTC count register High Bit */
- union
- {
- __IOM uint32_t CNTH;
- struct
- {
- __IOM uint32_t CNTH : 16;
- __IM uint32_t RESERVED : 16;
- } CNTH_B;
- };
- /* @brief RTC count register Low Bit */
- union
- {
- __IOM uint32_t CNTL;
- struct
- {
- __IOM uint32_t CNTL : 16;
- __IM uint32_t RESERVED : 16;
- } CNTL_B;
- };
- /* @brief RTC alarm clock register High Bit */
- union
- {
- __OM uint32_t ALRH;
- struct
- {
- __OM uint32_t ALRH : 16;
- __IM uint32_t RESERVED : 16;
- } ALRH_B;
- };
- /* @brief RTC alarm clock register Low Bit */
- union
- {
- __OM uint32_t ALRL;
- struct
- {
- __OM uint32_t ALRL : 16;
- __IM uint32_t RESERVED : 16;
- } ALRL_B;
- };
- } RTC_T;
- /**
- * @brief Power Management Unit(PMU)
- */
- typedef struct
- {
- /* @brief Control register */
- union
- {
- __IOM uint32_t CTRL;
- struct
- {
- __IOM uint32_t LPDSCFG : 1;
- __IOM uint32_t PDDSCFG : 1;
- __IOM uint32_t WUFLGCLR : 1;
- __IOM uint32_t SBFLGCLR : 1;
- __IOM uint32_t PVDEN : 1;
- __IOM uint32_t PLSEL : 3;
- __IOM uint32_t BPWEN : 1;
- __IM uint32_t RESERVED : 23;
- } CTRL_B;
- };
- /* @brief PMU Status register */
- union
- {
- __IOM uint32_t CSTS;
- struct
- {
- __IM uint32_t WUEFLG : 1;
- __IM uint32_t SBFLG : 1;
- __IM uint32_t PVDOFLG : 1;
- __IM uint32_t RESERVED : 5;
- __IOM uint32_t WKUPCFG : 1;
- __IM uint32_t RESERVED2 : 23;
- } CSTS_B;
- };
- } PMU_T;
- /**
- * @brief Backup register (BAKPR)
- */
- typedef struct
- {
- __IM uint32_t RESERVED;
- /* @brief BAKPR DATA1 register */
- union
- {
- __IOM uint32_t DATA1;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA1_B;
- };
- /* @brief BAKPR DATA2 register */
- union
- {
- __IOM uint32_t DATA2;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA2_B;
- };
- /* @brief BAKPR DATA3 register */
- union
- {
- __IOM uint32_t DATA3;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA3_B;
- };
- /* @brief BAKPR DATA4 register */
- union
- {
- __IOM uint32_t DATA4;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA4_B;
- };
- /* @brief BAKPR DATA5 register */
- union
- {
- __IOM uint32_t DATA5;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA5_B;
- };
- /* @brief BAKPR DATA6 register */
- union
- {
- __IOM uint32_t DATA6;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA6_B;
- };
- /* @brief BAKPR DATA7 register */
- union
- {
- __IOM uint32_t DATA7;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA7_B;
- };
- /* @brief BAKPR DATA8 register */
- union
- {
- __IOM uint32_t DATA8;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA8_B;
- };
- /* @brief BAKPR DATA9 register */
- union
- {
- __IOM uint32_t DATA9;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA9_B;
- };
- /* @brief BAKPR DATA10 register */
- union
- {
- __IOM uint32_t DATA10;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA10_B;
- };
- /* @brief BAKPR Clock Calibration register */
- union
- {
- __IOM uint32_t CLKCAL;
- struct
- {
- __IOM uint32_t CALVALUE : 7;
- __IOM uint32_t CALCOEN : 1;
- __IOM uint32_t ASPOEN : 1;
- __IOM uint32_t ASPOSEL : 1;
- __IM uint32_t RESERVED : 22;
- } CLKCAL_B;
- } ;
- /* @brief BAKPR Control register */
- union
- {
- __IOM uint32_t CTRL;
- struct
- {
- __IOM uint32_t TPFCFG : 1;
- __IOM uint32_t TPALCFG : 1;
- __IM uint32_t RESERVED : 30;
- } CTRL_B;
- };
- /* @brief BAKPR Control register */
- union
- {
- __IOM uint32_t CSTS;
- struct
- {
- __OM uint32_t TECLR : 1;
- __OM uint32_t TICLR : 1;
- __IOM uint32_t TPIEN : 1;
- __IM uint32_t RESERVED1 : 5;
- __IM uint32_t TEFLG : 1;
- __IM uint32_t TIFLG : 1;
- __IM uint32_t RESERVED2 : 22;
- } CSTS_B;
- };
- __IM uint32_t RESERVED1[2];
- /* @briefBAKPR DATA11 register */
- union
- {
- __IOM uint32_t DATA11;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA11_B;
- };
- /* @briefBAKPR DATA12 register */
- union
- {
- __IOM uint32_t DATA12;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA12_B;
- };
- /* @briefBAKPR DATA13 register */
- union
- {
- __IOM uint32_t DATA13;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA13_B;
- };
- /* @briefBAKPR DATA14 register */
- union
- {
- __IOM uint32_t DATA14;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA14_B;
- };
- /* @briefBAKPR DATA15 register */
- union
- {
- __IOM uint32_t DATA15;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA15_B;
- };
- /* @briefBAKPR DATA16 register */
- union
- {
- __IOM uint32_t DATA16;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA16_B;
- };
- /* @briefBAKPR DATA17 register */
- union
- {
- __IOM uint32_t DATA17;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA17_B;
- };
- /* @briefBAKPR DATA18 register */
- union
- {
- __IOM uint32_t DATA18;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA18_B;
- };
- /* @briefBAKPR DATA19 register */
- union
- {
- __IOM uint32_t DATA19;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA19_B;
- };
- /* @briefBAKPR DATA20 register */
- union
- {
- __IOM uint32_t DATA20;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA20_B;
- };
- /* @briefBAKPR DATA21 register */
- union
- {
- __IOM uint32_t DATA21;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA21_B;
- };
- /* @briefBAKPR DATA22 register */
- union
- {
- __IOM uint32_t DATA22;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA22_B;
- };
- /* @briefBAKPR DATA23 register */
- union
- {
- __IOM uint32_t DATA23;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA23_B;
- };
- /* @briefBAKPR DATA24 register */
- union
- {
- __IOM uint32_t DATA24;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA24_B;
- };
- /* @briefBAKPR DATA25 register */
- union
- {
- __IOM uint32_t DATA25;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA25_B;
- };
- /* @briefBAKPR DATA26 register */
- union
- {
- __IOM uint32_t DATA26;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA26_B;
- };
- /* @briefBAKPR DATA27 register */
- union
- {
- __IOM uint32_t DATA27;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA27_B;
- };
- /* @briefBAKPR DATA28 register */
- union
- {
- __IOM uint32_t DATA28;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA28_B;
- };
- /* @briefBAKPR DATA29 register */
- union
- {
- __IOM uint32_t DATA29;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA29_B;
- };
- /* @briefBAKPR DATA30 register */
- union
- {
- __IOM uint32_t DATA30;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA30_B;
- };
- /* @briefBAKPR DATA31 register */
- union
- {
- __IOM uint32_t DATA31;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA31_B;
- };
- /* @briefBAKPR DATA32 register */
- union
- {
- __IOM uint32_t DATA32;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA32_B;
- };
- /* @briefBAKPR DATA33 register */
- union
- {
- __IOM uint32_t DATA33;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA33_B;
- };
- /* @briefBAKPR DATA34 register */
- union
- {
- __IOM uint32_t DATA34;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA34_B;
- };
- /* @briefBAKPR DATA35 register */
- union
- {
- __IOM uint32_t DATA35;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA35_B;
- };
- /* @briefBAKPR DATA36 register */
- union
- {
- __IOM uint32_t DATA36;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA36_B;
- };
- /* @briefBAKPR DATA37 register */
- union
- {
- __IOM uint32_t DATA37;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA37_B;
- };
- /* @briefBAKPR DATA38 register */
- union
- {
- __IOM uint32_t DATA38;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA38_B;
- };
- /* @briefBAKPR DATA39 register */
- union
- {
- __IOM uint32_t DATA39;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA39_B;
- };
- /* @briefBAKPR DATA40 register */
- union
- {
- __IOM uint32_t DATA40;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA40_B;
- };
- /* @briefBAKPR DATA41 register */
- union
- {
- __IOM uint32_t DATA41;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA41_B;
- };
- /* @briefBAKPR DATA42 register */
- union
- {
- __IOM uint32_t DATA42;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA42_B;
- };
- } BAKPR_T;
- /**
- * @brief Timer register(TMR)
- */
- typedef struct
- {
- /* @brief Countrol register 1 */
- union
- {
- __IOM uint32_t CTRL1;
- struct
- {
- __IOM uint32_t CNTEN : 1;
- __IOM uint32_t UD : 1;
- __IOM uint32_t URSSEL : 1;
- __IOM uint32_t SPMEN : 1;
- __IOM uint32_t CNTDIR : 1;
- __IOM uint32_t CAMSEL : 2;
- __IOM uint32_t ARPEN : 1;
- __IOM uint32_t CLKDIV : 2;
- __IM uint32_t RESERVED : 22;
- } CTRL1_B;
- };
- /* @brief Countrol register 2 */
- union
- {
- __IOM uint32_t CTRL2;
- struct
- {
- __IOM uint32_t CCPEN : 1;
- __IM uint32_t RESERVED1 : 1;
- __IOM uint32_t CCUSEL : 1;
- __IOM uint32_t CCDSEL : 1;
- __IOM uint32_t MMSEL : 3;
- __IOM uint32_t TI1SEL : 1;
- __IOM uint32_t OC1OIS : 1;
- __IOM uint32_t OC1NOIS : 1;
- __IOM uint32_t OC2OIS : 1;
- __IOM uint32_t OC2NOIS : 1;
- __IOM uint32_t OC3OIS : 1;
- __IOM uint32_t OC3NOIS : 1;
- __IOM uint32_t OC4OIS : 1;
- __IM uint32_t RESERVED2 : 17;
- } CTRL2_B;
- };
- /* @brief Control register from mode */
- union
- {
- __IOM uint32_t SMCTRL;
- struct
- {
- __IOM uint32_t SMFSEL : 3;
- __IM uint32_t RESERVED1 : 1;
- __IOM uint32_t TRGSEL : 3;
- __IOM uint32_t MSMEN : 1;
- __IOM uint32_t ETFCFG : 4;
- __IOM uint32_t ETPCFG : 2;
- __IOM uint32_t ECEN : 1;
- __IOM uint32_t ETPOL : 1;
- __IM uint32_t RESERVED2 : 16;
- } SMCTRL_B;
- };
- /* @brief DMA and Interrupt enable register */
- union
- {
- __IOM uint32_t DIEN;
- struct
- {
- __IOM uint32_t UIEN : 1;
- __IOM uint32_t CC1IEN : 1;
- __IOM uint32_t CC2IEN : 1;
- __IOM uint32_t CC3IEN : 1;
- __IOM uint32_t CC4IEN : 1;
- __IOM uint32_t COMIEN : 1;
- __IOM uint32_t TRGIEN : 1;
- __IOM uint32_t BRKIEN : 1;
- __IOM uint32_t UDIEN : 1;
- __IOM uint32_t CC1DEN : 1;
- __IOM uint32_t CC2DEN : 1;
- __IOM uint32_t CC3DEN : 1;
- __IOM uint32_t CC4DEN : 1;
- __IOM uint32_t COMDEN : 1;
- __IOM uint32_t TRGDEN : 1;
- __IM uint32_t RESERVED : 17;
- } DIEN_B;
- };
- /* @brief Status register */
- union
- {
- __IOM uint32_t STS;
- struct
- {
- __IOM uint32_t UIFLG : 1;
- __IOM uint32_t CC1IFLG : 1;
- __IOM uint32_t CC2IFLG : 1;
- __IOM uint32_t CC3IFLG : 1;
- __IOM uint32_t CC4IFLG : 1;
- __IOM uint32_t COMIFLG : 1;
- __IOM uint32_t TRGIFLG : 1;
- __IOM uint32_t BRKIFLG : 1;
- __IM uint32_t RESERVED1 : 1;
- __IOM uint32_t CC1RCFLG : 1;
- __IOM uint32_t CC2RCFLG : 1;
- __IOM uint32_t CC3RCFLG : 1;
- __IOM uint32_t CC4RCFLG : 1;
- __IM uint32_t RESERVED2 : 19;
- } STS_B;
- };
- /* @brief Software controls event generation registers */
- union
- {
- __OM uint32_t CEG;
- struct
- {
- __OM uint32_t UEG : 1;
- __OM uint32_t CC1EG : 1;
- __OM uint32_t CC2EG : 1;
- __OM uint32_t CC3EG : 1;
- __OM uint32_t CC4EG : 1;
- __OM uint32_t COMG : 1;
- __OM uint32_t TEG : 1;
- __OM uint32_t BEG : 1;
- __IM uint32_t RESERVED : 24;
- } CEG_B;
- };
- /* @brief Capture the compare mode register 1 */
- union
- {
- __IOM uint32_t CCM1;
- /* @brief Compare mode */
- struct
- {
- __IOM uint32_t CC1SEL : 2;
- __IOM uint32_t OC1FEN : 1;
- __IOM uint32_t OC1PEN : 1;
- __IOM uint32_t OC1MOD : 3;
- __IOM uint32_t OC1CEN : 1;
- __IOM uint32_t CC2SEL : 2;
- __IOM uint32_t OC2FEN : 1;
- __IOM uint32_t OC2PEN : 1;
- __IOM uint32_t OC2MOD : 3;
- __IOM uint32_t OC2CEN : 1;
- __IM uint32_t RESERVED : 16;
- } CCM1_COMPARE_B;
- /* @brief Capture mode */
- struct
- {
- __IOM uint32_t CC1SEL : 2;
- __IOM uint32_t IC1PSC : 2;
- __IOM uint32_t IC1F : 4;
- __IOM uint32_t CC2SEL : 2;
- __IOM uint32_t IC2PSC : 2;
- __IOM uint32_t IC2F : 4;
- __IM uint32_t RESERVED : 16;
- } CCM1_CAPTURE_B;
- };
- /* @brief Capture the compare mode register 2 */
- union
- {
- __IOM uint32_t CCM2;
- /* @brief Compare mode */
- struct
- {
- __IOM uint32_t CC3SEL : 2;
- __IOM uint32_t OC3FEN : 1;
- __IOM uint32_t OC3PEN : 1;
- __IOM uint32_t OC3MOD : 3;
- __IOM uint32_t OC3CEN : 1;
- __IOM uint32_t CC4SEL : 2;
- __IOM uint32_t OC4FEN : 1;
- __IOM uint32_t OC4PEN : 1;
- __IOM uint32_t OC4MOD : 3;
- __IOM uint32_t OC4CEN : 1;
- __IM uint32_t RESERVED : 16;
- } CCM2_COMPARE_B;
- /* @brief Capture mode */
- struct
- {
- __IOM uint32_t CC3SEL : 2;
- __IOM uint32_t IC3PSC : 2;
- __IOM uint32_t IC3F : 4;
- __IOM uint32_t CC4SEL : 2;
- __IOM uint32_t IC4PSC : 2;
- __IOM uint32_t IC4F : 4;
- __IM uint32_t RESERVED : 16;
- } CCM2_CAPTURE_B;
- };
- /* @brief Channel control register */
- union
- {
- __IOM uint32_t CCEN;
- struct
- {
- __IOM uint32_t CC1EN : 1;
- __IOM uint32_t CC1POL : 1;
- __IOM uint32_t CC1NEN : 1;
- __IOM uint32_t CC1NPOL : 1;
- __IOM uint32_t CC2EN : 1;
- __IOM uint32_t CC2POL : 1;
- __IOM uint32_t CC2NEN : 1;
- __IOM uint32_t CC2NPOL : 1;
- __IOM uint32_t CC3EN : 1;
- __IOM uint32_t CC3POL : 1;
- __IOM uint32_t CC3NEN : 1;
- __IOM uint32_t CC3NPOL : 1;
- __IOM uint32_t CC4EN : 1;
- __IOM uint32_t CC4POL : 1;
- __IM uint32_t RESERVED : 18;
- } CCEN_B;
- };
- /* @brief Counting register */
- union
- {
- __IOM uint32_t CNT;
- struct
- {
- __IOM uint32_t CNT : 16;
- __IM uint32_t RESERVED : 16;
- } CNT_B;
- };
- /* @brief Division register */
- union
- {
- __IOM uint32_t PSC;
- struct
- {
- __IOM uint32_t PSC : 16;
- __IM uint32_t RESERVED : 16;
- } PSC_B;
- };
- /* @brief Automatic reload register */
- union
- {
- __IOM uint32_t AUTORLD;
- struct
- {
- __IOM uint32_t AUTORLD : 16;
- __IM uint32_t RESERVED : 16;
- } AUTORLD_B;
- };
- /* @brief Repeat count register */
- union
- {
- __IOM uint32_t REPCNT;
- struct
- {
- __IOM uint32_t REPCNT : 8;
- __IM uint32_t RESERVED : 24;
- } REPCNT_B;
- };
- /* @brief Capture comparison register channel 1 */
- union
- {
- __IOM uint32_t CC1;
- struct
- {
- __IOM uint32_t CC1 : 16;
- __IM uint32_t RESERVED : 16;
- } CC1_B;
- };
- /* @brief Capture comparison register channel 2 */
- union
- {
- __IOM uint32_t CC2;
- struct
- {
- __IOM uint32_t CC2 : 16;
- __IM uint32_t RESERVED : 16;
- } CC2_B;
- };
- /* @brief Capture comparison register channel 3 */
- union
- {
- __IOM uint32_t CC3;
- struct
- {
- __IOM uint32_t CC3 : 16;
- __IM uint32_t RESERVED : 16;
- } CC3_B;
- };
- /* @brief Capture comparison register channel 4 */
- union
- {
- __IOM uint32_t CC4;
- struct
- {
- __IOM uint32_t CC4 : 16;
- __IM uint32_t RESERVED : 16;
- } CC4_B;
- };
- /* @brief Brake and dead zone registers */
- union
- {
- __IOM uint32_t BDT;
- struct
- {
- __IOM uint32_t DTS : 8;
- __IOM uint32_t LOCKCFG : 2;
- __IOM uint32_t IMOS : 1;
- __IOM uint32_t RMOS : 1;
- __IOM uint32_t BRKEN : 1;
- __IOM uint32_t BRKPOL : 1;
- __IOM uint32_t AOEN : 1;
- __IOM uint32_t MOEN : 1;
- __IM uint32_t RESERVED : 16;
- } BDT_B;
- };
- /* @brief DMA control register */
- union
- {
- __IOM uint32_t DCTRL;
- struct
- {
- __IOM uint32_t DBADDR : 5;
- __IM uint32_t RESERVED1 : 3;
- __IOM uint32_t DBLEN : 5;
- __IM uint32_t RESERVED2 : 19;
- } DCTRL_B;
- };
- /* @brief Consecutive DMA addresses */
- union
- {
- __IOM uint32_t DMADDR;
- struct
- {
- __IOM uint32_t DMADDR : 16;
- __IM uint32_t RESERVED2 : 16;
- } DMADDR_B;
- };
- } TMR_T;
- /**
- * @brief Direct Memory Access register(DMA)
- */
- typedef struct
- {
- /* @brief Interrupt status register */
- union
- {
- __IM uint32_t INTSTS;
- struct
- {
- __IM uint32_t GINTFLG1 : 1;
- __IM uint32_t TCFLG1 : 1;
- __IM uint32_t HTFLG1 : 1;
- __IM uint32_t TERRFLG1 : 1;
- __IM uint32_t GINTFLG2 : 1;
- __IM uint32_t TCFLG2 : 1;
- __IM uint32_t HTFLG2 : 1;
- __IM uint32_t TERRFLG2 : 1;
- __IM uint32_t GINTFLG3 : 1;
- __IM uint32_t TCFLG3 : 1;
- __IM uint32_t HTFLG3 : 1;
- __IM uint32_t TERRFLG3 : 1;
- __IM uint32_t GINTFLG4 : 1;
- __IM uint32_t TCFLG4 : 1;
- __IM uint32_t HTFLG4 : 1;
- __IM uint32_t TERRFLG4 : 1;
- __IM uint32_t GINTFLG5 : 1;
- __IM uint32_t TCFLG5 : 1;
- __IM uint32_t HTFLG5 : 1;
- __IM uint32_t TERRFLG5 : 1;
- __IM uint32_t GINTFLG6 : 1;
- __IM uint32_t TCFLG6 : 1;
- __IM uint32_t HTFLG6 : 1;
- __IM uint32_t TERRFLG6 : 1;
- __IM uint32_t GINTFLG7 : 1;
- __IM uint32_t TCFLG7 : 1;
- __IM uint32_t HTFLG7 : 1;
- __IM uint32_t TERRFLG7 : 1;
- __IM uint32_t RESERVED : 4;
- } INTSTS_B;
- };
- /* @brief Interrupt reset register */
- union
- {
- __OM uint32_t INTFCLR;
- struct
- {
- __OM uint32_t GINTCLR1 : 1;
- __OM uint32_t TCCLR1 : 1;
- __OM uint32_t HTCLR1 : 1;
- __OM uint32_t TERRCLR1 : 1;
- __OM uint32_t GINTCLR2 : 1;
- __OM uint32_t TCCLR2 : 1;
- __OM uint32_t HTCLR2 : 1;
- __OM uint32_t TERRCLR2 : 1;
- __OM uint32_t GINTCLR3 : 1;
- __OM uint32_t TCCLR3 : 1;
- __OM uint32_t HTCLR3 : 1;
- __OM uint32_t TERRCLR3 : 1;
- __OM uint32_t GINTCLR4 : 1;
- __OM uint32_t TCCLR4 : 1;
- __OM uint32_t HTCLR4 : 1;
- __OM uint32_t TERRCLR4 : 1;
- __OM uint32_t GINTCLR5 : 1;
- __OM uint32_t TCCLR5 : 1;
- __OM uint32_t HTCLR5 : 1;
- __OM uint32_t TERRCLR5 : 1;
- __OM uint32_t GINTCLR6 : 1;
- __OM uint32_t TCCLR6 : 1;
- __OM uint32_t HTCLR6 : 1;
- __OM uint32_t TERRCLR6 : 1;
- __OM uint32_t GINTCLR7 : 1;
- __OM uint32_t TCCLR7 : 1;
- __OM uint32_t HTCLR7 : 1;
- __OM uint32_t TERRCLR7 : 1;
- __IM uint32_t RESERVED : 4;
- } INTFCLR_B;
- };
- } DMA_T;
- /**
- * @brief DMA Channel register
- */
- typedef struct
- {
- /* @brief DMA Channel setup register */
- union
- {
- __IOM uint32_t CHCFG;
- struct
- {
- __IOM uint32_t CHEN : 1;
- __IOM uint32_t TCINTEN : 1;
- __IOM uint32_t HTINTEN : 1;
- __IOM uint32_t TERRINTEN : 1;
- __IOM uint32_t DIRCFG : 1;
- __IOM uint32_t CIRMODE : 1;
- __IOM uint32_t PERIMODE : 1;
- __IOM uint32_t MIMODE : 1;
- __IOM uint32_t PERSIZE : 2;
- __IOM uint32_t MEMSIZE : 2;
- __IOM uint32_t CHPL : 2;
- __IOM uint32_t M2MMODE : 1;
- __IM uint32_t RESERVED : 17;
- } CHCFG_B;
- };
- /* @brief DMA Channel transfer number register*/
- union
- {
- __IOM uint32_t CHNDATA;
- struct
- {
- __IOM uint32_t NDATA : 16;
- __IM uint32_t RESERVED : 16;
- } CHNDATA_B;
- };
- /* @brief DMA Channel peripheral address register */
- union
- {
- __IOM uint32_t CHPADDR;
- struct
- {
- __IOM uint32_t PERADDR : 32;
- } CHPADDR_B;
- };
- /* @brief DMA Channel memory address register */
- union
- {
- __IOM uint32_t CHMADDR;
- struct
- {
- __IOM uint32_t MEMADDR : 32;
- } CHMADDR_B;
- };
- } DMA_Channel_T;
- /**
- * @brief CAN sending mailbox
- */
- typedef struct
- {
- /* @brief CAN Each mailbox contains the sending mailbox identifier register */
- union
- {
- __IOM uint32_t TXMID;
- struct
- {
- __IOM uint32_t TXMREQ : 1;
- __IOM uint32_t TXRFREQ : 1;
- __IOM uint32_t IDTYPESEL : 1;
- __IOM uint32_t EXTID : 18;
- __IOM uint32_t STDID : 11;
- } TXMID_B;
- };
- /* @brief CAN Send the mailbox data length and timestamp register */
- union
- {
- __IOM uint32_t TXDLEN;
- struct
- {
- __IOM uint32_t DLCODE : 4;
- __IOM uint32_t RESERVED : 28;
- } TXDLEN_B;
- };
- /* @brief CAN Send mailbox low byte data register */
- union
- {
- __IOM uint32_t TXMDL;
- struct
- {
- __IOM uint32_t DATABYTE0 : 8;
- __IOM uint32_t DATABYTE1 : 8;
- __IOM uint32_t DATABYTE2 : 8;
- __IOM uint32_t DATABYTE3 : 8;
- } TXMDL_B;
- };
- /* @brief CAN Send mailbox High byte data register */
- union
- {
- __IOM uint32_t TXMDH;
- struct
- {
- __IOM uint32_t DATABYTE4 : 8;
- __IOM uint32_t DATABYTE5 : 8;
- __IOM uint32_t DATABYTE6 : 8;
- __IOM uint32_t DATABYTE7 : 8;
- } TXMDH_B;
- };
- } CAN_TxMailBox_T;
- /**
- * @brief CAN receive mailbox
- */
- typedef struct
- {
- /* @brief CAN Each mailbox contains the receive mailbox identifier register */
- union
- {
- __IM uint32_t RXMID;
- struct
- {
- __IM uint32_t RESERVED : 1;
- __IM uint32_t RFTXREQ : 1;
- __IM uint32_t IDTYPESEL : 1;
- __IM uint32_t EXTID : 18;
- __IM uint32_t STDID : 11;
- } RXMID_B;
- };
- /* @brief CAN receive the mailbox data length and timestamp register */
- union
- {
- __IM uint32_t RXDLEN;
- struct
- {
- __IM uint32_t DLCODE : 4;
- __IM uint32_t RESERVED1 : 4;
- __IM uint32_t FMIDX : 8;
- __IM uint32_t RESERVED2 : 16;
- } RXDLEN_B;
- };
- /* @brief CAN receive mailbox low byte data register */
- union
- {
- __IM uint32_t RXMDL;
- struct
- {
- __IM uint32_t DATABYTE0 : 8;
- __IM uint32_t DATABYTE1 : 8;
- __IM uint32_t DATABYTE2 : 8;
- __IM uint32_t DATABYTE3 : 8;
- } RXMDL_B;
- };
- /* @briefCAN receive mailbox High byte data register */
- union
- {
- __IOM uint32_t RXMDH;
- struct
- {
- __IM uint32_t DATABYTE4 : 8;
- __IM uint32_t DATABYTE5 : 8;
- __IM uint32_t DATABYTE6 : 8;
- __IM uint32_t DATABYTE7 : 8;
- } RXMDH_B;
- };
- } CAN_RxMailBox_T;
- /**
- * @brief CAN Filter bank register
- */
- typedef struct
- {
- /* @brief CAN Filter bank register 1 */
- union
- {
- __IOM uint32_t FBANK1;
- struct
- {
- __IOM uint32_t FBIT0 : 1;
- __IOM uint32_t FBIT1 : 1;
- __IOM uint32_t FBIT2 : 1;
- __IOM uint32_t FBIT3 : 1;
- __IOM uint32_t FBIT4 : 1;
- __IOM uint32_t FBIT5 : 1;
- __IOM uint32_t FBIT6 : 1;
- __IOM uint32_t FBIT7 : 1;
- __IOM uint32_t FBIT8 : 1;
- __IOM uint32_t FBIT9 : 1;
- __IOM uint32_t FBIT10 : 1;
- __IOM uint32_t FBIT11 : 1;
- __IOM uint32_t FBIT12 : 1;
- __IOM uint32_t FBIT13 : 1;
- __IOM uint32_t FBIT14 : 1;
- __IOM uint32_t FBIT15 : 1;
- __IOM uint32_t FBIT16 : 1;
- __IOM uint32_t FBIT17 : 1;
- __IOM uint32_t FBIT18 : 1;
- __IOM uint32_t FBIT19 : 1;
- __IOM uint32_t FBIT20 : 1;
- __IOM uint32_t FBIT21 : 1;
- __IOM uint32_t FBIT22 : 1;
- __IOM uint32_t FBIT23 : 1;
- __IOM uint32_t FBIT24 : 1;
- __IOM uint32_t FBIT25 : 1;
- __IOM uint32_t FBIT26 : 1;
- __IOM uint32_t FBIT27 : 1;
- __IOM uint32_t FBIT28 : 1;
- __IOM uint32_t FBIT29 : 1;
- __IOM uint32_t FBIT30 : 1;
- __IOM uint32_t FBIT31 : 1;
- } FBANK1_B;
- };
- /* @brief CAN Filter bank register 2 */
- union
- {
- __IOM uint32_t FBANK2;
- struct
- {
- __IOM uint32_t FBIT0 : 1;
- __IOM uint32_t FBIT1 : 1;
- __IOM uint32_t FBIT2 : 1;
- __IOM uint32_t FBIT3 : 1;
- __IOM uint32_t FBIT4 : 1;
- __IOM uint32_t FBIT5 : 1;
- __IOM uint32_t FBIT6 : 1;
- __IOM uint32_t FBIT7 : 1;
- __IOM uint32_t FBIT8 : 1;
- __IOM uint32_t FBIT9 : 1;
- __IOM uint32_t FBIT10 : 1;
- __IOM uint32_t FBIT11 : 1;
- __IOM uint32_t FBIT12 : 1;
- __IOM uint32_t FBIT13 : 1;
- __IOM uint32_t FBIT14 : 1;
- __IOM uint32_t FBIT15 : 1;
- __IOM uint32_t FBIT16 : 1;
- __IOM uint32_t FBIT17 : 1;
- __IOM uint32_t FBIT18 : 1;
- __IOM uint32_t FBIT19 : 1;
- __IOM uint32_t FBIT20 : 1;
- __IOM uint32_t FBIT21 : 1;
- __IOM uint32_t FBIT22 : 1;
- __IOM uint32_t FBIT23 : 1;
- __IOM uint32_t FBIT24 : 1;
- __IOM uint32_t FBIT25 : 1;
- __IOM uint32_t FBIT26 : 1;
- __IOM uint32_t FBIT27 : 1;
- __IOM uint32_t FBIT28 : 1;
- __IOM uint32_t FBIT29 : 1;
- __IOM uint32_t FBIT30 : 1;
- __IOM uint32_t FBIT31 : 1;
- } FBANK2_B;
- };
- } CAN_FilterRegister_T;
- /**
- * @brief Controller Area Network(CAN)
- */
- typedef struct
- {
- /* @brief CAN Master control register */
- union
- {
- __IOM uint32_t MCTRL;
- struct
- {
- __IOM uint32_t INITREQ : 1;
- __IOM uint32_t SLEEPREQ : 1;
- __IOM uint32_t TXFPCFG : 1;
- __IOM uint32_t RXFLOCK : 1;
- __IOM uint32_t ARTXMD : 1;
- __IOM uint32_t AWUPCFG : 1;
- __IOM uint32_t ALBOFFM : 1;
- __IM uint32_t RESERVED1 : 8;
- __IOM uint32_t SWRST : 1;
- __IOM uint32_t DBGFRZE : 1;
- __IM uint32_t RESERVED2 : 15;
- } MCTRL_B;
- };
- /* @brief CAN Master States register */
- union
- {
- __IOM uint32_t MSTS;
- struct
- {
- __IM uint32_t INITFLG : 1;
- __IM uint32_t SLEEPFLG : 1;
- __IOM uint32_t ERRIFLG : 1;
- __IOM uint32_t WUPIFLG : 1;
- __IOM uint32_t SLEEPIFLG : 1;
- __IM uint32_t RESERVED1 : 3;
- __IM uint32_t TXMFLG : 1;
- __IM uint32_t RXMFLG : 1;
- __IM uint32_t LSAMVALUE : 1;
- __IM uint32_t RXSIGL : 1;
- __IM uint32_t RESERVED2 : 20;
- } MSTS_B;
- };
- /* @brief CAN Send States register */
- union
- {
- __IOM uint32_t TXSTS;
- struct
- {
- __IOM uint32_t REQCFLG0 : 1;
- __IOM uint32_t TXSUSFLG0 : 1;
- __IOM uint32_t ARBLSTFLG0 : 1;
- __IOM uint32_t TXERRFLG0 : 1;
- __IM uint32_t RESERVED1 : 3;
- __IOM uint32_t ABREQFLG0 : 1;
- __IOM uint32_t REQCFLG1 : 1;
- __IOM uint32_t TXSUSFLG1 : 1;
- __IOM uint32_t ARBLSTFLG1 : 1;
- __IOM uint32_t TXERRFLG1 : 1;
- __IM uint32_t RESERVED2 : 3;
- __IOM uint32_t ABREQFLG1 : 1;
- __IOM uint32_t REQCFLG2 : 1;
- __IOM uint32_t TXSUSFLG2 : 1;
- __IOM uint32_t ARBLSTFLG2 : 1;
- __IOM uint32_t TXERRFLG2 : 1;
- __IM uint32_t RESERVED3 : 3;
- __IOM uint32_t ABREQFLG2 : 1;
- __IM uint32_t EMNUM : 2;
- __IM uint32_t TXMEFLG0 : 1;
- __IM uint32_t TXMEFLG1 : 1;
- __IM uint32_t TXMEFLG2 : 1;
- __IM uint32_t LOWESTP0 : 1;
- __IM uint32_t LOWESTP1 : 1;
- __IM uint32_t LOWESTP2 : 1;
- } TXSTS_B;
- };
- /* @brief CAN Receive FIFO 0 register */
- union
- {
- __IOM uint32_t RXF0;
- struct
- {
- __IM uint32_t FMNUM0 : 2;
- __IM uint32_t RESERVED : 1;
- __IOM uint32_t FFULLFLG0 : 1;
- __IOM uint32_t FOVRFLG0 : 1;
- __IOM uint32_t RFOM0 : 1;
- __IM uint32_t RESERVED1 : 26;
- } RXF0_B;
- };
- /* @brief CAN Receive FIFO 1 register */
- union
- {
- __IOM uint32_t RXF1;
- struct
- {
- __IM uint32_t FMNUM1 : 2;
- __IM uint32_t RESERVED1 : 1;
- __IOM uint32_t FFULLFLG1 : 1;
- __IOM uint32_t FOVRFLG1 : 1;
- __IOM uint32_t RFOM1 : 1;
- __IM uint32_t RESERVED2 : 26;
- } RXF1_B;
- };
- /* @brief CAN Interrupts register */
- union
- {
- __IOM uint32_t INTEN;
- struct
- {
- __IOM uint32_t TXMEIEN : 1;
- __IOM uint32_t FMIEN0 : 1;
- __IOM uint32_t FFULLIEN0 : 1;
- __IOM uint32_t FOVRIEN0 : 1;
- __IOM uint32_t FMIEN1 : 1;
- __IOM uint32_t FFULLIEN1 : 1;
- __IOM uint32_t FOVRIEN1 : 1;
- __IM uint32_t RESERVED1 : 1;
- __IOM uint32_t ERRWIEN : 1;
- __IOM uint32_t ERRPIEN : 1;
- __IOM uint32_t BOFFIEN : 1;
- __IOM uint32_t LECIEN : 1;
- __IM uint32_t RESERVED2 : 3;
- __IOM uint32_t ERRIEN : 1;
- __IOM uint32_t WUPIEN : 1;
- __IOM uint32_t SLEEPIEN : 1;
- __IM uint32_t RESERVED3 : 14;
- } INTEN_B;
- };
- /* @brief CAN Error States register */
- union
- {
- __IOM uint32_t ERRSTS;
- struct
- {
- __IM uint32_t ERRWFLG : 1;
- __IM uint32_t ERRPFLG : 1;
- __IM uint32_t BOFLG : 1;
- __IM uint32_t RESERVED1 : 1;
- __IOM uint32_t LERRC : 3;
- __IM uint32_t RESERVED2 : 9;
- __IM uint32_t TXERRCNT : 8;
- __IM uint32_t RXERRCNT : 8;
- } ERRSTS_B;
- };
- /* @brief CAN Bit Time register */
- union
- {
- __IOM uint32_t BITTIM;
- struct
- {
- __IOM uint32_t BRPSC : 10;
- __IM uint32_t RESERVED1 : 6;
- __IOM uint32_t TIMSEG1 : 4;
- __IOM uint32_t TIMSEG2 : 3;
- __IM uint32_t RESERVED2 : 1;
- __IOM uint32_t RSYNJW : 2;
- __IM uint32_t RESERVED3 : 4;
- __IOM uint32_t LBKMEN : 1;
- __IOM uint32_t SILMEN : 1;
- } BITTIM_B;
- };
- __IM uint32_t RESERVED0[88];
- CAN_TxMailBox_T sTxMailBox[3];
- CAN_RxMailBox_T sRxMailBox[2];
- __IM uint32_t RESERVED1[12];
- /* @brief CAN Filter the master control register */
- union
- {
- __IOM uint32_t FCTRL;
- struct
- {
- __IOM uint32_t FINITEN : 1;
- __IM uint32_t RESERVED : 7;
- __IOM uint32_t CAN2BN : 6;
- __IM uint32_t RESERVED1 : 18;
- } FCTRL_B;
- };
- /* @brief CAN Filter register */
- union
- {
- __IOM uint32_t FMCFG;
- struct
- {
- __IOM uint32_t FMCFG0 : 1;
- __IOM uint32_t FMCFG1 : 1;
- __IOM uint32_t FMCFG2 : 1;
- __IOM uint32_t FMCFG3 : 1;
- __IOM uint32_t FMCFG4 : 1;
- __IOM uint32_t FMCFG5 : 1;
- __IOM uint32_t FMCFG6 : 1;
- __IOM uint32_t FMCFG7 : 1;
- __IOM uint32_t FMCFG8 : 1;
- __IOM uint32_t FMCFG9 : 1;
- __IOM uint32_t FMCFG10 : 1;
- __IOM uint32_t FMCFG11 : 1;
- __IOM uint32_t FMCFG12 : 1;
- __IOM uint32_t FMCFG13 : 1;
- __IOM uint32_t FMCFG14 : 1;
- __IOM uint32_t FMCFG15 : 1;
- __IOM uint32_t FMCFG16 : 1;
- __IOM uint32_t FMCFG17 : 1;
- __IOM uint32_t FMCFG18 : 1;
- __IOM uint32_t FMCFG19 : 1;
- __IOM uint32_t FMCFG20 : 1;
- __IOM uint32_t FMCFG21 : 1;
- __IOM uint32_t FMCFG22 : 1;
- __IOM uint32_t FMCFG23 : 1;
- __IOM uint32_t FMCFG24 : 1;
- __IOM uint32_t FMCFG25 : 1;
- __IOM uint32_t FMCFG26 : 1;
- __IOM uint32_t FMCFG27 : 1;
- __IM uint32_t RESERVED : 4;
- } FMCFG_B;
- };
- __IM uint32_t RESERVED2;
- /* @brief CAN Filter bit scale register */
- union
- {
- __IOM uint32_t FSCFG;
- struct
- {
- __IOM uint32_t FSCFG0 : 1;
- __IOM uint32_t FSCFG1 : 1;
- __IOM uint32_t FSCFG2 : 1;
- __IOM uint32_t FSCFG3 : 1;
- __IOM uint32_t FSCFG4 : 1;
- __IOM uint32_t FSCFG5 : 1;
- __IOM uint32_t FSCFG6 : 1;
- __IOM uint32_t FSCFG7 : 1;
- __IOM uint32_t FSCFG8 : 1;
- __IOM uint32_t FSCFG9 : 1;
- __IOM uint32_t FSCFG10 : 1;
- __IOM uint32_t FSCFG11 : 1;
- __IOM uint32_t FSCFG12 : 1;
- __IOM uint32_t FSCFG13 : 1;
- __IOM uint32_t FSCFG14 : 1;
- __IOM uint32_t FSCFG15 : 1;
- __IOM uint32_t FSCFG16 : 1;
- __IOM uint32_t FSCFG17 : 1;
- __IOM uint32_t FSCFG18 : 1;
- __IOM uint32_t FSCFG19 : 1;
- __IOM uint32_t FSCFG20 : 1;
- __IOM uint32_t FSCFG21 : 1;
- __IOM uint32_t FSCFG22 : 1;
- __IOM uint32_t FSCFG23 : 1;
- __IOM uint32_t FSCFG24 : 1;
- __IOM uint32_t FSCFG25 : 1;
- __IOM uint32_t FSCFG26 : 1;
- __IOM uint32_t FSCFG27 : 1;
- __IM uint32_t RESERVED : 4;
- } FSCFG_B;
- };
- __IM uint32_t RESERVED3;
- /* @brief CAN Filter FIFO associated registers */
- union
- {
- __IOM uint32_t FFASS;
- struct
- {
- __IOM uint32_t FFASS0 : 1;
- __IOM uint32_t FFASS1 : 1;
- __IOM uint32_t FFASS2 : 1;
- __IOM uint32_t FFASS3 : 1;
- __IOM uint32_t FFASS4 : 1;
- __IOM uint32_t FFASS5 : 1;
- __IOM uint32_t FFASS6 : 1;
- __IOM uint32_t FFASS7 : 1;
- __IOM uint32_t FFASS8 : 1;
- __IOM uint32_t FFASS9 : 1;
- __IOM uint32_t FFASS10 : 1;
- __IOM uint32_t FFASS11 : 1;
- __IOM uint32_t FFASS12 : 1;
- __IOM uint32_t FFASS13 : 1;
- __IOM uint32_t FFASS14 : 1;
- __IOM uint32_t FFASS15 : 1;
- __IOM uint32_t FFASS16 : 1;
- __IOM uint32_t FFASS17 : 1;
- __IOM uint32_t FFASS18 : 1;
- __IOM uint32_t FFASS19 : 1;
- __IOM uint32_t FFASS20 : 1;
- __IOM uint32_t FFASS21 : 1;
- __IOM uint32_t FFASS22 : 1;
- __IOM uint32_t FFASS23 : 1;
- __IOM uint32_t FFASS24 : 1;
- __IOM uint32_t FFASS25 : 1;
- __IOM uint32_t FFASS26 : 1;
- __IOM uint32_t FFASS27 : 1;
- __IM uint32_t RESERVED : 4;
- } FFASS_B;
- };
- __IM uint32_t RESERVED4;
- /* @brief CAN Filter activation register */
- union
- {
- __IOM uint32_t FACT;
- struct
- {
- __IOM uint32_t FACT0 : 1;
- __IOM uint32_t FACT1 : 1;
- __IOM uint32_t FACT2 : 1;
- __IOM uint32_t FACT3 : 1;
- __IOM uint32_t FACT4 : 1;
- __IOM uint32_t FACT5 : 1;
- __IOM uint32_t FACT6 : 1;
- __IOM uint32_t FACT7 : 1;
- __IOM uint32_t FACT8 : 1;
- __IOM uint32_t FACT9 : 1;
- __IOM uint32_t FACT10 : 1;
- __IOM uint32_t FACT11 : 1;
- __IOM uint32_t FACT12 : 1;
- __IOM uint32_t FACT13 : 1;
- __IOM uint32_t FACT14 : 1;
- __IOM uint32_t FACT15 : 1;
- __IOM uint32_t FACT16 : 1;
- __IOM uint32_t FACT17 : 1;
- __IOM uint32_t FACT18 : 1;
- __IOM uint32_t FACT19 : 1;
- __IOM uint32_t FACT20 : 1;
- __IOM uint32_t FACT21 : 1;
- __IOM uint32_t FACT22 : 1;
- __IOM uint32_t FACT23 : 1;
- __IOM uint32_t FACT24 : 1;
- __IOM uint32_t FACT25 : 1;
- __IOM uint32_t FACT26 : 1;
- __IOM uint32_t FACT27 : 1;
- __IM uint32_t RESERVED : 4;
- } FACT_B;
- };
- __IM uint32_t RESERVED5[8];
- CAN_FilterRegister_T sFilterRegister[28];
- } CAN_T;
- /**
- * @brief I2C register (I2C)
- */
- typedef struct
- {
- /* @brief Control register 1 */
- union
- {
- __IOM uint32_t CTRL1;
- struct
- {
- __IOM uint32_t I2CEN : 1;
- __IOM uint32_t SMBEN : 1;
- __IM uint32_t RESERVED1 : 1;
- __IOM uint32_t SMBTCFG : 1;
- __IOM uint32_t ARPEN : 1;
- __IOM uint32_t PECEN : 1;
- __IOM uint32_t SRBEN : 1;
- __IOM uint32_t CLKSTRETCHD : 1;
- __IOM uint32_t START : 1;
- __IOM uint32_t STOP : 1;
- __IOM uint32_t ACKEN : 1;
- __IOM uint32_t ACKPOS : 1;
- __IOM uint32_t PEC : 1;
- __IOM uint32_t ALERTEN : 1;
- __IM uint32_t RESERVED2 : 1;
- __IOM uint32_t SWRST : 1;
- __IM uint32_t RESERVED3 : 16;
- } CTRL1_B;
- } ;
- /* @brief Control register 2 */
- union
- {
- __IOM uint32_t CTRL2;
- struct
- {
- __IOM uint32_t CLKFCFG : 6;
- __IM uint32_t RESERVED1 : 2;
- __IOM uint32_t ERRIEN : 1;
- __IOM uint32_t EVIEN : 1;
- __IOM uint32_t BUFIEN : 1;
- __IOM uint32_t DMAEN : 1;
- __IOM uint32_t LTCFG : 1;
- __IM uint32_t RESERVED2 : 19;
- } CTRL2_B;
- } ;
- /* @brief Slave machine address register 1 */
- union
- {
- __IOM uint32_t SADDR1;
- struct
- {
- __IOM uint32_t ADDR0 : 1;
- __IOM uint32_t ADDR1_7 : 7;
- __IOM uint32_t ADDR8_9 : 2;
- __IM uint32_t RESERVED1 : 5;
- __IOM uint32_t ADDRLEN : 1;
- __IM uint32_t RESERVED2 : 16;
- } SADDR1_B;
- };
- /* @brief Slave machine address register 2 */
- union
- {
- __IOM uint32_t SADDR2;
- struct
- {
- __IOM uint32_t ADDRNUM : 1;
- __IOM uint32_t ADDR2 : 7;
- __IM uint32_t RESERVED : 24;
- } SADDR2_B;
- };
- /* @brief Cache data register */
- union
- {
- __IOM uint32_t DATA;
- struct
- {
- __IOM uint32_t DATA : 8;
- __IM uint32_t RESERVED : 24;
- } DATA_B;
- };
- /* @brief Status register 1 */
- union
- {
- __IOM uint32_t STS1;
- struct
- {
- __IM uint32_t STARTFLG : 1;
- __IM uint32_t ADDRFLG : 1;
- __IM uint32_t BTCFLG : 1;
- __IM uint32_t ADDR10FLG : 1;
- __IM uint32_t STOPFLG : 1;
- __IM uint32_t RESERVED1 : 1;
- __IM uint32_t RXBNEFLG : 1;
- __IM uint32_t TXBEFLG : 1;
- __IOM uint32_t BERRFLG : 1;
- __IOM uint32_t ALFLG : 1;
- __IOM uint32_t AEFLG : 1;
- __IOM uint32_t OVRURFLG : 1;
- __IOM uint32_t PECEFLG : 1;
- __IM uint32_t RESERVED2 : 1;
- __IOM uint32_t TTEFLG : 1;
- __IOM uint32_t SMBALTFLG : 1;
- __IM uint32_t RESERVED3 : 16;
- } STS1_B;
- };
- /* @brief Status register 2 */
- union
- {
- __IOM uint32_t STS2;
- struct
- {
- __IM uint32_t MSFLG : 1;
- __IM uint32_t BUSBSYFLG : 1;
- __IM uint32_t TRFLG : 1;
- __IM uint32_t RESERVED1 : 1;
- __IM uint32_t GENCALLFLG : 1;
- __IM uint32_t SMBDADDRFLG : 1;
- __IM uint32_t SMMHADDR : 1;
- __IM uint32_t DUALADDRFLG : 1;
- __IM uint32_t PECVALUE : 8;
- __IM uint32_t RESERVED2 : 16;
- } STS2_B;
- };
- /* @brief Clock control register */
- union
- {
- __IOM uint32_t CLKCTRL;
- struct
- {
- __IOM uint32_t CLKS : 12;
- __IM uint32_t RESERVED1 : 2;
- __IOM uint32_t FDUTYCFG : 1;
- __IOM uint32_t SPEEDCFG : 1;
- __IM uint32_t RESERVED2 : 16;
- } CLKCTRL_B;
- };
- /* @brief Maximum rise time */
- union
- {
- __IOM uint32_t RISETMAX;
- struct
- {
- __IOM uint32_t RISETMAX : 6;
- __IM uint32_t RESERVED : 26;
- } RISETMAX_B;
- };
- __IM uint32_t RESERVED[55];
- /* @brief I2C Switching register */
- union
- {
- __IOM uint32_t I2C_SWITCH;
- struct
- {
- __IOM uint32_t I2C_SWITCH : 1;
- __IM uint32_t RESERVED1 : 31;
- } SWITCH_B;
- };
- } I2C_T;
- typedef struct
- {
- __IOM uint16_t RDP;
- __IOM uint16_t USER;
- __IOM uint16_t Data0;
- __IOM uint16_t Data1;
- __IOM uint16_t WRP0;
- __IOM uint16_t WRP1;
- __IOM uint16_t WRP2;
- __IOM uint16_t WRP3;
- } OB_T;
- /**
- * @brief Analog to Digital Converter(ADC)
- */
- typedef struct
- {
- /* Status register */
- union
- {
- __IOM uint32_t STS;
- struct
- {
- __IOM uint32_t AWDFLG : 1;
- __IOM uint32_t EOCFLG : 1;
- __IOM uint32_t INJEOCFLG : 1;
- __IOM uint32_t INJCSFLG : 1;
- __IOM uint32_t REGCSFLG : 1;
- __IM uint32_t RESERVED : 27;
- } STS_B;
- };
- /* Control register1*/
- union
- {
- __IOM uint32_t CTRL1;
- struct
- {
- __IOM uint32_t AWDCHSEL : 5;
- __IOM uint32_t EOCIEN : 1;
- __IOM uint32_t AWDIEN : 1;
- __IOM uint32_t INJEOCIEN : 1;
- __IOM uint32_t SCANEN : 1;
- __IOM uint32_t AWDSGLEN : 1;
- __IOM uint32_t INJGACEN : 1;
- __IOM uint32_t REGDISCEN : 1;
- __IOM uint32_t INJDISCEN : 1;
- __IOM uint32_t DISCNUMCFG : 3;
- __IOM uint32_t DUALMCFG : 4;
- __IM uint32_t RESERVED1 : 2;
- __IOM uint32_t INJAWDEN : 1;
- __IOM uint32_t REGAWDEN : 1;
- __IM uint32_t RESERVED2 : 8;
- } CTRL1_B;
- };
- /* Control register2*/
- union
- {
- __IOM uint32_t CTRL2;
- struct
- {
- __IOM uint32_t ADCEN : 1;
- __IOM uint32_t CONTCEN : 1;
- __IOM uint32_t CAL : 1;
- __IOM uint32_t CALRST : 1;
- __IM uint32_t RESERVED1 : 4;
- __IOM uint32_t DMAEN : 1;
- __IM uint32_t RESERVED2 : 2;
- __IOM uint32_t DALIGNCFG : 1;
- __IOM uint32_t INJGEXTTRGSEL : 3;
- __IOM uint32_t INJEXTTRGEN : 1;
- __IM uint32_t RESERVED3 : 1;
- __IOM uint32_t REGEXTTRGSEL : 3;
- __IOM uint32_t REGEXTTRGEN : 1;
- __IOM uint32_t INJSWSC : 1;
- __IOM uint32_t REGSWSC : 1;
- __IOM uint32_t TSVREFEN : 1;
- __IM uint32_t RESERVED4 : 8;
- } CTRL2_B;
- };
- /* Sample time register1*/
- union
- {
- __IOM uint32_t SMPTIM1;
- struct
- {
- __IOM uint32_t SMPCYCCFG10 : 3;
- __IOM uint32_t SMPCYCCFG11 : 3;
- __IOM uint32_t SMPCYCCFG12 : 3;
- __IOM uint32_t SMPCYCCFG13 : 3;
- __IOM uint32_t SMPCYCCFG14 : 3;
- __IOM uint32_t SMPCYCCFG15 : 3;
- __IOM uint32_t SMPCYCCFG16 : 3;
- __IOM uint32_t SMPCYCCFG17 : 3;
- __IM uint32_t RESERVED : 8;
- } SMPTIM1_B;
- };
- /* Sample time register2*/
- union
- {
- __IOM uint32_t SMPTIM2;
- struct
- {
- __IOM uint32_t SMPCYCCFG0 : 3;
- __IOM uint32_t SMPCYCCFG1 : 3;
- __IOM uint32_t SMPCYCCFG2 : 3;
- __IOM uint32_t SMPCYCCFG3 : 3;
- __IOM uint32_t SMPCYCCFG4 : 3;
- __IOM uint32_t SMPCYCCFG5 : 3;
- __IOM uint32_t SMPCYCCFG6 : 3;
- __IOM uint32_t SMPCYCCFG7 : 3;
- __IOM uint32_t SMPCYCCFG8 : 3;
- __IOM uint32_t SMPCYCCFG9 : 3;
- __IM uint32_t RESERVED : 2;
- } SMPTIM2_B;
- };
- /* Injected channel Data offset register1*/
- union
- {
- __IOM uint32_t INJDOF1;
- struct
- {
- __IOM uint32_t INJDOF1 : 12;
- __IM uint32_t RESERVED : 20;
- } INJDOF1_B;
- };
- /* Injected channel Data offset register2*/
- union
- {
- __IOM uint32_t INJDOF2;
- struct
- {
- __IOM uint32_t INJDOF2 : 12;
- __IM uint32_t RESERVED : 20;
- } INJDOF2_B;
- };
- /* Injected channel Data offset register3*/
- union
- {
- __IOM uint32_t INJDOF3;
- struct
- {
- __IOM uint32_t INJDOF3 : 12;
- __IM uint32_t RESERVED : 20;
- } INJDOF3_B;
- };
- /* Injected channel Data offset register4*/
- union
- {
- __IOM uint32_t INJDOF4;
- struct
- {
- __IOM uint32_t INJDOF4 : 12;
- __IM uint32_t RESERVED : 20;
- } INJDOF4_B;
- };
- /* Analog watchdog high threshold register*/
- union
- {
- __IOM uint32_t AWDHT;
- struct
- {
- __IOM uint32_t AWDHT : 12;
- __IM uint32_t RESERVED : 20;
- } AWDHT_B;
- };
- /* Analog watchdog low threshold register*/
- union
- {
- __IOM uint32_t AWDLT;
- struct
- {
- __IOM uint32_t AWDLT : 12;
- __IM uint32_t RESERVED : 20;
- } AWDLT_B;
- };
- /* Regular channel sequence register1*/
- union
- {
- __IOM uint32_t REGSEQ1;
- struct
- {
- __IOM uint32_t REGSEQC13 : 5;
- __IOM uint32_t REGSEQC14 : 5;
- __IOM uint32_t REGSEQC15 : 5;
- __IOM uint32_t REGSEQC16 : 5;
- __IOM uint32_t REGSEQLEN : 4;
- __IM uint32_t RESERVED : 8;
- } REGSEQ1_B;
- };
- /* Regular channel sequence register2*/
- union
- {
- __IOM uint32_t REGSEQ2;
- struct
- {
- __IOM uint32_t REGSEQC7 : 5;
- __IOM uint32_t REGSEQC8 : 5;
- __IOM uint32_t REGSEQC9 : 5;
- __IOM uint32_t REGSEQC10 : 5;
- __IOM uint32_t REGSEQC11 : 5;
- __IOM uint32_t REGSEQC12 : 5;
- __IM uint32_t RESERVED : 2;
- } REGSEQ2_B;
- };
- /* Regular channel sequence register3*/
- union
- {
- __IOM uint32_t REGSEQ3;
- struct
- {
- __IOM uint32_t REGSEQC1 : 5;
- __IOM uint32_t REGSEQC2 : 5;
- __IOM uint32_t REGSEQC3 : 5;
- __IOM uint32_t REGSEQC4 : 5;
- __IOM uint32_t REGSEQC5 : 5;
- __IOM uint32_t REGSEQC6 : 5;
- __IM uint32_t RESERVED : 2;
- } REGSEQ3_B;
- };
- /* Injected sequence register*/
- union
- {
- __IOM uint32_t INJSEQ;
- struct
- {
- __IOM uint32_t INJSEQC1 : 5;
- __IOM uint32_t INJSEQC2 : 5;
- __IOM uint32_t INJSEQC3 : 5;
- __IOM uint32_t INJSEQC4 : 5;
- __IOM uint32_t INJSEQLEN : 2;
- __IM uint32_t RESERVED : 10;
- } INJSEQ_B;
- };
- /* Injected Data register1*/
- union
- {
- __IM uint32_t INJDATA1;
- struct
- {
- __IM uint32_t INJDATA : 16;
- __IM uint32_t RESERVED : 16;
- } INJDATA1_B;
- };
- /* Injected Data register2*/
- union
- {
- __IM uint32_t INJDATA2;
- struct
- {
- __IM uint32_t INJDATA : 16;
- __IM uint32_t RESERVED : 16;
- } INJDATA2_B;
- };
- /* Injected Data register3*/
- union
- {
- __IM uint32_t INJDATA3;
- struct
- {
- __IM uint32_t INJDATA : 16;
- __IM uint32_t RESERVED : 16;
- } INJDATA3_B;
- };
- /* Injected Data register4*/
- union
- {
- __IM uint32_t INJDATA4;
- struct
- {
- __IM uint32_t INJDATA : 16;
- __IM uint32_t RESERVED : 16;
- } INJDATA4_B;
- };
- /* Regular Data register*/
- union
- {
- __IOM uint32_t REGDATA;
- struct
- {
- __IM uint32_t REGDATA : 16;
- __IM uint32_t ADC2DATA : 16;
- } REGDATA_B;
- };
- } ADC_T;
- /**
- * @brief External Interrupt(EINT)
- */
- typedef struct
- {
- /* Interrupt mask register */
- union
- {
- __IOM uint32_t IMASK;
- struct
- {
- __IOM uint32_t IMASK0 : 1;
- __IOM uint32_t IMASK1 : 1;
- __IOM uint32_t IMASK2 : 1;
- __IOM uint32_t IMASK3 : 1;
- __IOM uint32_t IMASK4 : 1;
- __IOM uint32_t IMASK5 : 1;
- __IOM uint32_t IMASK6 : 1;
- __IOM uint32_t IMASK7 : 1;
- __IOM uint32_t IMASK8 : 1;
- __IOM uint32_t IMASK9 : 1;
- __IOM uint32_t IMASK10 : 1;
- __IOM uint32_t IMASK11 : 1;
- __IOM uint32_t IMASK12 : 1;
- __IOM uint32_t IMASK13 : 1;
- __IOM uint32_t IMASK14 : 1;
- __IOM uint32_t IMASK15 : 1;
- __IOM uint32_t IMASK16 : 1;
- __IOM uint32_t IMASK17 : 1;
- __IOM uint32_t IMASK18 : 1;
- __IM uint32_t RESERVED : 12;
- } IMASK_B;
- };
- /* Event mask register */
- union
- {
- __IOM uint32_t EMASK;
- struct
- {
- __IOM uint32_t EMASK0 : 1;
- __IOM uint32_t EMASK1 : 1;
- __IOM uint32_t EMASK2 : 1;
- __IOM uint32_t EMASK3 : 1;
- __IOM uint32_t EMASK4 : 1;
- __IOM uint32_t EMASK5 : 1;
- __IOM uint32_t EMASK6 : 1;
- __IOM uint32_t EMASK7 : 1;
- __IOM uint32_t EMASK8 : 1;
- __IOM uint32_t EMASK9 : 1;
- __IOM uint32_t EMASK10 : 1;
- __IOM uint32_t EMASK11 : 1;
- __IOM uint32_t EMASK12 : 1;
- __IOM uint32_t EMASK13 : 1;
- __IOM uint32_t EMASK14 : 1;
- __IOM uint32_t EMASK15 : 1;
- __IOM uint32_t EMASK16 : 1;
- __IOM uint32_t EMASK17 : 1;
- __IOM uint32_t EMASK18 : 1;
- __IM uint32_t RESERVED : 12;
- } EEN_B;
- };
- /* Rising Trigger Event Enable register */
- union
- {
- __IOM uint32_t RTEN;
- struct
- {
- __IOM uint32_t RTEN0 : 1;
- __IOM uint32_t RTEN1 : 1;
- __IOM uint32_t RTEN2 : 1;
- __IOM uint32_t RTEN3 : 1;
- __IOM uint32_t RTEN4 : 1;
- __IOM uint32_t RTEN5 : 1;
- __IOM uint32_t RTEN6 : 1;
- __IOM uint32_t RTEN7 : 1;
- __IOM uint32_t RTEN8 : 1;
- __IOM uint32_t RTEN9 : 1;
- __IOM uint32_t RTEN10 : 1;
- __IOM uint32_t RTEN11 : 1;
- __IOM uint32_t RTEN12 : 1;
- __IOM uint32_t RTEN13 : 1;
- __IOM uint32_t RTEN14 : 1;
- __IOM uint32_t RTEN15 : 1;
- __IOM uint32_t RTEN16 : 1;
- __IOM uint32_t RTEN17 : 1;
- __IOM uint32_t RTEN18 : 1;
- __IM uint32_t RESERVED : 12;
- } RTEN_B;
- };
- /* Falling Trigger Event Enable register */
- union
- {
- __IOM uint32_t FTEN;
- struct
- {
- __IOM uint32_t FTEN0 : 1;
- __IOM uint32_t FTEN1 : 1;
- __IOM uint32_t FTEN2 : 1;
- __IOM uint32_t FTEN3 : 1;
- __IOM uint32_t FTEN4 : 1;
- __IOM uint32_t FTEN5 : 1;
- __IOM uint32_t FTEN6 : 1;
- __IOM uint32_t FTEN7 : 1;
- __IOM uint32_t FTEN8 : 1;
- __IOM uint32_t FTEN9 : 1;
- __IOM uint32_t FTEN10 : 1;
- __IOM uint32_t FTEN11 : 1;
- __IOM uint32_t FTEN12 : 1;
- __IOM uint32_t FTEN13 : 1;
- __IOM uint32_t FTEN14 : 1;
- __IOM uint32_t FTEN15 : 1;
- __IOM uint32_t FTEN16 : 1;
- __IOM uint32_t FTEN17 : 1;
- __IOM uint32_t FTEN18 : 1;
- __IM uint32_t RESERVED : 12;
- } FTEN_B;
- };
- /* Software Interrupt Enable register */
- union
- {
- __IOM uint32_t SWINTE;
- struct
- {
- __IOM uint32_t SWINTE0 : 1;
- __IOM uint32_t SWINTE1 : 1;
- __IOM uint32_t SWINTE2 : 1;
- __IOM uint32_t SWINTE3 : 1;
- __IOM uint32_t SWINTE4 : 1;
- __IOM uint32_t SWINTE5 : 1;
- __IOM uint32_t SWINTE6 : 1;
- __IOM uint32_t SWINTE7 : 1;
- __IOM uint32_t SWINTE8 : 1;
- __IOM uint32_t SWINTE9 : 1;
- __IOM uint32_t SWINTE10 : 1;
- __IOM uint32_t SWINTE11 : 1;
- __IOM uint32_t SWINTE12 : 1;
- __IOM uint32_t SWINTE13 : 1;
- __IOM uint32_t SWINTE14 : 1;
- __IOM uint32_t SWINTE15 : 1;
- __IOM uint32_t SWINTE16 : 1;
- __IOM uint32_t SWINTE17 : 1;
- __IOM uint32_t SWINTE18 : 1;
- __IM uint32_t RESERVED : 12;
- } SWINTE_B;
- };
- /* Interrupt Flag Enable register */
- union
- {
- __IOM uint32_t IPEND;
- struct
- {
- __IOM uint32_t IPEND0 : 1;
- __IOM uint32_t IPEND1 : 1;
- __IOM uint32_t IPEND2 : 1;
- __IOM uint32_t IPEND3 : 1;
- __IOM uint32_t IPEND4 : 1;
- __IOM uint32_t IPEND5 : 1;
- __IOM uint32_t IPEND6 : 1;
- __IOM uint32_t IPEND7 : 1;
- __IOM uint32_t IPEND8 : 1;
- __IOM uint32_t IPEND9 : 1;
- __IOM uint32_t IPEND10 : 1;
- __IOM uint32_t IPEND11 : 1;
- __IOM uint32_t IPEND12 : 1;
- __IOM uint32_t IPEND13 : 1;
- __IOM uint32_t IPEND14 : 1;
- __IOM uint32_t IPEND15 : 1;
- __IOM uint32_t IPEND16 : 1;
- __IOM uint32_t IPEND17 : 1;
- __IOM uint32_t IPEND18 : 1;
- __IM uint32_t RESERVED : 12;
- } IF_B;
- };
- } EINT_T;
- /**
- * @brief Independent watchdog(IWDT)
- */
- typedef struct
- {
- /* Keyword register */
- union
- {
- __OM uint32_t KEY;
- struct
- {
- __OM uint32_t KEY : 16;
- __IM uint32_t RESERVED : 16;
- } KEY_B;
- };
- /* Frequency Divider register */
- union
- {
- __IOM uint32_t PSC;
- struct
- {
- __IOM uint32_t PSC : 3;
- __IM uint32_t RESERVED : 29;
- } DIV_B;
- };
- /* Reload values register */
- union
- {
- __IOM uint32_t CNTRLD;
- struct
- {
- __IOM uint32_t CNTRLD : 12;
- __IM uint32_t RESERVED : 20;
- } CNTRLD_B;
- };
- /* Status register */
- union
- {
- __IM uint32_t STS;
- struct
- {
- __IM uint32_t PSCUFLG : 1;
- __IM uint32_t CNTUFLG : 1;
- __IM uint32_t RESERVED : 30;
- } STS_B;
- };
- } IWDT_T;
- /**
- * @brief Serial peripheral interface(SPI)
- */
- typedef struct
- {
- /* Control register 1 */
- union
- {
- __IOM uint32_t CTRL1;
- struct
- {
- __IOM uint32_t CPHA : 1;
- __IOM uint32_t CPOL : 1;
- __IOM uint32_t MSMCFG : 1;
- __IOM uint32_t BRSEL : 3;
- __IOM uint32_t SPIEN : 1;
- __IOM uint32_t LSBSEL : 1;
- __IOM uint32_t ISSEL : 1;
- __IOM uint32_t SSEN : 1;
- __IOM uint32_t RXOMEN : 1;
- __IOM uint32_t DFLSEL : 1;
- __IOM uint32_t CRCNXT : 1;
- __IOM uint32_t CRCEN : 1;
- __IOM uint32_t BMOEN : 1;
- __IOM uint32_t BMEN : 1;
- __IM uint32_t RESERVED : 16;
- } CTRL1_B;
- };
- /* Control register 2 */
- union
- {
- __IOM uint32_t CTRL2;
- struct
- {
- __IOM uint32_t RXDEN : 1;
- __IOM uint32_t TXDEN : 1;
- __IOM uint32_t SSOEN : 1;
- __IM uint32_t RESERVED1 : 2;
- __IOM uint32_t ERRIEN : 1;
- __IOM uint32_t RXBNEIEN : 1;
- __IOM uint32_t TXBEIEN : 1;
- __IM uint32_t RESERVED2 : 24;
- } CTRL2_B;
- };
- /* Status register */
- union
- {
- __IOM uint32_t STS;
- struct
- {
- __IM uint32_t RXBNEFLG : 1;
- __IM uint32_t TXBEFLG : 1;
- __IM uint32_t SCHDIR : 1;
- __IM uint32_t UDRFLG : 1;
- __IOM uint32_t CRCEFLG : 1;
- __IM uint32_t MEFLG : 1;
- __IM uint32_t OVRFLG : 1;
- __IM uint32_t BSYFLG : 1;
- __IM uint32_t RESERVED : 24;
- } STS_B;
- };
- /* Data register */
- union
- {
- __IOM uint32_t DATA;
- struct
- {
- __IOM uint32_t DATA : 16;
- __IM uint32_t RESERVED : 16;
- } DATA_B;
- };
- /* CRC polynomial register */
- union
- {
- __IOM uint32_t CRCPOLY;
- struct
- {
- __IOM uint32_t CRCPOLY : 16;
- __IM uint32_t RESERVED : 16;
- } CRCPOLY_B;
- };
- /* Receive CRC register */
- union
- {
- __IM uint32_t RXCRC;
- struct
- {
- __IM uint32_t RXCRC : 16;
- __IM uint32_t RESERVED : 16;
- } RXCRC_B;
- };
- /* Transmit CRC register */
- union
- {
- __IM uint32_t TXCRC;
- struct
- {
- __IM uint32_t TXCRC : 16;
- __IM uint32_t RESERVED : 16;
- } TXCRC_B;
- };
- /* Transmit I2S CTRL register */
- union
- {
- __IOM uint32_t I2SCFG;
- struct
- {
- __IOM uint32_t CHLEN : 1;
- __IOM uint32_t DATLEN : 2;
- __IOM uint32_t CPOL : 1;
- __IOM uint32_t I2SSSEL : 2;
- __IM uint32_t RESERVED1 : 1;
- __IOM uint32_t PFSSEL : 1;
- __IOM uint32_t I2SMOD : 2;
- __IOM uint32_t I2SEN : 1;
- __IOM uint32_t MODESEL : 1;
- __IM uint32_t RESERVED2 : 20;
- } I2SCFG_B;
- };
- /* Transmit I2S DIV register */
- union
- {
- __IOM uint32_t I2SPSC;
- struct
- {
- __IOM uint32_t I2SPSC : 8;
- __IOM uint32_t ODDPSC : 1;
- __IOM uint32_t MCIEN : 1;
- __IM uint32_t RESERVED1 : 22;
- } I2SPSC_B;
- };
- } SPI_T;
- /**
- * @brief Window watchdog (WWDT)
- */
- typedef struct
- {
- /* Control register */
- union
- {
- __IOM uint32_t CTRL;
- struct
- {
- __IOM uint32_t CNT : 7;
- __IOM uint32_t WWDTEN : 1;
- __IM uint32_t RESERVED : 24;
- } CTRL_B;
- };
- /* Configure register */
- union
- {
- __IOM uint32_t CFG;
- struct
- {
- __IOM uint32_t WIN : 7;
- __IOM uint32_t TBPSC : 2;
- __IOM uint32_t EWIEN : 1;
- __IM uint32_t RESERVED : 22;
- } CFG_B;
- };
- /* Status register */
- union
- {
- __IOM uint32_t STS;
- struct
- {
- __IOM uint32_t EWIFLG : 1;
- __IM uint32_t RESERVED : 31;
- } STS_B;
- };
- } WWDT_T;
- /**
- * @brief Secure digital input/output interface (SDIO)
- */
- typedef struct
- {
- /* Power control register */
- union
- {
- __IOM uint32_t PWRCTRL;
- struct
- {
- __IOM uint32_t PWRCTRL : 2;
- __IM uint32_t RESERVED : 30;
- } PWRCTRL_B;
- };
- /* Clock control register */
- union
- {
- __IOM uint32_t CLKCTRL;
- struct
- {
- __IOM uint32_t CLKDIV : 8;
- __IOM uint32_t CLKEN : 1;
- __IOM uint32_t PWRSAV : 1;
- __IOM uint32_t BYPASSEN : 1;
- __IOM uint32_t WBSEL : 2;
- __IOM uint32_t DEPSEL : 1;
- __IOM uint32_t HFCEN : 1;
- __IM uint32_t RESERVED : 17;
- } CLKCTRL_B;
- };
- /* Argument register */
- union
- {
- __IOM uint32_t ARG;
- struct
- {
- __IOM uint32_t CMDARG : 32;
- } ARG_B;
- };
- /* Command register */
- union
- {
- __IOM uint32_t CMD;
- struct
- {
- __IOM uint32_t CMDINDEX : 6;
- __IOM uint32_t WAITRES : 2;
- __IOM uint32_t WAITINT : 1;
- __IOM uint32_t WENDDATA : 1;
- __IOM uint32_t CPSMEN : 1;
- __IOM uint32_t SDIOSC : 1;
- __IOM uint32_t CMDCPEN : 1;
- __IOM uint32_t INTEN : 1;
- __IOM uint32_t ATACMD : 1;
- __IM uint32_t RESERVED : 17;
- } CMD_B;
- };
- /* Command response register */
- union
- {
- __IM uint32_t CMDRES;
- struct
- {
- __IM uint32_t CMDRES : 6;
- __IM uint32_t RESERVED : 26;
- } CMDRES_B;
- };
- /* SDIO response register1 */
- union
- {
- __IM uint32_t RES1;
- struct
- {
- __IM uint32_t CARDSTS1 : 32;
- } RES1_B;
- };
- /* SDIO response register2 */
- union
- {
- __IM uint32_t RES2;
- struct
- {
- __IM uint32_t CARDSTS2 : 32;
- } RES2_B;
- };
- /* SDIO response register3 */
- union
- {
- __IM uint32_t RES3;
- struct
- {
- __IM uint32_t CARDSTS3 : 32;
- } RES3_B;
- };
- /* SDIO response register4 */
- union
- {
- __IM uint32_t RES4;
- struct
- {
- __IM uint32_t CARDSTS4 : 32;
- } RES4_B;
- };
- /* Data timer register */
- union
- {
- __IOM uint32_t DATATIME;
- struct
- {
- __IOM uint32_t DATATIME : 32;
- } DTMR_B;
- };
- /* Data length register */
- union
- {
- __IOM uint32_t DATALEN;
- struct
- {
- __IOM uint32_t DATALEN : 25;
- __IM uint32_t RESERVED : 7;
- } DLEN_B;
- };
- /* Data control register */
- union
- {
- __IOM uint32_t DCTRL;
- struct
- {
- __IOM uint32_t DTEN : 1;
- __IOM uint32_t DTDRCFG : 1;
- __IOM uint32_t DTSEL : 1;
- __IOM uint32_t DMAEN : 1;
- __IOM uint32_t DBSIZE : 4;
- __IOM uint32_t RWSTR : 1;
- __IOM uint32_t RWSTOP : 1;
- __IOM uint32_t RDWAIT : 1;
- __IOM uint32_t SDIOF : 1;
- __IM uint32_t RESERVED : 20;
- } DCTRL_B;
- };
- /* Data count register */
- union
- {
- __IM uint32_t DCNT;
- struct
- {
- __IM uint32_t DATACNT : 25;
- __IM uint32_t RESERVED : 7;
- } DCNT_B;
- };
- /* SDIO status register */
- union
- {
- __IM uint32_t STS;
- struct
- {
- __IM uint32_t COMRESP : 1;
- __IM uint32_t DBDR : 1;
- __IM uint32_t CMDRESTO : 1;
- __IM uint32_t DATATO : 1;
- __IM uint32_t TXUDRER : 1;
- __IM uint32_t RXOVRER : 1;
- __IM uint32_t CMDRES : 1;
- __IM uint32_t CMDSENT : 1;
- __IM uint32_t DATAEND : 1;
- __IM uint32_t SBE : 1;
- __IM uint32_t DBCP : 1;
- __IM uint32_t CMDACT : 1;
- __IM uint32_t TXACT : 1;
- __IM uint32_t RXACT : 1;
- __IM uint32_t TXFHF : 1;
- __IM uint32_t RXFHF : 1;
- __IM uint32_t TXFF : 1;
- __IM uint32_t RXFF : 1;
- __IM uint32_t TXFE : 1;
- __IM uint32_t RXFE : 1;
- __IM uint32_t TXDA : 1;
- __IM uint32_t RXDA : 1;
- __IM uint32_t SDIOINT : 1;
- __IM uint32_t ATAEND : 1;
- __IM uint32_t RESERVED : 8;
- } STS_B;
- };
- /* SDIO interrupt clear register */
- union
- {
- __IOM uint32_t ICF;
- struct
- {
- __IOM uint32_t DBCE : 1;
- __IOM uint32_t CRCE : 1;
- __IOM uint32_t CRTO : 1;
- __IOM uint32_t DTO : 1;
- __IOM uint32_t TXFUE : 1;
- __IOM uint32_t RXFOE : 1;
- __IOM uint32_t CMDRES : 1;
- __IOM uint32_t CMDSENT : 1;
- __IOM uint32_t DATAEND : 1;
- __IOM uint32_t SBE : 1;
- __IOM uint32_t DBCP : 1;
- __IM uint32_t RESERVED1 : 11;
- __IOM uint32_t SDIOIT : 1;
- __IOM uint32_t ATAEND : 1;
- __IM uint32_t RESERVED2 : 8;
- } ICF_B;
- };
- /* SDIO interrupt mask register */
- union
- {
- __IOM uint32_t MASK;
- struct
- {
- __IOM uint32_t CCRCFAIL : 1;
- __IOM uint32_t DCRCFAIL : 1;
- __IOM uint32_t CMDTO : 1;
- __IOM uint32_t DATATO : 1;
- __IOM uint32_t TXURER : 1;
- __IOM uint32_t RXORER : 1;
- __IOM uint32_t CMDRESRC : 1;
- __IOM uint32_t CMDSENT : 1;
- __IOM uint32_t DATAEND : 1;
- __IOM uint32_t STRTER : 1;
- __IOM uint32_t DBEND : 1;
- __IOM uint32_t CMDACT : 1;
- __IOM uint32_t TXACT : 1;
- __IOM uint32_t RXACT : 1;
- __IOM uint32_t TXHFERT : 1;
- __IOM uint32_t RXHFFUL : 1;
- __IOM uint32_t TXFUL : 1;
- __IOM uint32_t RXFUL : 1;
- __IOM uint32_t TXEPT : 1;
- __IOM uint32_t RXFEIE : 1;
- __IOM uint32_t TXDAVB : 1;
- __IOM uint32_t RXDAVB : 1;
- __IOM uint32_t SDIOINTREC : 1;
- __IOM uint32_t ATACLPREC : 1;
- __IM uint32_t RESERVED : 8;
- } MASK_B;
- };
- __IM uint32_t RESERVED[2];
- /* SDIO FIFO count register */
- union
- {
- __IM uint32_t FIFOCNT;
- struct
- {
- __IM uint32_t FIFOCNT : 24;
- __IM uint32_t RESERVED : 8;
- } FIFOCNT_B;
- };
- __IM uint32_t RESERVED1[13];
- /* SDIO data FIFO register */
- union
- {
- __IOM uint32_t FIFODATA;
- struct
- {
- __IOM uint32_t FIFODATA : 32;
- } FIFODATA_B;
- };
- } SDIO_T;
- /**
- * @brief Digital to Analog Converter(DAC)
- */
- typedef struct
- {
- /* Control register */
- union
- {
- __IOM uint32_t CTRL;
- struct
- {
- __IOM uint32_t ENCH1 : 1;
- __IOM uint32_t BUFFDCH1 : 1;
- __IOM uint32_t TRGENCH1 : 1;
- __IOM uint32_t TRGSELCH1 : 3;
- __IOM uint32_t WAVENCH1 : 2;
- __IOM uint32_t MAMPSELCH1 : 4;
- __IOM uint32_t DMAENCH1 : 1;
- __IM uint32_t RESERVED1 : 3;
- __IOM uint32_t ENCH2 : 1;
- __IOM uint32_t BUFFDCH2 : 1;
- __IOM uint32_t TRGENCH2 : 1;
- __IOM uint32_t TRGSELCH2 : 3;
- __IOM uint32_t WAVENCH2 : 2;
- __IOM uint32_t MAMPSELCH2 : 4;
- __IOM uint32_t DMAENCH2 : 1;
- __IM uint32_t RESERVED2 : 3;
- } CTRL_B;
- };
- /* Software trigger register */
- union
- {
- __OM uint32_t SWTRG;
- struct
- {
- __OM uint32_t SWTRG1 : 1;
- __OM uint32_t SWTRG2 : 1;
- __IM uint32_t RESERVED : 30;
- } SWTRG_B;
- };
- /* Channel1 12-bit right-aligned register */
- union
- {
- __IOM uint32_t DH12R1;
- struct
- {
- __IOM uint32_t DATA : 12;
- __IM uint32_t RESERVED : 20;
- } DH12R1_B;
- };
- /* Channel1 12-bit left-aligned register */
- union
- {
- __IOM uint32_t DH12L1;
- struct
- {
- __IM uint32_t RESERVED1 : 4;
- __IOM uint32_t DATA : 12;
- __IM uint32_t RESERVED2 : 16;
- } DH12L1_B;
- };
- /* Channel1 8-bit right-aligned register */
- union
- {
- __IOM uint32_t DH8R1;
- struct
- {
- __IOM uint32_t DATA : 8;
- __IM uint32_t RESERVED : 24;
- } DH8R1_B;
- };
- /* Channel2 12-bit right-aligned register */
- union
- {
- __IOM uint32_t DH12R2;
- struct
- {
- __IOM uint32_t DATA : 12;
- __IM uint32_t RESERVED : 20;
- } DH12R2_B;
- };
- /* Channel2 12-bit left-aligned register */
- union
- {
- __IOM uint32_t DH12L2;
- struct
- {
- __IM uint32_t RESERVED1 : 4;
- __IOM uint32_t DATA : 12;
- __IM uint32_t RESERVED2 : 16;
- } DH12L2_B;
- };
- /* Channel2 8-bit right-aligned register */
- union
- {
- __IOM uint32_t DH8R2;
- struct
- {
- __IOM uint32_t DATA : 8;
- __IM uint32_t RESERVED : 24;
- } DH8R2_B;
- };
- /* Channel1,Channel2 12-bit right-aligned register */
- union
- {
- __IOM uint32_t DH12RDUAL;
- struct
- {
- __IOM uint32_t DATACH1 : 12;
- __IM uint32_t RESERVED1 : 4;
- __IOM uint32_t DATACH2 : 12;
- __IM uint32_t RESERVED2 : 4;
- } DH12RDUAL_B;
- };
- /* Channel1,Channel2 12-bit left-aligned register */
- union
- {
- __IOM uint32_t DH12LDUAL;
- struct
- {
- __IM uint32_t RESERVED1 : 4;
- __IOM uint32_t DATACH1 : 12;
- __IM uint32_t RESERVED2 : 4;
- __IOM uint32_t DATACH2 : 12;
- } DH12LDUAL_B;
- };
- /* Channel1,Channel2 8-bit right-aligned register */
- union
- {
- __IOM uint32_t DH8RDUAL;
- struct
- {
- __IOM uint32_t DATACH1 : 8;
- __IOM uint32_t DATACH2 : 8;
- __IM uint32_t RESERVED : 16;
- } DH8RDUAL_B;
- };
- /* Channel1 data output register */
- union
- {
- __IM uint32_t DATAOCH1;
- struct
- {
- __IM uint32_t DATA : 12;
- __IM uint32_t RESERVED : 20;
- } DATAOCH1_B;
- };
- /* Channel2 data output register */
- union
- {
- __IM uint32_t DATAOCH2;
- struct
- {
- __IM uint32_t DATA : 12;
- __IM uint32_t RESERVED : 20;
- } DATAOCH2_B;
- };
- } DAC_T;
- /**
- * @brief SMC Register
- */
- typedef struct
- {
- /* SRAM/NOR-Flash chip-select control register */
- union
- {
- __IOM uint32_t CSCTRL;
- struct
- {
- __IOM uint32_t MBKEN : 1;
- __IOM uint32_t ADMUXEN : 1;
- __IOM uint32_t MTYPECFG : 2;
- __IOM uint32_t MDBWIDCFG : 2;
- __IOM uint32_t NORFMACCEN : 1;
- __IM uint32_t RESERVED1 : 1;
- __IOM uint32_t BURSTEN : 1;
- __IOM uint32_t WSPOLCFG : 1;
- __IOM uint32_t WRAPBEN : 1;
- __IOM uint32_t WTIMCFG : 1;
- __IOM uint32_t WREN : 1;
- __IOM uint32_t WAITEN : 1;
- __IOM uint32_t EXTMODEEN : 1;
- __IOM uint32_t WSASYNCEN : 1;
- __IOM uint32_t CRAMPSIZECFG : 3;
- __IOM uint32_t WRBURSTEN : 1;
- __IOM uint32_t RESERVED2 : 12;
- } CSCTRL_B;
- };
- } SNCTRL_T;
- typedef struct
- {
- /* SRAM/NOR-Flash write timing registers */
- union
- {
- __IOM uint32_t WRTTIM;
- struct
- {
- __IOM uint32_t ADDRSETCFG : 4;
- __IOM uint32_t ADDRHLDCFG : 4;
- __IOM uint32_t DATASETCFG : 8;
- __IOM uint32_t BUSTURNCFG : 4;
- __IOM uint32_t CLKDIVCFG : 4;
- __IOM uint32_t DATALATCFG : 4;
- __IOM uint32_t ACCMODECFG : 2;
- __IM uint32_t RESERVED2 : 2;
- } WRTTIM_T;
- };
- } SNWCLK_T;
- /**
- * @brief Flexible Static Memory Controller
- */
- typedef struct
- {
- __IO uint32_t SNCTRL_T[8];
- } SMC_Bank1_T;
- /**
- * @brief Flexible Static Memory Controller Bank1E
- */
- typedef struct
- {
- __IO uint32_t WRTTIM[7];
- } SMC_Bank1E_T;
- /**
- * @brief Flexible Static Memory Controller Bank 2
- */
- typedef struct
- {
- /* PC Card/NAND Flash control register 2 */
- union
- {
- __IOM uint32_t CTRL2;
- struct
- {
- __IM uint32_t RESERVED1 : 1;
- __IOM uint32_t WAITFEN : 1;
- __IOM uint32_t MBKEN : 1;
- __IOM uint32_t MTYPECFG : 1;
- __IOM uint32_t DBWIDCFG : 2;
- __IOM uint32_t ECCEN : 1;
- __IM uint32_t RESERVED2 : 2;
- __IOM uint32_t C2RDCFG : 4;
- __IOM uint32_t A2RDCFG : 4;
- __IOM uint32_t ECCPSCFG : 3;
- __IM uint32_t RESERVED3 : 12;
- } CTRL2_B;
- };
- /* FIFO status and interrupt register 2 */
- union
- {
- __IOM uint32_t STSINT2;
- struct
- {
- __IOM uint32_t IREFLG : 1;
- __IOM uint32_t IHLFLG : 1;
- __IOM uint32_t IFEFLG : 1;
- __IOM uint32_t IREDEN : 1;
- __IOM uint32_t IHLDEN : 1;
- __IOM uint32_t IFEDEN : 1;
- __IM uint32_t FEFLG : 1;
- __IM uint32_t RESERVED : 25;
- } STSINT2_B;
- };
- /* Common memory space timing register 2 */
- union
- {
- __IOM uint32_t CMSTIM2;
- struct
- {
- __IOM uint32_t SET2 : 8;
- __IOM uint32_t WAIT2 : 8;
- __IOM uint32_t HLD2 : 8;
- __IOM uint32_t HIZ2 : 8;
- } CMSTIM2_B;
- };
- /* Attribute memory space timing register 2 */
- union
- {
- __IOM uint32_t AMSTIM2;
- struct
- {
- __IOM uint32_t SET2 : 8;
- __IOM uint32_t WAIT2 : 8;
- __IOM uint32_t HLD2 : 8;
- __IOM uint32_t HIZ2 : 8;
- } AMSTIM2_B;
- };
- __IOM uint32_t RESERVED;
- /* ECC result register 2 */
- union
- {
- __IM uint32_t ECCRS2;
- struct
- {
- __IM uint32_t ECCRS2 : 32;
- } ECCRS2_B;
- };
- } SMC_Bank2_T;
- /**
- * @brief Flexible Static Memory Controller Bank 3
- */
- typedef struct
- {
- /* PC Card/NAND Flash control register 3 */
- union
- {
- __IOM uint32_t CTRL3;
- struct
- {
- __IM uint32_t RESERVED1 : 1;
- __IOM uint32_t WAITFEN : 1;
- __IOM uint32_t MBKEN : 1;
- __IOM uint32_t MTYPECFG : 1;
- __IOM uint32_t DBWIDCFG : 2;
- __IOM uint32_t ECCEN : 1;
- __IM uint32_t RESERVED2 : 2;
- __IOM uint32_t C2RDCFG : 4;
- __IOM uint32_t A2RDCFG : 4;
- __IOM uint32_t ECCPSCFG : 3;
- __IM uint32_t RESERVED3 : 12;
- } CTRL3_B;
- };
- /* FIFO status and interrupt register 3 */
- union
- {
- __IOM uint32_t STSINT3;
- struct
- {
- __IOM uint32_t IREFLG : 1;
- __IOM uint32_t IHLFLG : 1;
- __IOM uint32_t IFEFLG : 1;
- __IOM uint32_t IREDEN : 1;
- __IOM uint32_t IHLDEN : 1;
- __IOM uint32_t IFEDEN : 1;
- __IM uint32_t FEFLG : 1;
- __IM uint32_t RESERVED : 16;
- } STSINT3_B;
- };
- /* Common memory space timing register 3 */
- union
- {
- __IOM uint32_t CMSTIM3;
- struct
- {
- __IOM uint32_t SET3 : 8;
- __IOM uint32_t WAIT3 : 8;
- __IOM uint32_t HLD3 : 8;
- __IOM uint32_t HIZ3 : 8;
- } CMSTIM3_B;
- };
- /* Attribute memory space timing register 3 */
- union
- {
- __IOM uint32_t AMSTIM3;
- struct
- {
- __IOM uint32_t SET3 : 8;
- __IOM uint32_t WAIT3 : 8;
- __IOM uint32_t HLD3 : 8;
- __IOM uint32_t HIZ3 : 8;
- } AMSTIM3_B;
- };
- __IOM uint32_t RESERVED;
- /* ECC result register 3 */
- union
- {
- __IM uint32_t ECCRS3;
- struct
- {
- __IM uint32_t ECCRS3 : 32;
- } ECCRS3_B;
- };
- } SMC_Bank3_T;
- /**
- * @brief Flexible Static Memory Controller Bank 4
- */
- typedef struct
- {
- /* PC Card/NAND Flash control register 4 */
- union
- {
- __IOM uint32_t CTRL4;
- struct
- {
- __IM uint32_t RESERVED1 : 1;
- __IOM uint32_t WAITFEN : 1;
- __IOM uint32_t MBKEN : 1;
- __IOM uint32_t MTYPECFG : 1;
- __IOM uint32_t DBWIDCFG : 2;
- __IOM uint32_t ECCEN : 1;
- __IM uint32_t RESERVED2 : 2;
- __IOM uint32_t C2RDCFG : 4;
- __IOM uint32_t A2RDCFG : 4;
- __IOM uint32_t ECCPSCFG : 3;
- __IM uint32_t RESERVED3 : 12;
- } CTRL4_B;
- };
- /* FIFO status and interrupt register 4 */
- union
- {
- __IOM uint32_t STSINT4;
- struct
- {
- __IOM uint32_t IREFLG : 1;
- __IOM uint32_t IHLFLG : 1;
- __IOM uint32_t IFEFLG : 1;
- __IOM uint32_t IREDEN : 1;
- __IOM uint32_t IHLDEN : 1;
- __IOM uint32_t IFEDEN : 1;
- __IM uint32_t FEFLG : 1;
- __IM uint32_t RESERVED : 16;
- } STSINT4_B;
- };
- /* Common memory space timing register 4 */
- union
- {
- __IOM uint32_t CMSTIM4;
- struct
- {
- __IOM uint32_t SET4 : 8;
- __IOM uint32_t WAIT4 : 8;
- __IOM uint32_t HLD4 : 8;
- __IOM uint32_t HIZ4 : 8;
- } CMSTIM4_B;
- };
- /* Attribute memory space timing register 4 */
- union
- {
- __IOM uint32_t AMSTIM4;
- struct
- {
- __IOM uint32_t SET4 : 8;
- __IOM uint32_t WAIT4 : 8;
- __IOM uint32_t HLD4 : 8;
- __IOM uint32_t HIZ4 : 8;
- } AMSTIM4_B;
- };
- /* I/O space timing register 4 */
- union
- {
- __IOM uint32_t IOSTIM4;
- struct
- {
- __IOM uint32_t SET4 : 8;
- __IOM uint32_t WAIT4 : 8;
- __IOM uint32_t HLD4 : 8;
- __IOM uint32_t HIZ4 : 8;
- } IOSTIM4_B;
- };
- } SMC_Bank4_T;
- /**
- * @brief Queued serial peripheral interface(QSPI)
- */
- typedef struct
- {
- /* @brief Control register 1 */
- union
- {
- __IOM uint32_t CTRL1;
- struct
- {
- __IOM uint32_t DFS : 5;
- __IM uint32_t RESERVED1 : 3;
- __IOM uint32_t CPHA : 1;
- __IOM uint32_t CPOL : 1;
- __IOM uint32_t TXMODE : 2;
- __IM uint32_t RESERVED2 : 2;
- __IOM uint32_t SSTEN : 1;
- __IM uint32_t RESERVED3 : 7;
- __IOM uint32_t FRF : 2;
- __IM uint32_t RESERVED4 : 8;
- } CTRL1_B;
- };
- /* @brief Control register 2 */
- union
- {
- __IOM uint32_t CTRL2;
- struct
- {
- __IOM uint32_t NDF : 16;
- __IM uint32_t RESERVED : 16;
- } CTRL2_B;
- };
- /* @brief QSPI Enable register */
- union
- {
- __IOM uint32_t SSIEN;
- struct
- {
- __IOM uint32_t EN : 1;
- __IM uint32_t RESERVED : 31;
- } SSIEN_B;
- };
- __IM uint32_t RESERVED;
- /* @brief QSPI Slave enable register */
- union
- {
- __IOM uint32_t SLAEN;
- struct
- {
- __IOM uint32_t SLAEN : 1;
- __IM uint32_t RESERVED : 31;
- } SLAEN_B;
- };
- /* @brief Baudrate register */
- union
- {
- __IOM uint32_t BR;
- struct
- {
- __IOM uint32_t CLKDIV : 16;
- __IM uint32_t RESERVED : 16;
- } BR_B;
- };
- /* @brief Transmission FIFO threshhold level register */
- union
- {
- __IOM uint32_t TFTL;
- struct
- {
- __IOM uint32_t TFT : 3;
- __IM uint32_t RESERVED1 : 13;
- __IOM uint32_t TFTH : 3;
- __IM uint32_t RESERVED2 : 13;
- } TFTL_B;
- };
- /* @brief Reception FIFO threshhold level register */
- union
- {
- __IOM uint32_t RFTL;
- struct
- {
- __IOM uint32_t RFT : 3;
- __IM uint32_t RESERVED : 29;
- } RFTL_B;
- };
- /* @brief Transmission FIFO level register */
- union
- {
- __IOM uint32_t TFL;
- struct
- {
- __IOM uint32_t TFL : 3;
- __IM uint32_t RESERVED : 29;
- } TFL_B;
- };
- /* @brief Reception FIFO level register */
- union
- {
- __IOM uint32_t RFL;
- struct
- {
- __IOM uint32_t RFL : 3;
- __IM uint32_t RESERVED : 29;
- } RFL_B;
- };
- /* @brief Status register */
- union
- {
- __IOM uint32_t STS;
- struct
- {
- __IOM uint32_t BUSYF : 1;
- __IOM uint32_t TFNF : 1;
- __IOM uint32_t TFEF : 1;
- __IOM uint32_t RFNEF : 1;
- __IOM uint32_t RFFF : 1;
- __IM uint32_t RESERVED1 : 1;
- __IOM uint32_t DCEF : 1;
- __IM uint32_t RESERVED2 : 25;
- } STS_B;
- };
- /* @brief Interrupt enable register */
- union
- {
- __IOM uint32_t INTEN;
- struct
- {
- __IOM uint32_t TFEIE : 1;
- __IOM uint32_t TFOIE : 1;
- __IOM uint32_t RFUIE : 1;
- __IOM uint32_t RFOIE : 1;
- __IOM uint32_t RFFIE : 1;
- __IOM uint32_t MSTIE : 1;
- __IM uint32_t RESERVED : 26;
- } INTEN_B;
- };
- /* @brief Interrupt status register */
- union
- {
- __IM uint32_t ISTS;
- struct
- {
- __IM uint32_t TFEIF : 1;
- __IM uint32_t TFOIF : 1;
- __IM uint32_t RFUIF : 1;
- __IM uint32_t RFOIF : 1;
- __IM uint32_t RFFIF : 1;
- __IM uint32_t MSTIF : 1;
- __IM uint32_t RESERVED : 26;
- } ISTS_B;
- };
- /* @brief Raw interrupt register */
- union
- {
- __IM uint32_t RIS;
- struct
- {
- __IM uint32_t TFEIF : 1;
- __IM uint32_t TFOIF : 1;
- __IM uint32_t RFUIF : 1;
- __IM uint32_t RXOIR : 1;
- __IM uint32_t RXFIR : 1;
- __IM uint32_t MSTIR : 1;
- __IM uint32_t RESERVED : 26;
- } RIS_B;
- };
- /* @brief Transmission FIFO overflow interrupt clear register */
- union
- {
- __IM uint32_t TFOIC;
- struct
- {
- __IM uint32_t TFOIC : 1;
- __IM uint32_t RESERVED : 31;
- } TFOIC_B;
- };
- /* @brief Reception FIFO overflow interrupt clear register */
- union
- {
- __IM uint32_t RFOIC;
- struct
- {
- __IM uint32_t RFOIC : 1;
- __IM uint32_t RESERVED : 31;
- } RFOIC_B;
- };
- /* @brief Reception FIFO underflow interrupt clear register */
- union
- {
- __IM uint32_t RFUIC;
- struct
- {
- __IM uint32_t RFUIC : 1;
- __IM uint32_t RESERVED : 31;
- } RFUIC_B;
- };
- /* @brief Master interrupt clear register */
- union
- {
- __IM uint32_t MIC;
- struct
- {
- __IM uint32_t MIC : 1;
- __IM uint32_t RESERVED : 31;
- } MIC_B;
- };
- /* @brief Interrupt clear register */
- union
- {
- __IM uint32_t ICF;
- struct
- {
- __IM uint32_t ICF : 1;
- __IM uint32_t RESERVED : 31;
- } ICF_B;
- };
- __IM uint32_t RESERVED1[5];
- /* @brief Data register */
- union
- {
- __IOM uint32_t DATA;
- struct
- {
- __IOM uint32_t DATA : 32;
- } DATA_B;
- };
- __IM uint32_t RESERVED2[35];
- /* @brief Reception sample register */
- union
- {
- __IOM uint32_t RSD;
- struct
- {
- __IOM uint32_t RSD : 8;
- __IM uint32_t RESERVED1 : 8;
- __IOM uint32_t RSE : 1;
- __IM uint32_t RESERVED2 : 15;
- } RSD_B;
- };
- /* @brief Reception sample register */
- union
- {
- __IOM uint32_t CTRL3;
- struct
- {
- __IOM uint32_t IAT : 2;
- __IOM uint32_t ADDRLEN : 4;
- __IM uint32_t RESERVED1 : 2;
- __IOM uint32_t INSLEN : 2;
- __IM uint32_t RESERVED2 : 1;
- __IOM uint32_t WAITCYC : 5;
- __IM uint32_t RESERVED3 : 14;
- __IOM uint32_t CSEN : 1;
- __IM uint32_t RESERVED4 : 1;
- } CTRL3_B;
- };
- __IM uint32_t RESERVED3[66];
- /* @brief IO switch register */
- union
- {
- __IOM uint32_t IOSW;
- struct
- {
- __IOM uint32_t IOSW : 1;
- __IM uint32_t RESERVED : 31;
- } IOSW_B;
- };
- } QSPI_T;
- /**
- * @brief SEC Inter-integrated circuit (SCI2C)
- */
- typedef struct
- {
- /* @brief Control register 1 */
- union
- {
- __IOM uint32_t CTRL1;
- struct
- {
- __IOM uint32_t MST : 1;
- __IOM uint32_t SPD : 2;
- __IOM uint32_t SAM : 1;
- __IM uint32_t RESERVED1 : 1;
- __IOM uint32_t RSTAEN : 1;
- __IOM uint32_t SLADIS : 1;
- __IOM uint32_t DSA : 1;
- __IOM uint32_t TFEIC : 1;
- __IOM uint32_t RFFIE : 1;
- __IOM uint32_t DSMA : 1;
- __IM uint32_t RESERVED2 : 21;
- } CTRL1_B;
- };
- /* @brief Master address register */
- union
- {
- __IOM uint32_t TARADDR;
- struct
- {
- __IOM uint32_t ADDR : 10;
- __IOM uint32_t STA : 1;
- __IOM uint32_t GCEN : 1;
- __IOM uint32_t MAM : 1;
- __IM uint32_t RESERVED : 19;
- } TARADDR_B;
- };
- /* @brief Slave address register */
- union
- {
- __IOM uint32_t SLAADDR;
- struct
- {
- __IOM uint32_t ADDR : 10;
- __IM uint32_t RESERVED : 22;
- } SLAADDR_B;
- };
- /* @brief High speed master code register */
- union
- {
- __IOM uint32_t HSMC;
- struct
- {
- __IOM uint32_t HSMC : 4;
- __IM uint32_t RESERVED : 28;
- } HSMC_B;
- };
- /* @brief Data register */
- union
- {
- __IOM uint32_t DATA;
- struct
- {
- __IOM uint32_t DATA : 8;
- __IOM uint32_t CMD : 1;
- __IOM uint32_t STOP : 1;
- __IM uint32_t RESERVED : 22;
- } DATA_B;
- };
- /* @brief Standard speed clock high counter register */
- union
- {
- __IOM uint32_t SSCHC;
- struct
- {
- __IOM uint32_t CNT : 16;
- __IM uint32_t RESERVED : 16;
- } SSCHC_B;
- };
- /* @brief Standard speed clock low counter register */
- union
- {
- __IOM uint32_t SSCLC;
- struct
- {
- __IOM uint32_t CNT : 16;
- __IM uint32_t RESERVED : 16;
- } SSCLC_B;
- };
- /* @brief Fast speed clock high counter register */
- union
- {
- __IOM uint32_t FSCHC;
- struct
- {
- __IOM uint32_t CNT : 16;
- __IM uint32_t RESERVED : 16;
- } FSCHC_B;
- };
- /* @brief Fast speed clock low counter register */
- union
- {
- __IOM uint32_t FSCLC;
- struct
- {
- __IOM uint32_t CNT : 16;
- __IM uint32_t RESERVED : 16;
- } FSCLC_B;
- };
- /* @brief High speed clock high counter */
- union
- {
- __IOM uint32_t HSCHC;
- struct
- {
- __IOM uint32_t CNT : 16;
- __IM uint32_t RESERVED : 16;
- } HSCHC_B;
- };
- /* @brief High speed clock low counter register */
- union
- {
- __IOM uint32_t HSCLC;
- struct
- {
- __IOM uint32_t CNT : 16;
- __IM uint32_t RESERVED : 16;
- } HSCLC_B;
- };
- /* @brief Interrupt status register */
- union
- {
- __IM uint32_t INTSTS;
- struct
- {
- __IM uint32_t RFUIF : 1;
- __IM uint32_t RFOIF : 1;
- __IM uint32_t RFFIF : 1;
- __IM uint32_t TFOIF : 1;
- __IM uint32_t TFEIF : 1;
- __IM uint32_t RRIF : 1;
- __IM uint32_t TAIF : 1;
- __IM uint32_t RDIF : 1;
- __IM uint32_t ACTIF : 1;
- __IM uint32_t STPDIF : 1;
- __IM uint32_t STADIF : 1;
- __IM uint32_t GCIF : 1;
- __IM uint32_t RSTADIF : 1;
- __IM uint32_t MOHIF : 1;
- __IM uint32_t RESERVED : 18;
- } INTSTS_B;
- };
- /* @brief Interrupt enable register */
- union
- {
- __IOM uint32_t INTEN;
- struct
- {
- __IOM uint32_t RFUIE : 1;
- __IOM uint32_t RFOIE : 1;
- __IOM uint32_t RFFIE : 1;
- __IOM uint32_t TFOIE : 1;
- __IOM uint32_t TFEIE : 1;
- __IOM uint32_t RRIE : 1;
- __IOM uint32_t TAIE : 1;
- __IOM uint32_t RDIE : 1;
- __IOM uint32_t ACTIE : 1;
- __IOM uint32_t STPDIE : 1;
- __IOM uint32_t STADIE : 1;
- __IOM uint32_t GCIE : 1;
- __IOM uint32_t RSTADIE : 1;
- __IOM uint32_t MOHIE : 1;
- __IM uint32_t RESERVED : 18;
- } INTEN_B;
- };
- /* @brief Raw interrupt status register */
- union
- {
- __IM uint32_t RIS;
- struct
- {
- __IM uint32_t RFUIF : 1;
- __IM uint32_t RFOIF : 1;
- __IM uint32_t RFFIF : 1;
- __IM uint32_t TFOIF : 1;
- __IM uint32_t TFEIF : 1;
- __IM uint32_t RRIF : 1;
- __IM uint32_t TAIF : 1;
- __IM uint32_t RDIF : 1;
- __IM uint32_t ACTIF : 1;
- __IM uint32_t STPDIF : 1;
- __IM uint32_t STADIF : 1;
- __IM uint32_t GCIF : 1;
- __IM uint32_t RSTADIF : 1;
- __IM uint32_t MOHIF : 1;
- __IM uint32_t RESERVED : 18;
- } RIS_B;
- };
- /* @brief Reception FIFO threshold register */
- union
- {
- __IOM uint32_t RFT;
- struct
- {
- __IOM uint32_t RFT : 8;
- __IM uint32_t RESERVED : 24;
- } RFT_B;
- };
- /* @brief Transmission FIFO threshold register */
- union
- {
- __IOM uint32_t TFT;
- struct
- {
- __IOM uint32_t TFT : 8;
- __IM uint32_t RESERVED : 24;
- } TFT_B;
- };
- /* @brief Interruption clear register */
- union
- {
- __IM uint32_t INTCLR;
- struct
- {
- __IM uint32_t INTCLR : 1;
- __IM uint32_t RESERVED : 31;
- } INTCLR_B;
- };
- /* @brief Reception FIFO underflow interruption clear register */
- union
- {
- __IM uint32_t RFUIC;
- struct
- {
- __IM uint32_t RFUIC : 1;
- __IM uint32_t RESERVED : 31;
- } RFUIC_B;
- };
- /* @brief Reception FIFO overflow interruption clear register */
- union
- {
- __IM uint32_t RFOIC;
- struct
- {
- __IM uint32_t RFOIC : 1;
- __IM uint32_t RESERVED : 31;
- } RFOIC_B;
- };
- /* @brief Transmission FIFO overflow interruption clear register */
- union
- {
- __IM uint32_t TFOIC;
- struct
- {
- __IM uint32_t TFOIC : 1;
- __IM uint32_t RESERVED : 31;
- } TFOIC_B;
- };
- /* @brief Reception request interruption clear register */
- union
- {
- __IM uint32_t RRIC;
- struct
- {
- __IM uint32_t RRIC : 1;
- __IM uint32_t RESERVED : 31;
- } RRIC_B;
- };
- /* @brief Transmission abort interruption clear register */
- union
- {
- __IM uint32_t TAIC;
- struct
- {
- __IM uint32_t TAIC : 1;
- __IM uint32_t RESERVED : 31;
- } TAIC_B;
- };
- /* @brief Receive done interruption clear register */
- union
- {
- __IM uint32_t RDIC;
- struct
- {
- __IM uint32_t RDIC : 1;
- __IM uint32_t RESERVED : 31;
- } RDIC_B;
- };
- /* @brief Activity interruption clear register */
- union
- {
- __IM uint32_t AIC;
- struct
- {
- __IM uint32_t AIC : 1;
- __IM uint32_t RESERVED : 31;
- } AIC_B;
- };
- /* @brief Stop detection interruption clear register */
- union
- {
- __IM uint32_t STPDIC;
- struct
- {
- __IM uint32_t STPDIC : 1;
- __IM uint32_t RESERVED : 31;
- } STPDIC_B;
- };
- /* @brief Start detection interruption clear register */
- union
- {
- __IM uint32_t STADIC;
- struct
- {
- __IM uint32_t STADIC : 1;
- __IM uint32_t RESERVED : 31;
- } STADIC_B;
- };
- /* @brief General call interruption clear register */
- union
- {
- __IM uint32_t GCIC;
- struct
- {
- __IM uint32_t GCIC : 1;
- __IM uint32_t RESERVED : 31;
- } GCIC_B;
- };
- /* @brief Control register 2 */
- union
- {
- __IOM uint32_t CTRL2;
- struct
- {
- __IOM uint32_t I2CEN : 1;
- __IOM uint32_t ABR : 1;
- __IOM uint32_t TCB : 1;
- __IM uint32_t RESERVED : 29;
- } CTRL2_B;
- };
- /* @brief Status register 1 */
- union
- {
- __IM uint32_t STS1;
- struct
- {
- __IM uint32_t ACTF : 1;
- __IM uint32_t TFNFF : 1;
- __IM uint32_t TFEF : 1;
- __IM uint32_t RFNEF : 1;
- __IM uint32_t RFFF : 1;
- __IM uint32_t MAF : 1;
- __IM uint32_t SAF : 1;
- __IM uint32_t RESERVED : 24;
- } STS1_B;
- };
- /* @brief Transmission FIFO level */
- union
- {
- __IOM uint32_t TFL;
- struct
- {
- __IOM uint32_t TFL : 4;
- __IM uint32_t RESERVED : 28;
- } TFL_B;
- };
- /* @brief Reception FIFO level */
- union
- {
- __IOM uint32_t RFL;
- struct
- {
- __IOM uint32_t RFL : 4;
- __IM uint32_t RESERVED : 28;
- } RFL_B;
- };
- /* @brief SDA hold time length register */
- union
- {
- __IOM uint32_t SDAHOLD;
- struct
- {
- __IOM uint32_t TXHOLD : 16;
- __IOM uint32_t RXHOLD : 8;
- __IM uint32_t RESERVED : 8;
- } SDAHOLD_B;
- };
- /* @brief Transmission abort source register */
- union
- {
- __IM uint32_t TAS;
- struct
- {
- __IM uint32_t AD7NA : 1;
- __IM uint32_t AD10NA1 : 1;
- __IM uint32_t AD10NA2 : 1;
- __IM uint32_t TDNA : 1;
- __IM uint32_t GCNA : 1;
- __IM uint32_t GCR : 1;
- __IM uint32_t HSAD : 1;
- __IM uint32_t SNR : 1;
- __IM uint32_t RNR10B : 1;
- __IM uint32_t MSTDIS : 1;
- __IM uint32_t ARBLOST : 1;
- __IM uint32_t LFTF : 1;
- __IM uint32_t SAL : 1;
- __IM uint32_t SRI : 1;
- __IM uint32_t USRARB : 1;
- __IM uint32_t FLUCNT : 1;
- __IM uint32_t RESERVED : 16;
- } TAS_B;
- };
- /* @brief Slave data NACK only register */
- union
- {
- __IOM uint32_t SDNO;
- struct
- {
- __IOM uint32_t NACK : 1;
- __IM uint32_t RESERVED : 31;
- } SDNO_B;
- };
- /* @brief DMA control register */
- union
- {
- __IOM uint32_t DMACTRL;
- struct
- {
- __IOM uint32_t RXEN : 1;
- __IOM uint32_t TXEN : 1;
- __IM uint32_t RESERVED : 30;
- } DMACTRL_B;
- };
- /* @brief DMA transmission data level register */
- union
- {
- __IOM uint32_t DTDL;
- struct
- {
- __IOM uint32_t DTDL : 4;
- __IM uint32_t RESERVED : 28;
- } DTDL_B;
- };
- /* @brief DMA teception data level register */
- union
- {
- __IOM uint32_t DRDL;
- struct
- {
- __IOM uint32_t DRDL : 4;
- __IM uint32_t RESERVED : 28;
- } DRDL_B;
- };
- /* @brief SDA delay register */
- union
- {
- __IOM uint32_t SDADLY;
- struct
- {
- __IOM uint32_t SDADLY : 8;
- __IM uint32_t RESERVED : 24;
- } SDADLY_B;
- };
- /* @brief Genernal call ACK register */
- union
- {
- __IOM uint32_t GCA;
- struct
- {
- __IOM uint32_t GCA : 1;
- __IM uint32_t RESERVED : 31;
- } GCA_B;
- };
- /* @brief Status register 2 */
- union
- {
- __IM uint32_t STS2;
- struct
- {
- __IM uint32_t I2CEN : 1;
- __IM uint32_t SDWB : 1;
- __IM uint32_t SRDL : 1;
- __IM uint32_t RESERVED : 29;
- } STS2_B;
- };
- /* @brief Low speed spike suppression limit */
- union
- {
- __IOM uint32_t LSSSL;
- struct
- {
- __IOM uint32_t LSSSL : 8;
- __IM uint32_t RESERVED : 24;
- } LSSSL_B;
- };
- /* @brief High speed spike suppression limit */
- union
- {
- __IOM uint32_t HSSSL;
- struct
- {
- __IOM uint32_t HSSSL : 8;
- __IM uint32_t RESERVED : 24;
- } HSSSL_B;
- };
- uint32_t RESERVED[22];
- /* @brief Switch register */
- union
- {
- __IOM uint32_t SW;
- struct
- {
- __IOM uint32_t SW : 1;
- __IM uint32_t RESERVED : 31;
- } SW_B;
- };
- } SCI2C_T;
- /**
- * @brief Dynamic memory controler (DMC)
- */
- typedef struct
- {
- /* @brief Configuraion register */
- union
- {
- __IOM uint32_t CFG;
- struct
- {
- __IM uint32_t RESERVED1 : 3;
- __IOM uint32_t BAWCFG : 2;
- __IOM uint32_t RAWCFG : 4;
- __IOM uint32_t CAWCFG : 4;
- __IOM uint32_t DWCFG : 2;
- __IM uint32_t RESERVED2 : 17;
- } CFG_B;
- };
- /* @brief Timing register 0 */
- union
- {
- __IOM uint32_t TIM0;
- struct
- {
- __IOM uint32_t CASLSEL0 : 2;
- __IOM uint32_t RASMINTSEL : 4;
- __IOM uint32_t DTIMSEL : 3;
- __IOM uint32_t PCPSEL : 3;
- __IOM uint32_t WRTIMSEL : 2;
- __IOM uint32_t ARPSEL : 4;
- __IOM uint32_t XSR0 : 4;
- __IOM uint32_t ATACP : 4;
- __IOM uint32_t ECASLSEL1 : 1;
- __IOM uint32_t EXSR1 : 5;
- } TIM0_B;
- };
- /* @brief Timing register 1 */
- union
- {
- __IOM uint32_t TIM1;
- struct
- {
- __IOM uint32_t STBTIM : 16;
- __IOM uint32_t ARNUMCFG : 4;
- __IM uint32_t RESERVED : 12;
- } TIM1_B;
- };
- /* @brief Control register 1 */
- union
- {
- __IOM uint32_t CTRL1;
- struct
- {
- __IOM uint32_t INIT : 1;
- __IOM uint32_t SRMEN : 1;
- __IOM uint32_t PDMEN : 1;
- __IOM uint32_t PCACFG : 1;
- __IOM uint32_t FRBSREN : 1;
- __IOM uint32_t FRASREN : 1;
- __IOM uint32_t RDNUMMCFG : 3;
- __IOM uint32_t MODESET : 1;
- __IM uint32_t RESERVED1 : 1;
- __IM uint32_t SRMFLG : 1;
- __IOM uint32_t BANKNUMCFG : 5;
- __IM uint32_t RESERVED2 : 15;
- } CTRL1_B;
- };
- /* @brief Refresh register */
- union
- {
- __IOM uint32_t REF;
- struct
- {
- __IOM uint32_t RCYCCFG : 16;
- __IM uint32_t RESERVED : 16;
- } REF_B;
- };
- /* @brief Chip select register */
- union
- {
- __IOM uint32_t CHIPSEL;
- struct
- {
- __IM uint32_t RESERVED : 16;
- __IOM uint32_t BACHIPSEL : 16;
- } CHIPSEL_B;
- };
- __IM uint32_t RESERVED[15];
- /* @brief Mask register */
- union
- {
- __IOM uint32_t MASK;
- struct
- {
- __IOM uint32_t MSIZESEL : 5;
- __IOM uint32_t MTYPESEL : 3;
- __IM uint32_t RESERVED : 24;
- } MASK_B;
- };
- __IM uint32_t RESERVED1[234];
- /* @brief Switch register */
- union
- {
- __IOM uint32_t SW;
- struct
- {
- __IOM uint32_t MCSW : 1;
- __IM uint32_t RESERVED : 31;
- } SW_B;
- };
- /* @brief Control register 2 */
- union
- {
- __IOM uint32_t CTRL2;
- struct
- {
- __IOM uint32_t CPHACFG : 1;
- __IOM uint32_t RDDEN : 1;
- __IOM uint32_t RDDCFG : 3;
- __IOM uint32_t WPEN : 1;
- __IOM uint32_t BUFFEN : 1;
- __IOM uint32_t WRPBSEL : 1;
- __IM uint32_t RESERVED : 24;
- } CTRL2_B;
- };
- } DMC_T;
- /**
- * @brief Debug MCU(DBGMCU)
- */
- typedef struct
- {
- /* @brief ID register */
- union
- {
- __IOM uint32_t IDCODE;
- struct
- {
- __IOM uint32_t EQR : 12;
- __IM uint32_t RESERVED : 4;
- __IOM uint32_t WVR : 16;
- } IDCODE_B;
- };
- /* @brief Control register */
- union
- {
- __IOM uint32_t CFG;
- struct
- {
- __IOM uint32_t SLEEP_CLK_STS : 1;
- __IOM uint32_t STOP_CLK_STS : 1;
- __IOM uint32_t STANDBY_CLK_STS : 1;
- __IM uint32_t RESERVED1 : 2;
- __IOM uint32_t IOEN : 1;
- __IOM uint32_t MODE : 2;
- __IOM uint32_t IWDT_STS : 1;
- __IOM uint32_t WWDT_STS : 1;
- __IOM uint32_t TMR1_STS : 1;
- __IOM uint32_t TMR2_STS : 1;
- __IOM uint32_t TMR3_STS : 1;
- __IOM uint32_t TMR4_STS : 1;
- __IOM uint32_t CAN1_STS : 1;
- __IOM uint32_t I2C1_SMBUS_TIMEOUT_STS : 1;
- __IOM uint32_t I2C2_SMBUS_TIMEOUT_STS : 1;
- __IOM uint32_t TMR8_STS : 1;
- __IOM uint32_t TMR5_STS : 1;
- __IOM uint32_t TMR6_STS : 1;
- __IOM uint32_t TMR7_STS : 1;
- __IOM uint32_t CAN2_STS : 1;
- __IM uint32_t RESERVED2 : 3;
- __IOM uint32_t TMR12_STS : 1;
- __IOM uint32_t TMR13_STS : 1;
- __IOM uint32_t TMR14_STS : 1;
- __IOM uint32_t TMR9_STS : 1;
- __IOM uint32_t TMR10_STS : 1;
- __IOM uint32_t TMR11_STS : 1;
- __IM uint32_t RESERVED3 : 1;
- } CFG_B;
- };
- } DBGMCU_T;
- /**
- * @brief USB Device controler(USBD)
- */
- typedef union
- {
- __IOM uint32_t EP;
- struct
- {
- __IOM uint32_t ADDR : 4;
- __IOM uint32_t TXSTS : 2;
- __IOM uint32_t TXDTOG : 1;
- __IOM uint32_t CTFT : 1;
- __IOM uint32_t KIND : 1;
- __IOM uint32_t TYPE : 2;
- __IOM uint32_t SETUP : 1;
- __IOM uint32_t RXSTS : 2;
- __IOM uint32_t RXDTOG : 1;
- __IOM uint32_t CTFR : 1;
- __IM uint32_t RESERVED : 16;
- } EP_B;
- } USBD_EP_REG_T;
- typedef struct
- {
- /* Endpoint */
- USBD_EP_REG_T EP[8];
- __IM uint32_t RESERVED[8];
- /* @brief Control register */
- union
- {
- __IOM uint32_t CTRL;
- struct
- {
- __IOM uint32_t FORRST : 1;
- __IOM uint32_t PWRDOWN : 1;
- __IOM uint32_t LPWREN : 1;
- __IOM uint32_t FORSUS : 1;
- __IOM uint32_t WUPREQ : 1;
- __IM uint32_t RESERVED1 : 3;
- __IOM uint32_t ESOFIEN : 1;
- __IOM uint32_t SOFIEN : 1;
- __IOM uint32_t RSTIEN : 1;
- __IOM uint32_t SUSIEN : 1;
- __IOM uint32_t WUPIEN : 1;
- __IOM uint32_t ERRIEN : 1;
- __IOM uint32_t PMAOUIEN : 1;
- __IOM uint32_t CTRIEN : 1;
- __IM uint32_t RESERVED2 : 16;
- } CTRL_B;
- };
- /* @brief Interrupt status register */
- union
- {
- __IOM uint32_t INTSTS;
- struct
- {
- __IOM uint32_t EPID : 4;
- __IOM uint32_t DOT : 1;
- __IM uint32_t RESERVED1 : 3;
- __IOM uint32_t ESOFFLG : 1;
- __IOM uint32_t SOFFLG : 1;
- __IOM uint32_t RSTREQ : 1;
- __IOM uint32_t SUSREQ : 1;
- __IOM uint32_t WUPREQ : 1;
- __IOM uint32_t ERRFLG : 1;
- __IOM uint32_t PMOFLG : 1;
- __IOM uint32_t CTFLG : 1;
- __IM uint32_t RESERVED2 : 16;
- } INTSTS_B;
- };
- /* @brief Frame number register */
- union
- {
- __IM uint32_t FRANUM;
- struct
- {
- __IM uint32_t FRANUM : 11;
- __IM uint32_t LSOFNUM : 2;
- __IM uint32_t LOCK : 1;
- __IM uint32_t RXDMSTS : 1;
- __IM uint32_t RXDPSTS : 1;
- __IM uint32_t RESERVED : 16;
- } FRANUM_B;
- };
- /* @brief Device address register */
- union
- {
- __IOM uint32_t ADDR;
- struct
- {
- __IOM uint32_t ADDR : 7;
- __IOM uint32_t USBDEN : 1;
- __IM uint32_t RESERVED : 24;
- } ADDR_B;
- };
- /* @brief Buffer table address register */
- union
- {
- __IOM uint32_t BUFFTB;
- struct
- {
- __IM uint32_t RESERVED1 : 3;
- __IOM uint32_t BUFFTB : 13;
- __IM uint32_t RESERVED2 : 16;
- } BUFFTB_B;
- };
- __IM uint32_t RESERVED1[43];
- /* @brief Buffer table address register */
- union
- {
- __IOM uint32_t USB_SWITCH;
- struct
- {
- __IOM uint32_t USB_SWITCH : 1;
- __IM uint32_t RESERVED : 31;
- } SWITCH_B;
- };
- } USBD_T;
- /**
- * @brief Ethernet: media access control (Ethernet_MAC)
- */
- typedef struct
- {
- union
- {
- __IOM uint32_t CFG;
- struct
- {
- __IM uint32_t RESERVED1 : 2;
- __IOM uint32_t RXEN : 1;
- __IOM uint32_t TXEN : 1;
- __IOM uint32_t DC : 1;
- __IOM uint32_t BL : 2;
- __IOM uint32_t ACS : 1;
- __IM uint32_t RESERVED2 : 1;
- __IOM uint32_t DISR : 1;
- __IOM uint32_t IPC : 1;
- __IOM uint32_t DM : 1;
- __IOM uint32_t LBM : 1;
- __IOM uint32_t DISRXO : 1;
- __IOM uint32_t SSEL : 1;
- __IM uint32_t RESERVED3 : 1;
- __IOM uint32_t DISCRS : 1;
- __IOM uint32_t IFG : 3;
- __IM uint32_t RESERVED4 : 2;
- __IOM uint32_t JDIS : 1;
- __IOM uint32_t WDTDIS : 1;
- } CFG_B;
- } ;
- union
- {
- __IOM uint32_t FRAF;
- struct
- {
- __IOM uint32_t PR : 1;
- __IOM uint32_t HUC : 1;
- __IOM uint32_t HMC : 1;
- __IOM uint32_t DAIF : 1;
- __IOM uint32_t PM : 1;
- __IOM uint32_t DISBF : 1;
- __IOM uint32_t PCTRLF : 1;
- __IOM uint32_t SAIF : 1;
- __IOM uint32_t SAFEN : 1;
- __IOM uint32_t HPF : 1;
- __IM uint32_t RESERVED1 : 21;
- __IOM uint32_t RXA : 1;
- } FRAF_B;
- } ;
- union
- {
- __IOM uint32_t HTH;
- struct
- {
- __IOM uint32_t HTH : 32;
- } HTH_B;
- } ;
- union
- {
- __IOM uint32_t HTL;
- struct
- {
- __IOM uint32_t HTL : 32;
- } HTL_B;
- } ;
- union
- {
- __IOM uint32_t ADDR;
- struct
- {
- __IOM uint32_t MB : 1;
- __IOM uint32_t MW : 1;
- __IOM uint32_t CR : 3;
- __IM uint32_t RESERVED1 : 1;
- __IOM uint32_t MR : 5;
- __IOM uint32_t PA : 5;
- } ADDR_B;
- } ;
- union
- {
- __IOM uint32_t DATA;
- struct
- {
- __IOM uint32_t MD : 16;
- } DATA_B;
- } ;
- union
- {
- __IOM uint32_t FCTRL;
- struct
- {
- __IOM uint32_t FCTRLB : 1;
- __IOM uint32_t TXFCTRLEN : 1;
- __IOM uint32_t RXFCTRLEN : 1;
- __IOM uint32_t UNPFDETE : 1;
- __IOM uint32_t PTSEL : 2;
- __IM uint32_t RESERVED1 : 1;
- __IOM uint32_t ZQPDIS : 1;
- __IM uint32_t RESERVED2 : 8;
- __IOM uint32_t PT : 16;
- } FCTRL_B;
- } ;
- union
- {
- __IOM uint32_t VLANT;
- struct
- {
- __IOM uint32_t VLANTID : 16;
- __IOM uint32_t VLANTCOMP : 1;
- } VLANT_B;
- } ;
- __IM uint32_t RESERVED[2];
- __IOM uint32_t REMWKUPFFL;
- union
- {
- __IOM uint32_t PMTCTRLSTS;
- struct
- {
- __IOM uint32_t PD : 1;
- __IOM uint32_t MPEN : 1;
- __IOM uint32_t WKUPFEN : 1;
- __IM uint32_t RESERVED1 : 2;
- __IOM uint32_t MPRX : 1;
- __IOM uint32_t WKUPFRX : 1;
- __IM uint32_t RESERVED2 : 2;
- __IOM uint32_t GUN : 1;
- __IM uint32_t RESERVED3 : 21;
- __IOM uint32_t WKUPFRST : 1;
- } PMTCTRLSTS_B;
- } ;
- __IM uint32_t RESERVED1[2];
- union
- {
- __IOM uint32_t ISTS;
- struct
- {
- __IM uint32_t RESERVED1 : 3;
- __IM uint32_t PMTIS : 1;
- __IM uint32_t MMCIS : 1;
- __IM uint32_t MMCRXIS : 1;
- __IM uint32_t MMCTXIS : 1;
- __IM uint32_t RESERVED2 : 2;
- __IOM uint32_t TSIS : 1;
- } ISTS_B;
- } ;
- union
- {
- __IOM uint32_t IMASK;
- struct
- {
- __IM uint32_t RESERVED1 : 3;
- __IOM uint32_t PMTIM : 1;
- __IM uint32_t RESERVED2 : 5;
- __IOM uint32_t TSTIM : 1;
- } IMASK_B;
- } ;
- union
- {
- __IOM uint32_t ADDR0H;
- struct
- {
- __IOM uint32_t ADDR0H : 16;
- __IM uint32_t RESERVED1 : 15;
- __IM uint32_t AL1 : 1;
- } ADDR0H_B;
- } ;
- union
- {
- __IOM uint32_t ADDR0L;
- struct
- {
- __IOM uint32_t ADDR0L : 32;
- } ADDR0L_B;
- } ;
- union
- {
- __IOM uint32_t ADDR1H;
- struct
- {
- __IOM uint32_t ADDR1H : 16;
- __IM uint32_t RESERVED1 : 8;
- __IOM uint32_t MASKBCTRL : 6;
- __IOM uint32_t ADDRSEL : 1;
- __IOM uint32_t ADDREN : 1;
- } ADDR1H_B;
- } ;
- union
- {
- __IOM uint32_t ADDR1L;
- struct
- {
- __IOM uint32_t ADDR1L : 32;
- } ADDR1L_B;
- } ;
- union
- {
- __IOM uint32_t ADDR2H;
- struct
- {
- __IOM uint32_t ADDR2H : 16;
- __IM uint32_t RESERVED1 : 8;
- __IOM uint32_t MASKBCTRL : 6;
- __IOM uint32_t ADDRSEL : 1;
- __IOM uint32_t ADDREN : 1;
- } ADDR2H_B;
- } ;
- union
- {
- __IOM uint32_t ADDR2L;
- struct
- {
- __IOM uint32_t ADDR2L : 31;
- } ADDR2L_B;
- } ;
- union
- {
- __IOM uint32_t ADDR3H;
- struct
- {
- __IOM uint32_t ADDR3H : 16;
- __IM uint32_t RESERVED1 : 8;
- __IOM uint32_t MASKBCTRL : 6;
- __IOM uint32_t ADDRSEL : 1;
- __IOM uint32_t ADDREN : 1;
- } ADDR3H_B;
- } ;
- union
- {
- __IOM uint32_t ADDR3L;
- struct
- {
- __IOM uint32_t ADDR3L : 32;
- } ADDR3L_B;
- } ;
- __IM uint32_t RESERVED2[40];
- union
- {
- __IOM uint32_t CTRL;
- struct
- {
- __IOM uint32_t CNTRST : 1;
- __IOM uint32_t CNTSTOPRO : 1;
- __IOM uint32_t RSTOR : 1;
- __IOM uint32_t MCNTF : 1;
- __IM uint32_t RESERVED1 : 28;
- } CTRL_B;
- } ;
- union
- {
- __IOM uint32_t RXINT;
- struct
- {
- __IM uint32_t RESERVED1 : 5;
- __IOM uint32_t RXFCE : 1;
- __IOM uint32_t RXFAE : 1;
- __IM uint32_t RESERVED2 : 10;
- __IOM uint32_t RXGUNF : 1;
- } RXINT_B;
- } ;
- union
- {
- __IOM uint32_t TXINT;
- struct
- {
- __IM uint32_t RESERVED1 : 14;
- __IOM uint32_t TXGFSCOL : 1;
- __IOM uint32_t TXGFMCOL : 1;
- __IM uint32_t RESERVED2 : 5;
- __IOM uint32_t TXGF : 1;
- } TXINT_B;
- } ;
- union
- {
- __IOM uint32_t RXINTMASK;
- struct
- {
- __IM uint32_t RESERVED1 : 5;
- __IOM uint32_t RXFCEM : 1;
- __IOM uint32_t RXFAEM : 1;
- __IM uint32_t RESERVED2 : 10;
- __IOM uint32_t RXGUNFM : 1;
- } RXINTMASK_B;
- } ;
- union
- {
- __IOM uint32_t TXINTMASK;
- struct
- {
- __IM uint32_t RESERVED1 : 14;
- __IOM uint32_t TXGFSCOLM : 1;
- __IOM uint32_t TXGFMCOLM : 1;
- __IM uint32_t RESERVED2 : 5;
- __IOM uint32_t TXGFM : 1;
- } TXINTMASK_B;
- } ;
- __IM uint32_t RESERVED3[14];
- union
- {
- __IM uint32_t TXGFSCCNT;
- struct
- {
- __IM uint32_t TXGFSCCNT : 32;
- } TXGFSCCNT_B;
- } ;
- union
- {
- __IM uint32_t TXGFMCCNT;
- struct
- {
- __IM uint32_t TXGFMCCNT : 32;
- } TXGFMCCNT_B;
- } ;
- __IM uint32_t RESERVED4[5];
- union
- {
- __IM uint32_t TXGFCNT;
- struct
- {
- __IM uint32_t TXGFCNT : 32;
- } TXGFCNT_B;
- } ;
- __IM uint32_t RESERVED5[10];
- union
- {
- __IM uint32_t RXFCECNT;
- struct
- {
- __IM uint32_t RXFCECNT : 32;
- } RXFCECNT_B;
- } ;
- union
- {
- __IM uint32_t RXFAECNT;
- struct
- {
- __IM uint32_t RXFAECNT : 32;
- } RXFAECNT_B;
- } ;
- __IM uint32_t RESERVED6[10];
- union
- {
- __IM uint32_t RXGUNCNT;
- struct
- {
- __IM uint32_t RXGUNCNT : 32;
- } RXGUNCNT_B;
- } ;
- __IM uint32_t RESERVED7[334];
- union
- {
- __IOM uint32_t TSCTRL;
- struct
- {
- __IOM uint32_t TSEN : 1;
- __IOM uint32_t TSUDSEL : 1;
- __IOM uint32_t TSSTINIT : 1;
- __IOM uint32_t TSSTUD : 1;
- __IOM uint32_t TSTRGIEN : 1;
- __IOM uint32_t TSADDUD : 1;
- } TSCTRL_B;
- } ;
- union
- {
- __IOM uint32_t SUBSECI;
- struct
- {
- __IOM uint32_t STSUBSECI : 8;
- } SUBSECI_B;
- } ;
- union
- {
- __IM uint32_t TSH;
- struct
- {
- __IM uint32_t STSEC : 32;
- } TSH_B;
- } ;
- union
- {
- __IM uint32_t TSL;
- struct
- {
- __IM uint32_t STSUBSEC : 31;
- __IM uint32_t STSEL : 1;
- } TSL_B;
- } ;
- union
- {
- __IOM uint32_t TSHUD;
- struct
- {
- __IOM uint32_t TSUDSEC : 32;
- } TSHUD_B;
- } ;
- union
- {
- __IOM uint32_t TSLUD;
- struct
- {
- __IOM uint32_t TSUDSUBSEC : 31;
- __IOM uint32_t TSUDSEL : 1;
- } TSLUD_B;
- } ;
- union
- {
- __IOM uint32_t TSA;
- struct
- {
- __IOM uint32_t TSA : 32;
- } TSA_B;
- } ;
- union
- {
- __IOM uint32_t TTSH;
- struct
- {
- __IOM uint32_t TTSH : 32;
- } TTSH_B;
- } ;
- union
- {
- __IOM uint32_t TTSL;
- struct
- {
- __IOM uint32_t TTSL : 32;
- } TTSL_B;
- } ;
- __IM uint32_t RESERVED8[567];
- union
- {
- __IOM uint32_t DMABMOD;
- struct
- {
- __IOM uint32_t SWR : 1;
- __IOM uint32_t DAS : 1;
- __IOM uint32_t DSL : 5;
- __IM uint32_t RESERVED1 : 1;
- __IOM uint32_t PBL : 6;
- __IOM uint32_t PR : 2;
- __IOM uint32_t FB : 1;
- __IOM uint32_t RPBL : 6;
- __IOM uint32_t USP : 1;
- __IOM uint32_t PBLx4 : 1;
- __IOM uint32_t AAL : 1;
- } DMABMOD_B;
- } ;
- union
- {
- __IOM uint32_t DMATXPD;
- struct
- {
- __IOM uint32_t TXPD : 32;
- } DMATXPD_B;
- } ;
- union
- {
- __IOM uint32_t DMARXPD;
- struct
- {
- __IOM uint32_t RXPD : 32;
- } DMARXPD_B;
- } ;
- union
- {
- __IOM uint32_t DMARXDLADDR;
- struct
- {
- __IOM uint32_t RXSTA : 32;
- } DMARXDLADDR_B;
- } ;
- union
- {
- __IOM uint32_t DMATXDLADDR;
- struct
- {
- __IOM uint32_t TXSTA : 32;
- } DMATXDLADDR_B;
- } ;
- union
- {
- __IOM uint32_t DMASTS;
- struct
- {
- __IOM uint32_t TXFLG : 1;
- __IOM uint32_t TXSFLG : 1;
- __IOM uint32_t TXBU : 1;
- __IOM uint32_t TXJTO : 1;
- __IOM uint32_t RXOVF : 1;
- __IOM uint32_t TXUNF : 1;
- __IOM uint32_t RXFLG : 1;
- __IOM uint32_t RXBU : 1;
- __IOM uint32_t RXSFLG : 1;
- __IOM uint32_t RXWTOFLG : 1;
- __IOM uint32_t ETXFLG : 1;
- __IM uint32_t RESERVED1 : 2;
- __IOM uint32_t FBERRFLG : 1;
- __IOM uint32_t ERXFLG : 1;
- __IOM uint32_t AINTS : 1;
- __IOM uint32_t NINTS : 1;
- __IM uint32_t RXSTS : 3;
- __IM uint32_t TXSTS : 3;
- __IM uint32_t ERRB : 3;
- __IM uint32_t RESERVED2 : 1;
- __IM uint32_t MMCFLG : 1;
- __IM uint32_t PMTFLG : 1;
- __IM uint32_t TSTFLG : 1;
- } DMASTS_B;
- } ;
- union
- {
- __IOM uint32_t DMAOPMOD;
- struct
- {
- __IM uint32_t RESERVED1 : 1;
- __IOM uint32_t STRX : 1;
- __IOM uint32_t OSECF : 1;
- __IOM uint32_t RXTHCTRL : 2;
- __IM uint32_t RESERVED2 : 1;
- __IOM uint32_t FUF : 1;
- __IOM uint32_t FERRF : 1;
- __IM uint32_t RESERVED3 : 5;
- __IOM uint32_t STTX : 1;
- __IOM uint32_t TXTHCTRL : 3;
- __IM uint32_t RESERVED4 : 3;
- __IOM uint32_t FTXF : 1;
- __IOM uint32_t TXSF : 1;
- __IM uint32_t RESERVED5 : 2;
- __IOM uint32_t DISFRXF : 1;
- __IOM uint32_t RXSF : 1;
- __IOM uint32_t DISDT : 1;
- } DMAOPMOD_B;
- } ;
- union
- {
- __IOM uint32_t DMAINTEN;
- struct
- {
- __IOM uint32_t TXIEN : 1;
- __IOM uint32_t TXSEN : 1;
- __IOM uint32_t TXBUEN : 1;
- __IOM uint32_t TXJTOEN : 1;
- __IOM uint32_t RXOVFEN : 1;
- __IOM uint32_t TXUNFEN : 1;
- __IOM uint32_t RXIEN : 1;
- __IOM uint32_t RXBUEN : 1;
- __IOM uint32_t RXSEN : 1;
- __IOM uint32_t RXWTOEN : 1;
- __IOM uint32_t ETXIEN : 1;
- __IM uint32_t RESERVED1 : 2;
- __IOM uint32_t FBERREN : 1;
- __IOM uint32_t ERXIEN : 1;
- __IOM uint32_t AINTSEN : 1;
- __IOM uint32_t NINTSEN : 1;
- } DMAINTEN_B;
- } ;
- union
- {
- __IM uint32_t DMAMFABOCNT;
- struct
- {
- __IM uint32_t MISFCNT : 16;
- __IM uint32_t MISFCNTOVF : 1;
- __IM uint32_t AMISFCNT : 11;
- __IM uint32_t OVFCNTOVF : 1;
- } DMAMFABOCNT_B;
- } ;
- __IM uint32_t RESERVED9[9];
- union
- {
- __IM uint32_t DMAHTXD;
- struct
- {
- __IM uint32_t HTXDADDRP : 32;
- } DMAHTXD_B;
- } ;
- union
- {
- __IM uint32_t DMAHRXD;
- struct
- {
- __IM uint32_t HRXDADDRP : 32;
- } DMAHRXD_B;
- } ;
- union
- {
- __IM uint32_t DMAHTXBADDR;
- struct
- {
- __IM uint32_t HTXBADDRP : 32;
- } DMAHTXBADDR_B;
- } ;
- union
- {
- __IM uint32_t DMAHRXBADDR;
- struct
- {
- __IM uint32_t HRXBADDRP : 32;
- } DMAHRXBADDR_B;
- } ;
- } ETH_T;
- /**@} end of group Peripheral_registers_structures*/
- /** @defgroup Peripheral_memory_map
- @{
- */
- /* FMC base address in the alias region */
- #define FMC_BASE ((uint32_t)0x08000000)
- /* SRAM base address in the alias region */
- #define SRAM_BASE ((uint32_t)0x20000000)
- /* Peripheral base address in the alias region */
- #define PERIPH_BASE ((uint32_t)0x40000000)
- /* SRAM base address in the bit-band region */
- #define SRAM_BB_BASE ((uint32_t)0x22000000)
- /* Peripheral base address in the bit-band region */
- #define PERIPH_BB_BASE ((uint32_t)0x42000000)
- /* SMC registers base address */
- #define SMC_R_BASE ((uint32_t)0xA0000000)
- /* QSPI registers base address */
- #define QSPI_BASE ((uint32_t)0xA0000000)
- /* DMC registers base address */
- #define DMC_BASE ((uint32_t)0xA0000000)
- /* Peripheral memory map */
- #define APB1PERIPH_BASE PERIPH_BASE
- #define APB2PERIPH_BASE (PERIPH_BASE + 0x10000)
- #define AHBPERIPH_BASE (PERIPH_BASE + 0x20000)
- #define TMR2_BASE (APB1PERIPH_BASE + 0x0000)
- #define TMR3_BASE (APB1PERIPH_BASE + 0x0400)
- #define TMR4_BASE (APB1PERIPH_BASE + 0x0800)
- #define TMR5_BASE (APB1PERIPH_BASE + 0x0C00)
- #define TMR6_BASE (APB1PERIPH_BASE + 0x1000)
- #define TMR7_BASE (APB1PERIPH_BASE + 0x1400)
- #define TMR12_BASE (APB1PERIPH_BASE + 0x1800)
- #define TMR13_BASE (APB1PERIPH_BASE + 0x1C00)
- #define TMR14_BASE (APB1PERIPH_BASE + 0x2000)
- #define RTC_BASE (APB1PERIPH_BASE + 0x2800)
- #define WWDT_BASE (APB1PERIPH_BASE + 0x2C00)
- #define IWDT_BASE (APB1PERIPH_BASE + 0x3000)
- #define SPI2_BASE (APB1PERIPH_BASE + 0x3800)
- #define SPI3_BASE (APB1PERIPH_BASE + 0x3C00)
- #define USART2_BASE (APB1PERIPH_BASE + 0x4400)
- #define USART3_BASE (APB1PERIPH_BASE + 0x4800)
- #define UART4_BASE (APB1PERIPH_BASE + 0x4C00)
- #define UART5_BASE (APB1PERIPH_BASE + 0x5000)
- #define I2C1_BASE (APB1PERIPH_BASE + 0x5400)
- #define I2C2_BASE (APB1PERIPH_BASE + 0x5800)
- #define USBD_BASE (APB1PERIPH_BASE + 0X5C00)
- #define CAN1_BASE (APB1PERIPH_BASE + 0x6400)
- #define CAN2_BASE (APB1PERIPH_BASE + 0x6800)
- #define BAKPR_BASE (APB1PERIPH_BASE + 0x6C00)
- #define PMU_BASE (APB1PERIPH_BASE + 0x7000)
- #define DAC_BASE (APB1PERIPH_BASE + 0x7400)
- #define CEC_BASE (APB1PERIPH_BASE + 0x7800)
- #define AFIO_BASE (APB2PERIPH_BASE + 0x0000)
- #define EINT_BASE (APB2PERIPH_BASE + 0x0400)
- #define GPIOA_BASE (APB2PERIPH_BASE + 0x0800)
- #define GPIOB_BASE (APB2PERIPH_BASE + 0x0C00)
- #define GPIOC_BASE (APB2PERIPH_BASE + 0x1000)
- #define GPIOD_BASE (APB2PERIPH_BASE + 0x1400)
- #define GPIOE_BASE (APB2PERIPH_BASE + 0x1800)
- #define GPIOF_BASE (APB2PERIPH_BASE + 0x1C00)
- #define GPIOG_BASE (APB2PERIPH_BASE + 0x2000)
- #define ADC1_BASE (APB2PERIPH_BASE + 0x2400)
- #define ADC2_BASE (APB2PERIPH_BASE + 0x2800)
- #define TMR1_BASE (APB2PERIPH_BASE + 0x2C00)
- #define SPI1_BASE (APB2PERIPH_BASE + 0x3000)
- #define TMR8_BASE (APB2PERIPH_BASE + 0x3400)
- #define USART1_BASE (APB2PERIPH_BASE + 0x3800)
- #define ADC3_BASE (APB2PERIPH_BASE + 0x3C00)
- #define TMR15_BASE (APB2PERIPH_BASE + 0x4000)
- #define TMR16_BASE (APB2PERIPH_BASE + 0x4400)
- #define TMR17_BASE (APB2PERIPH_BASE + 0x4800)
- #define TMR9_BASE (APB2PERIPH_BASE + 0x4C00)
- #define TMR10_BASE (APB2PERIPH_BASE + 0x5000)
- #define TMR11_BASE (APB2PERIPH_BASE + 0x5400)
- #define SDIO_BASE (PERIPH_BASE + 0x18000)
- #define DMA1_BASE (AHBPERIPH_BASE + 0x0000)
- #define DMA1_Channel1_BASE (AHBPERIPH_BASE + 0x0008)
- #define DMA1_Channel2_BASE (AHBPERIPH_BASE + 0x001C)
- #define DMA1_Channel3_BASE (AHBPERIPH_BASE + 0x0030)
- #define DMA1_Channel4_BASE (AHBPERIPH_BASE + 0x0044)
- #define DMA1_Channel5_BASE (AHBPERIPH_BASE + 0x0058)
- #define DMA1_Channel6_BASE (AHBPERIPH_BASE + 0x006C)
- #define DMA1_Channel7_BASE (AHBPERIPH_BASE + 0x0080)
- #define DMA2_BASE (AHBPERIPH_BASE + 0x0400)
- #define DMA2_Channel1_BASE (AHBPERIPH_BASE + 0x0408)
- #define DMA2_Channel2_BASE (AHBPERIPH_BASE + 0x041C)
- #define DMA2_Channel3_BASE (AHBPERIPH_BASE + 0x0430)
- #define DMA2_Channel4_BASE (AHBPERIPH_BASE + 0x0444)
- #define DMA2_Channel5_BASE (AHBPERIPH_BASE + 0x0458)
- #define RCM_BASE (AHBPERIPH_BASE + 0x1000)
- #define CRC_BASE (AHBPERIPH_BASE + 0x3000)
- #define ETH_BASE (AHBPERIPH_BASE + 0x8000)
- #define ETH_MAC_BASE (ETH_BASE)
- #define ETH_MMC_BASE (ETH_BASE + 0x0100)
- #define ETH_PTP_BASE (ETH_BASE + 0x0700)
- #define ETH_DMA_BASE (ETH_BASE + 0x1000)
- /* FMC registers base address */
- #define FMC_R_BASE (AHBPERIPH_BASE + 0x2000)
- /* FMC Option Bytes base address */
- #define OB_BASE ((uint32_t)0x1FFFF800)
- /* SMC Bank1 registers base address */
- #define SMC_Bank1_R_BASE (SMC_R_BASE + 0x0000)
- /* SMC Bank1E registers base address */
- #define SMC_Bank1E_R_BASE (SMC_R_BASE + 0x0104)
- /* SMC Bank2 registers base address */
- #define SMC_Bank2_R_BASE (SMC_R_BASE + 0x0060)
- /* SMC Bank3 registers base address */
- #define SMC_Bank3_R_BASE (SMC_R_BASE + 0x0080)
- /*SMC Bank4 registers base address */
- #define SMC_Bank4_R_BASE (SMC_R_BASE + 0x00A0)
- /* Debug MCU registers base address */
- #define DBGMCU_BASE ((uint32_t)0xE0042000)
- /**@} end of group Peripheral_memory_map*/
- /** @defgroup Peripheral_declaration
- @{
- */
- #define CRC ((CRC_T *) CRC_BASE)
- #define RTC ((RTC_T *) RTC_BASE)
- #define PMU ((PMU_T *) PMU_BASE)
- #define BAKPR ((BAKPR_T *) BAKPR_BASE)
- #define TMR1 ((TMR_T *) TMR1_BASE)
- #define TMR2 ((TMR_T *) TMR2_BASE)
- #define TMR3 ((TMR_T *) TMR3_BASE)
- #define TMR4 ((TMR_T *) TMR4_BASE)
- #define TMR5 ((TMR_T *) TMR5_BASE)
- #define TMR6 ((TMR_T *) TMR6_BASE)
- #define TMR7 ((TMR_T *) TMR7_BASE)
- #define TMR8 ((TMR_T *) TMR8_BASE)
- #define TMR9 ((TMR_T *) TMR9_BASE)
- #define TMR10 ((TMR_T *) TMR10_BASE)
- #define TMR11 ((TMR_T *) TMR11_BASE)
- #define TMR12 ((TMR_T *) TMR12_BASE)
- #define TMR13 ((TMR_T *) TMR13_BASE)
- #define TMR14 ((TMR_T *) TMR14_BASE)
- #define TMR15 ((TMR_T *) TMR15_BASE)
- #define TMR16 ((TMR_T *) TMR16_BASE)
- #define TMR17 ((TMR_T *) TMR17_BASE)
- #define DMA1 ((DMA_T *) DMA1_BASE)
- #define DMA2 ((DMA_T *) DMA2_BASE)
- #define DMA1_Channel1 ((DMA_Channel_T *) DMA1_Channel1_BASE)
- #define DMA1_Channel2 ((DMA_Channel_T *) DMA1_Channel2_BASE)
- #define DMA1_Channel3 ((DMA_Channel_T *) DMA1_Channel3_BASE)
- #define DMA1_Channel4 ((DMA_Channel_T *) DMA1_Channel4_BASE)
- #define DMA1_Channel5 ((DMA_Channel_T *) DMA1_Channel5_BASE)
- #define DMA1_Channel6 ((DMA_Channel_T *) DMA1_Channel6_BASE)
- #define DMA1_Channel7 ((DMA_Channel_T *) DMA1_Channel7_BASE)
- #define DMA2_Channel1 ((DMA_Channel_T *) DMA2_Channel1_BASE)
- #define DMA2_Channel2 ((DMA_Channel_T *) DMA2_Channel2_BASE)
- #define DMA2_Channel3 ((DMA_Channel_T *) DMA2_Channel3_BASE)
- #define DMA2_Channel4 ((DMA_Channel_T *) DMA2_Channel4_BASE)
- #define DMA2_Channel5 ((DMA_Channel_T *) DMA2_Channel5_BASE)
- #define CAN1 ((CAN_T *) CAN1_BASE)
- #define CAN2 ((CAN_T *) CAN2_BASE)
- #define I2C1 ((I2C_T *) I2C1_BASE)
- #define I2C2 ((I2C_T *) I2C2_BASE)
- #define OB ((OB_T *) OB_BASE)
- #define ADC1 ((ADC_T *) ADC1_BASE)
- #define ADC2 ((ADC_T *) ADC2_BASE)
- #define ADC3 ((ADC_T *) ADC3_BASE)
- #define EINT ((EINT_T *) EINT_BASE)
- #define IWDT ((IWDT_T *) IWDT_BASE)
- #define SDIO ((SDIO_T *) SDIO_BASE)
- #define DAC ((DAC_T *) DAC_BASE)
- #define SPI1 ((SPI_T *) SPI1_BASE)
- #define SPI2 ((SPI_T *) SPI2_BASE)
- #define SPI3 ((SPI_T *) SPI3_BASE)
- #define WWDT ((WWDT_T *) WWDT_BASE)
- #define USART2 ((USART_T *) USART2_BASE)
- #define USART3 ((USART_T *) USART3_BASE)
- #define UART4 ((USART_T *) UART4_BASE)
- #define UART5 ((USART_T *) UART5_BASE)
- #define AFIO ((AFIO_T *) AFIO_BASE)
- #define GPIOA ((GPIO_T *) GPIOA_BASE)
- #define GPIOB ((GPIO_T *) GPIOB_BASE)
- #define GPIOC ((GPIO_T *) GPIOC_BASE)
- #define GPIOD ((GPIO_T *) GPIOD_BASE)
- #define GPIOE ((GPIO_T *) GPIOE_BASE)
- #define GPIOF ((GPIO_T *) GPIOF_BASE)
- #define GPIOG ((GPIO_T *) GPIOG_BASE)
- #define USART1 ((USART_T *) USART1_BASE)
- #define RCM ((RCM_T *) RCM_BASE)
- #define FMC ((FMC_T *) FMC_R_BASE)
- #define USBD ((USBD_T *)USBD_BASE)
- #define SMC_Bank1 ((SMC_Bank1_T *) SMC_Bank1_R_BASE)
- #define SMC_Bank1E ((SMC_Bank1E_T *)SMC_Bank1E_R_BASE)
- #define SMC_Bank2 ((SMC_Bank2_T *) SMC_Bank2_R_BASE)
- #define SMC_Bank3 ((SMC_Bank3_T *) SMC_Bank3_R_BASE)
- #define SMC_Bank4 ((SMC_Bank4_T *) SMC_Bank4_R_BASE)
- #define DBGMCU ((DBGMCU_T *) DBGMCU_BASE)
- #define I2C3 ((SCI2C_T *)(I2C1_BASE))
- #define I2C4 ((SCI2C_T *)(I2C2_BASE))
- #if defined (APM32F10X_MD) || defined (APM32F10X_LD)
- #define QSPI ((QSPI_T *)QSPI_BASE)
- #endif
- #if defined (APM32F10X_HD)
- #define DMC ((DMC_T *)DMC_BASE)
- #endif
- #if defined (APM32F10X_CL)
- #define ETH ((ETH_T *) ETH_BASE)
- #endif
- /**@} end of group Peripheral_declaration*/
- /** @defgroup Exported_Macros
- @{
- */
- /* Define one bit mask */
- #define BIT0 ((uint32_t)0x00000001)
- #define BIT1 ((uint32_t)0x00000002)
- #define BIT2 ((uint32_t)0x00000004)
- #define BIT3 ((uint32_t)0x00000008)
- #define BIT4 ((uint32_t)0x00000010)
- #define BIT5 ((uint32_t)0x00000020)
- #define BIT6 ((uint32_t)0x00000040)
- #define BIT7 ((uint32_t)0x00000080)
- #define BIT8 ((uint32_t)0x00000100)
- #define BIT9 ((uint32_t)0x00000200)
- #define BIT10 ((uint32_t)0x00000400)
- #define BIT11 ((uint32_t)0x00000800)
- #define BIT12 ((uint32_t)0x00001000)
- #define BIT13 ((uint32_t)0x00002000)
- #define BIT14 ((uint32_t)0x00004000)
- #define BIT15 ((uint32_t)0x00008000)
- #define BIT16 ((uint32_t)0x00010000)
- #define BIT17 ((uint32_t)0x00020000)
- #define BIT18 ((uint32_t)0x00040000)
- #define BIT19 ((uint32_t)0x00080000)
- #define BIT20 ((uint32_t)0x00100000)
- #define BIT21 ((uint32_t)0x00200000)
- #define BIT22 ((uint32_t)0x00400000)
- #define BIT23 ((uint32_t)0x00800000)
- #define BIT24 ((uint32_t)0x01000000)
- #define BIT25 ((uint32_t)0x02000000)
- #define BIT26 ((uint32_t)0x04000000)
- #define BIT27 ((uint32_t)0x08000000)
- #define BIT28 ((uint32_t)0x10000000)
- #define BIT29 ((uint32_t)0x20000000)
- #define BIT30 ((uint32_t)0x40000000)
- #define BIT31 ((uint32_t)0x80000000)
- #define SET_BIT(REG, BIT) ((REG) |= (BIT))
- #define CLEAR_BIT(REG, BIT) ((REG) &= ~(BIT))
- #define READ_BIT(REG, BIT) ((REG) & (BIT))
- #define CLEAR_REG(REG) ((REG) = (0x0))
- #define WRITE_REG(REG, VAL) ((REG) = (VAL))
- #define READ_REG(REG) ((REG))
- #define MODIFY_REG(REG, CLEARMASK, SETMASK) WRITE_REG((REG), (((READ_REG(REG)) & (~(CLEARMASK))) | (SETMASK)))
- /**@} end of group Exported_Macros*/
- /**@} end of group APM32F10x */
- /**@} end of group CMSIS */
- #ifdef __cplusplus
- }
- #endif
- #endif /* __APM32F10X_H */
|