Начало
This commit is contained in:
parent
4de71438b4
commit
768fbfb3ea
BIN
Bin/FuckYa.exe
Normal file
BIN
Bin/FuckYa.exe
Normal file
Binary file not shown.
BIN
Bin/HEX2BIN.EXE
Normal file
BIN
Bin/HEX2BIN.EXE
Normal file
Binary file not shown.
BIN
Bin/HEXBIN.EXE
Normal file
BIN
Bin/HEXBIN.EXE
Normal file
Binary file not shown.
BIN
Bin/UKSSTMS320F28335.bin
Normal file
BIN
Bin/UKSSTMS320F28335.bin
Normal file
Binary file not shown.
916
Bin/UKSSTMS320F28335.hex
Normal file
916
Bin/UKSSTMS320F28335.hex
Normal file
@ -0,0 +1,916 @@
|
||||
:20000000AA0800000000000000000000000000000000000056B4F2010000ABB500FF40DDB5
|
||||
:2000200000000000C1C081C1400101C3C003800241C201C6C006800741C70005C1C581C4C4
|
||||
:20004000400401CCC00C800D41CD000FC1CF81CE400E000AC1CA81CB400B01C9C0098008A5
|
||||
:2000600041C801D8C018801941D9001BC1DB81DA401A001EC1DE81DF401F01DDC01D801CD4
|
||||
:2000800041DC0014C1D481D5401501D7C017801641D601D2C012801341D30011C1D181D053
|
||||
:2000A000401001F0C030803141F10033C1F381F240320036C1F681F7403701F5C0358034E5
|
||||
:2000C00041F4003CC1FC81FD403D01FFC03F803E41FE01FAC03A803B41FB0039C1F981F8A3
|
||||
:2000E00040380028C1E881E9402901EBC02B802A41EA01EEC02E802F41EF002DC1ED81EC34
|
||||
:20010000402C01E4C024802541E50027C1E781E640260022C1E281E3402301E1C021802054
|
||||
:2001200041E001A0C060806141A10063C1A381A240620066C1A681A7406701A5C065806443
|
||||
:2001400041A4006CC1AC81AD406D01AFC06F806E41AE01AAC06A806B41AB0069C1A981A8A2
|
||||
:2001600040680078C1B881B9407901BBC07B807A41BA01BEC07E807F41BF007DC1BD81BCD3
|
||||
:20018000407C01B4C074807541B50077C1B781B640760072C1B281B3407301B1C071807054
|
||||
:2001A00041B00050C190819140510193C053805241920196C056805741970055C1958194A2
|
||||
:2001C0004054019CC05C805D419D005FC19F819E405E005AC19A819B405B0199C0598058A4
|
||||
:2001E00041980188C04880494189004BC18B818A404A004EC18E818F404F018DC04D804C33
|
||||
:20020000418C0044C184818540450187C047804641860182C042804341830041C181818051
|
||||
:200220004040FFFF40DB00000000FFFF41DB00000000FFFF42DB00000000EEFF80DB0000A8
|
||||
:200240001BD6B738D79AFC3FA84C79BF0000000000000000000000000000000000000000E6
|
||||
:2002600000000000FFFF7ADB00001400FFFF7BDB00000000FFFF7CDB00000000F4FF64D740
|
||||
:2002800000000000000000000000489D0000FC9D0000999D00009E9D0000FFFF7CD700001E
|
||||
:2002A0000000FFFF7DD700000000FFFF7ED700000000FFFF7FD700000000FEFF1CDD00004F
|
||||
:2002C00000000000FEFF1EDD000000000000FEFF20DD000000000000FEFF22DD0000000030
|
||||
:2002E0000000FFFF24DD00000000FFFF25DD00000000F0FF1ADB00003F0006005B004F002C
|
||||
:2003000066006D007D0007007F006F00400000000000000079000000FBFF2ADB00000800D8
|
||||
:200320000C00100000000400FFFF26DD00000000FFFF27DD00000000FFFF28DD0000000097
|
||||
:20034000FFFF32DD00000000FEFF30DB000001000200FEFF32DB000000000000FEFF34DB6F
|
||||
:20036000000000000000FFFF8ADE00000000FFFF8BDE00000000FEFF8DDE00000000000048
|
||||
:20038000FFFF49D700000000FFFF4AD700000000FFFF4BD700000000FEFF90DE0000000095
|
||||
:2003A0000000FEFF92DE000000000000FEFF9EDE0000A6B50000FEFFA0DE0000A6B5000026
|
||||
:2003C000FEFFA2DE000000000000FEFFA4DE000000000000FFFF00D700000000FFFF44D337
|
||||
:2003E00000000100FFFF3ADD00000A00FFFF3BDD00000100FFFF01DB0000000000000000EC
|
||||
:20040000AB35000000801B76F0FF00E2BD0030E60006422916562376391110292576006F44
|
||||
:200420001B76F0FF00E2BD0030E60006422916562376390110292576006F1B76F0FF00E232
|
||||
:20044000BD0030E60006422916562376390110292576006F1B76F0FF00E2BD0030E600069B
|
||||
:20046000422916562376390110292576006F1B76F0FF00E2BD0030E6000642291656102944
|
||||
:200480002576006F1B76F0FF00E2BD0030E600064229165610292576006F1B76F0FF00E29B
|
||||
:2004A000BD0030E600064229165610292576006F1B76F0FF00E2BD0030E600064229165637
|
||||
:2004C00010292576006F1B76F0FF00E2BD0030E600064229165610292576006F1B76F0FF04
|
||||
:2004E00000E2BD0030E600064229165610292576006F1B76F0FF00E2BD0030E60006422981
|
||||
:20050000165610292576006F1B76F0FF00E2BD0030E600064229165610292576006F1B7646
|
||||
:20052000F0FF00E2BD0030E600064229165610292576006F1B76F0FF00E2BD0030E60006BC
|
||||
:200540004229165610292576006F1B76F0FF00E2BD0030E600064229165610292576006F2C
|
||||
:200560001B76F0FF00E2BD0030E600064229165610292576006F1B76F0FF00E2BD0030E6F1
|
||||
:2005800000064229165610292576006F1B76F0FF00E2BD0030E60006422916561029257655
|
||||
:2005A000006F1B76F0FF00E2BD0030E600064229165610292576006F1B76F0FF00E2BD0058
|
||||
:2005C00030E6000602FE422916561F7633002292419623760100267601011F76330022189B
|
||||
:2005E000FA001F7633002128FFFF1029103B1F763300419222962576006F1B76F0FF00E2AF
|
||||
:20060000BD0030E6000602FE422916561F7633002292419623760100267601011F763300D7
|
||||
:200620002218F8001F7633002128FFFF1029103B1F763300419222962576006F1B76F0FF18
|
||||
:2006400000E2BD0030E6000602FE422916561F76330022924196237601011F76330022929E
|
||||
:200660001F763300222B1F7633002128FFFF1029103B1F763300419222962576006F1B76E4
|
||||
:20068000F0FF00E2BD0030E6000602FE422916561F76330022924196237601011F76330023
|
||||
:2006A000221868001F7633002128FFFF1029103B1F763300419222962576006F1B76F0FF28
|
||||
:2006C00000E2BD0030E6000602FE422916561F7633002292419623760100267601011F7668
|
||||
:2006E0003300221848001F7633002128FFFF1029103B1F763300419222962576006F1B76C4
|
||||
:20070000F0FF00E2BD0030E6000602FE422916561F763300229241962376010026760101CD
|
||||
:200720001F76330022921F763300222B1F7633002128FFFF1029103B1F7633004192229642
|
||||
:200740002576006F1B76F0FF00E2BD0030E6000602FE422916561F76330022924196237691
|
||||
:200760000100267601011F763300221878001F7633002128FFFF1029103B1F763300419232
|
||||
:2007800022962576006F1B76F0FF00E2BD0030E6000602FE422916561F7633002492419630
|
||||
:2007A00023760200267600001F76330024180E001F7633002128FFFF1029103B1F76330095
|
||||
:2007C000419224962576006F1B76F0FF00E2BD0030E6000602FE422916561F7633002492F2
|
||||
:2007E000419623760200267600001F76330024180C001F7633002128FFFF1029103B1F76B3
|
||||
:200800003300419224962576006F1B76F0FF00E2BD0030E6000602FE422916561F76330034
|
||||
:200820002492419623760200267600001F763300241808001F7633002128FFFF1029103B55
|
||||
:200840001F763300419224962576006F1B76F0FF00E2BD0030E6000602FE422916561F7692
|
||||
:2008600033002492419623760200267600001F76330024921F763300242B1F7633002128DB
|
||||
:20088000FFFF1029103B1F763300419224962576006F1B76F0FF00E2BD0030E6000602FE3C
|
||||
:2008A000422916561F7633002492419623760200267600001F76330024180F001F763300FA
|
||||
:2008C0002128FFFF1029103B1F763300419224962576006F1B76F0FF00E2BD0030E60006B3
|
||||
:2008E00002FE422916561F7633002492419623760200267600001F76330024181F001F76DD
|
||||
:2009000033002128FFFF1029103B1F763300419224962576006F1B76F0FF00E2BD0030E645
|
||||
:20092000000602FE422916561F763300269241962376040026763D011F76330026183E00C8
|
||||
:200940001F7633002128FFFF1029103B1F763300419226962576006F1B76F0FF00E2BD0084
|
||||
:2009600030E6000602FE422916561F763300269241962376040026763D011F763300269236
|
||||
:200980001F763300262B1F7633002128FFFF1029103B1F763300419226962576006F1B76B9
|
||||
:2009A000F0FF00E2BD0030E6000602FE422916561F763300269241962376040026763D01E8
|
||||
:2009C0001F76330026921F763300262B1F7633002128FFFF1029103B1F7633004192269694
|
||||
:2009E0002576006F1B76F0FF00E2BD0030E6000602FE422916561F763300269241962376EB
|
||||
:200A0000040026763D011F763300261826001F7633002128FFFF1029103B1F76330041929E
|
||||
:200A200026962576006F1B76F0FF00E2BD0030E6000602FE422916561F7633002692419687
|
||||
:200A40002376040026763D011F763300261826001F7633002128FFFF1029103B1F76330098
|
||||
:200A6000419226962576006F1B76F0FF00E2BD0030E6000602FE422916561F76330026924B
|
||||
:200A800041962376040026763D011F76330026921F763300262B1F7633002128FFFF102927
|
||||
:200AA000103B1F763300419226962576006F1B76F0FF00E2BD0030E6000602FE4229165678
|
||||
:200AC0001F7633002892419623760800267608011F763300281802001F7633002128FFFF5E
|
||||
:200AE0001029103B1F763300419228962576006F1B76F0FF00E2BD0030E6000602FE422969
|
||||
:200B000016561F7633002A92419623760800267608011F76330028921F763300282B1F7696
|
||||
:200B200033002128FFFF1029103B1F763300419228962576006F1B76F0FF00E2BD0030E61F
|
||||
:200B4000000602FE422916561F7633002892419623760800267608011F763300281803000E
|
||||
:200B60001F7633002128FFFF1029103B1F763300419228962576006F1B76F0FF00E2BD0060
|
||||
:200B800030E6000602FE422916561F7633002892419623760800267608011F7633002818BB
|
||||
:200BA00003001F7633002128FFFF1029103B1F763300419228962576006F1B76F0FF00E2DA
|
||||
:200BC000BD0030E6000602FE422916561F7633002892419623760800267608011F763300FE
|
||||
:200BE00028180F001F7633002128FFFF1029103B1F763300419228962576006F1B76F0FF30
|
||||
:200C000000E2BD0030E6000602FE422916561F7633002892419623760800267608011F760E
|
||||
:200C2000330028180F001F7633002128FFFF1029103B1F763300419228962576006F1B76AB
|
||||
:200C4000F0FF00E2BD0030E6000602FE422916561F7633002A924196237610002676100162
|
||||
:200C60001F7633002A1802001F7633002128FFFF1029103B1F76330041922A962576006F70
|
||||
:200C80001B76F0FF00E2BD0030E6000602FE422916561F7633002A924196237610002676A2
|
||||
:200CA00010011F7633002A921F7633002A2B1F7633002128FFFF1029103B1F763300419254
|
||||
:200CC0002A962576006F1B76F0FF00E2BD0030E6000602FE422916561F7633002C924196DB
|
||||
:200CE00023762000267639011F7633002C1832001F7633002128FFFF1029103B1F763300CC
|
||||
:200D000041922C962576006F1B76F0FF00E2BD0030E6000602FE422916561F7633002C929C
|
||||
:200D2000419623762000267639011F7633002C921F7633002C2B1F7633002128FFFF102960
|
||||
:200D4000103B1F76330041922C962576006F1B76F0FF00E2BD0030E6000602FE42291656CF
|
||||
:200D60001F7633002C92419623762000267639011F7633002C1833001F7633002128FFFF39
|
||||
:200D80001029103B1F76330041922C962576006F1B76F0FF00E2BD0030E6000602FE4229C2
|
||||
:200DA00016561F7633002C92419623762000267639011F7633002C1837001F763300212887
|
||||
:200DC000FFFF1029103B1F76330041922C962576006F1B76F0FF00E2BD0030E6000602FEEF
|
||||
:200DE000422916561F7633002C92419623762000267639011F7633002C1822001F7633003A
|
||||
:200E00002128FFFF1029103B1F76330041922C962576006F1B76F0FF00E2BD0030E6000665
|
||||
:200E200002FE422916561F7633002C92419623762000267639011F7633002C921F763300A1
|
||||
:200E40002C2B1F7633002128FFFF1029103B1F76330041922C962576006F1B76F0FF00E2DF
|
||||
:200E6000BD0030E6000602FE422916561F7633002E92419623764000267600001F76330026
|
||||
:200E80002E183E001F7633002128FFFF1029103B1F76330041922E962576006F1B76F0FF52
|
||||
:200EA00000E2BD0030E6000602FE422916561F7633002E92419623764000267600001F7637
|
||||
:200EC00033002E1838001F7633002128FFFF1029103B1F76330041922E962576006F1B76D4
|
||||
:200EE000F0FF00E2BD0030E6000602FE422916561F7633002E92419623764000267600009D
|
||||
:200F00001F7633002E1838001F7633002128FFFF1029103B1F76330041922E962576006F8F
|
||||
:200F20001B76F0FF00E2BD0030E6000602FE422916561F7633002E924196237640002676CB
|
||||
:200F400000001F7633002E1820001F7633002128FFFF1029103B1F76330041922E962576D6
|
||||
:200F6000006F1B76F0FF00E2BD0030E6000602FE422916561F7633002E92419623764000B8
|
||||
:200F8000267600001F7633002E1828001F7633002128FFFF1029103B1F76330041922E968D
|
||||
:200FA0002576006F1B76F0FF00E2BD0030E6000602FE422916561F7633002E92419623761D
|
||||
:200FC0004000267600001F7633002E921F7633002E2B1F7633002128FFFF1029103B1F7664
|
||||
:200FE000330041922E962576006F1B76F0FF00E2BD0030E6000602FE422916561F76330043
|
||||
:201000003092419623768000267600001F7633002C921F7633002C2B1F7633002128FFFFCE
|
||||
:201020001029103B1F763300419230962576006F1B76F0FF00E2BD0030E6000602FE42291B
|
||||
:2010400016561F7633003092419623768000267600001F763300301801001F7633002128EC
|
||||
:20106000FFFF1029103B1F763300419230962576006F1B76F0FF00E2BD0030E6000602FE48
|
||||
:20108000422916561F7633003092419623768000267600001F7633002C1823001F7633006C
|
||||
:2010A0002128FFFF1029103B1F763300419230962576006F1B76F0FF00E2BD0030E60006BF
|
||||
:2010C00002FE422916561F7633003092419623768000267600001F763300301803001F767B
|
||||
:2010E00033002128FFFF1029103B1F763300419230962576006F1B76F0FF00E2BD0030E652
|
||||
:20110000000602FE422916561F7633003292419623760001267600011F76330032921F7637
|
||||
:201120003300322B1F7633002128FFFF1029103B1F763300419232962576006F1B76F0FF9F
|
||||
:2011400000E2BD0030E6000602FE422916561F7633003292419623760001267600011F76CE
|
||||
:2011600033003218FD001F7633002128FFFF1029103B1F763300419232962576006F1B7664
|
||||
:20118000F0FF00E2BD0030E6000602FE422916561F76330032924196237600012676000134
|
||||
:2011A0001F763300321871001F7633002128FFFF1029103B1F763300419232962576006FAC
|
||||
:2011C0001B76F0FF00E2BD0030E6000602FE422916561F7633003292419623760001267664
|
||||
:2011E00000011F763300321875001F7633002128FFFF1029103B1F763300419232962576D6
|
||||
:20120000006F1B76F0FF00E2BD0030E6000602FE422916561F763300329241962376000150
|
||||
:20122000267600011F76330032921F763300322B1F7633002128FFFF1029103B1F76330005
|
||||
:20124000419232962576006F1B76F0FF00E2BD0030E6000602FE422916561F76330032924B
|
||||
:20126000419623760001267600011F76330032921F763300322B1F7633002128FFFF102967
|
||||
:20128000103B1F763300419232962576006F1B76F0FF00E2BD0030E6000602FE4229165684
|
||||
:2012A0001F7633003292419623760001267600011F763300321831001F7633002128FFFF42
|
||||
:2012C0001029103B1F763300419232962576006F1B76F0FF00E2BD0030E6000602FE422977
|
||||
:2012E00016561F7633003292419623760001267600011F763300321875001F763300212850
|
||||
:20130000FFFF1029103B1F763300419232962576006F1B76F0FF00E2BD0030E6000602FEA3
|
||||
:20132000422916561F7633003892419623760008267600001F76330038189E001F763300B2
|
||||
:201340002128FFFF1029103B1F763300419238962576006F1B76F0FF00E2BD0030E6000614
|
||||
:2013600002FE422916561F7633003892419623760008267600001F76330038189C001F76A7
|
||||
:2013800033002128FFFF1029103B1F763300419238962576006F1B76F0FF00E2BD0030E6A7
|
||||
:2013A000000602FE422916561F7633003892419623760008267600001F7633003818900002
|
||||
:2013C0001F7633002128FFFF1029103B1F763300419238962576006F1B76F0FF00E2BD00E8
|
||||
:2013E00030E6000602FE422916561F7633003892419623760008267600001F76330038183C
|
||||
:2014000090001F7633002128FFFF1029103B1F763300419238962576006F1B76F0FF00E2D4
|
||||
:20142000BD0030E6000602FE422916561F7633003892419623760008267600001F7633008E
|
||||
:2014400038921F763300382B1F7633002128FFFF1029103B1F763300419238962576006F91
|
||||
:201460001B76F0FF00E2BD0030E6000602FE422916561F76330038924196237600082676B4
|
||||
:2014800000001F76330038189F001F7633002128FFFF1029103B1F763300419238962576FE
|
||||
:2014A000006F1B76F0FF00E2BD0030E6000602FE422916561F7633003892419623760008A1
|
||||
:2014C000267600001F76330038921F763300382B1F7633002128FFFF1029103B1F76330058
|
||||
:2014E000419238962576006F1B76F0FF00E2BD0030E60006422916562576006F1B76F0FFA5
|
||||
:2015000000E2BD0030E60006422916562576006F1B76F0FF00E2BD0030E60006422916561D
|
||||
:201520002576006F1F76BF010B1A000806001F76BF010F1A000806001F765D0307920252AB
|
||||
:2015400006ED1F76BF010B1A0010056F1F76BF010D1A001006001F765D030792025206ED33
|
||||
:201560001F76BF010D1A0010056F1F76BF010B1A001006001F765D030792025206ED1F7671
|
||||
:20158000BF010B1A0080056F1F76BF010D1A008006001F765D030792025206ED1F76BF0146
|
||||
:2015A0000D1A0080056F1F76BF010B1A008006001F765D030A9219EC1F765F033192013B84
|
||||
:2015C0001F765F03309EA985A9BD120F007700770077007789E6010002E808184076B9B21A
|
||||
:2015E0001F766D0303E236001F765D03099231EC1F765F033292013B1F765F03309EA98534
|
||||
:20160000A9BD120F007700770077007789E6010002E840164076B9B21F766D0303E2360076
|
||||
:201620001F765F03013B33921F765F03319EA985A9BD120F007700770077007789E60100EB
|
||||
:2016400002E840164076B9B21F766D0303E2380006001B76F0FF0500BDA8BDA0BDC2BDC3BB
|
||||
:20166000BDAB00E2BD0003E2BD0003E2BD0103E2BD0203E2BD0330E6000604FE69FF4229E4
|
||||
:201680001656227601021F766C0301560C002376391110291A761F765F033FCC0080CEFFE1
|
||||
:2016A00004ED69FF40765AAC1F766D033A92019CA988A6BD120F0077007700771F766D0388
|
||||
:2016C0008BE600003A9612E8000D14AD08641F766D033A2B1F766D03BF563B011F765F03DE
|
||||
:2016E0003F931F765E03019111920190A8CA4396009B1F766D03009A0440BD56A901005284
|
||||
:20170000B156A8014392A8CA05EC69FF40769488046F69FF40768F881F766D033F0A1F761C
|
||||
:201720006D033F920A5216681F766D033F2B1F767403159204EC40769988036F4076A8884D
|
||||
:201740001F767403169204EC4076B788036F4076C68843920CED1F765F0328921F766D03F6
|
||||
:201760003F5405ED4076C6884076A888009A1F76740300D41793B056A9010052B156A40128
|
||||
:201780004392A4CE08EC1F766D033E28F4011F766E033E2B43921F76740317961F766D03AC
|
||||
:2017A0003E92019CA988A6BD120F0077007700771F766D038BE600003E9612E8D01F14ADAE
|
||||
:2017C00077641F766D033E2B1F766E033E0A1F766E033E4003EF019A026F009A1F766E0350
|
||||
:2017E0003F961F766E033E92079003EC019A026F009A1F767403149643920BEC1F766E038A
|
||||
:201800003F921F76740316961F7674031596506F1F766D03044008EF1F766E033F921F761D
|
||||
:2018200074031596056F1F767403BF5615011F765E0311CD02001F765F03D0FF3FCC4000F4
|
||||
:20184000C5FFA8CA07EC1F76740314921F76740315961F766D0304CC0400C1FF1F76740351
|
||||
:20186000B056160125ED1F766D0304CC0800C2FF08EC1F766E033F921F7674031696186F91
|
||||
:201880001F766D0304CC1000C3FF0FEC009A1F76740300D41493B056A9011F767403005277
|
||||
:2018A000B156A401167C046F1F767403162B84FEAFE2BE03AFE2BE02AFE2BE01AFE2BE0066
|
||||
:2018C00080E2BE00BE87BEC5BEC4BE83BE8A0300F1FF1776027602FE1F766E03BF563728A3
|
||||
:2018E0001F766E03BF5638281F767403BF560D1B1F7674030E2B1F766D033D2B1F766D036D
|
||||
:201900003D1A01001F766D033D1A00801F766D033D1A00401F766D033D1A0010412B41924C
|
||||
:2019200009520C63013B008F76DE41850156A400C42B410A41920952F664412B4192185292
|
||||
:201940001363013B008F45DB41850156A400C42B4185008F5DDB0156A4004192C496410A76
|
||||
:2019600041921852EF64412B419212521063412D008FC0DB1235408F80DB0156A4001202A9
|
||||
:2019800040760DB5410A41921252F2641F765D030792015249ED1F765D030692055203EC0D
|
||||
:2019A000065205ED1F766D03BF560007075203EC085205ED1F766D03BF5600061F766D0303
|
||||
:2019C000035600011F766D0301961F766D0302961F766D030092029C4296412B1F766D03F6
|
||||
:2019E000019241540F65013B008F45DB41850156A400BF56C409410A1F766D030192415445
|
||||
:201A0000F3621F765D030692075203EC08520CED1F767903BF5637011F766D03072B1F761F
|
||||
:201A20006D03082B420B1F765D030792025224ED1F766D03BF5600081F766D0300921F7675
|
||||
:201A40006D0301961F766D030296029C4296412B1F766D03019241540F65013B008F45DB74
|
||||
:201A600041850156A400BF56C40A410A1F766D0301924154F3621F767A03C8E24201AFE265
|
||||
:201A8000000050E800104076B9B21F767A0303E2000082FE060002FE412B41920252E3FFEB
|
||||
:201AA0008F00422B429208521063013B008F01D8035641030156A40042850156A400C42B9C
|
||||
:201AC000420A42920852F264410A41920252EA64766F1F766003091AFF3C1F7660030F1A1A
|
||||
:201AE000007F756F1F766003091A0F001F7660030F1A000F6C6F412B419218523663013BD0
|
||||
:201B0000008F45DB41850156A400C4922AEC4193A892A2FF008D01D8CBFFA894A3FFA985FE
|
||||
:201B20000156A000109B4192C000FCB4A92D019B67FFC099013B4192189C008D01D8A9932A
|
||||
:201B4000A2FFCBFFA894A3FFA9850156A000109B4192189CC000FCB4019BA92D67FFC09944
|
||||
:201B6000410A41921852CC64412B419203521463013B008F01D84185408F09D80156A4008D
|
||||
:201B80004192039CA9850156A500C492C596410A41920352EE641F7660030F1A00011F767C
|
||||
:201BA0005D030792025206ED1F766003101A03000E6F1F766003101A0F00096F1F765D03A5
|
||||
:201BC0000692015287EC02528EEC966F1F765D030792045215ED1F7660030B1A0300BF56B9
|
||||
:201BE0004204412B086F4292412D1F76600366FF0B98410A1F765E0320924154F5621F7606
|
||||
:201C00006003021A03001F766003081A00011F766003101A000E1F7660030F1A7F001F76C2
|
||||
:201C20006003101A00E082FE060006FE467D459744A8419600520EEC448A013B4585C40F58
|
||||
:201C40000362019A116F448A01020156C40046920B6F448AC40603ED009A066F448A01025E
|
||||
:201C60004156C400469286FE060006FE44A84196448AC4924596013B008F80D741850156A2
|
||||
:201C8000A400C4924696CCFF019003ED461800F0459246981F766D03038846CD0001D7FFA5
|
||||
:201CA0001F766D03A6CC0100A9CB0191A6CCFEFFA9CB039700D4009A46CD0001D7FFB056CB
|
||||
:201CC000A9010052B156A40146CDFFFDA492019088FFA8CA4696008F80D741850156A4000A
|
||||
:201CE0004692C49686FE0600BDB20EFE439600520AED1F766D0303921F766D0304961F76BD
|
||||
:201D00006D03032B013B008F80D743850156A400C4CC0080CEFF1BEC1F766D03019243542D
|
||||
:201D200016654385008F80D70156A400C42B4385008F80D70156A400C41A0080008F98D78B
|
||||
:201D400043850156A400C42BEFFFAD0103564301008F40DE0156A400C406461E1F765F03CB
|
||||
:201D60003FCC0001C7FF0FECAFE2460043858CE60000008F98D70156A400A9BF120FC496A9
|
||||
:201D8000EFFF91014385008F80D70156A400C4CC0010CBFF4FEC1F766D03019243544A6597
|
||||
:201DA000009AA985A9BD120F007700770077007789E600004D9603E24A004C2B4C921852B8
|
||||
:201DC0002D63013B008F45DB43850156A400408F45DB4C850156A500C492C5541BED4C85C1
|
||||
:201DE000008F80D70156A4001F766D033D92C4CE11ED03564C01008F40DE0156A400AFE2BF
|
||||
:201E00004A00AFE2C40110E70800007703E24A004D0A4C0A4C921852D5644D9209ECAFE2EA
|
||||
:201E20004A00C8E24D014076B9B203E24A004A06461E1F767A0306060BEC013B008F92DB0F
|
||||
:201E4000035643010156A4004606C41E206F013B008F92DB03564301408F92DB0156A40021
|
||||
:201E6000035643010156A5001F767A03A48BAFE2C500AFE2460120E300414076B9B2AFE264
|
||||
:201E8000C10110E74000007703E2C100013B008F92DB035643010156A400C406461E1F7699
|
||||
:201EA0006D034392029E4E9626641F765F033FCC1000C3FF1F765D030ACA1F765E0311CD5E
|
||||
:201EC0000400D1FFA9CBC156EE001F767A030606C056E900AFE246004E858CE60000008FED
|
||||
:201EE000F0D70156A400A9BF120FC4964076D588EFFFD900009A1F765D0300D40A93B0565D
|
||||
:201F0000A9010052B156A4014392A4CE01904E96408F76DB807645DB008FF0D74E850156A7
|
||||
:201F2000A40003564E010156A50043850156A600C8E2C400AFE24601C07604DDC685015695
|
||||
:201F4000A70020E70800AFE2C50100E70800C8E2C701007710E70800007703E2480016E8FB
|
||||
:201F6000000914AD056306E8401603E2480012E8401A14AD056502E8401A03E248001F7639
|
||||
:201F80005E0311CD02001F765F03D0FF3FCC4000C5FFA8CA10EC4385008F45DB0156A4004B
|
||||
:201FA000408FAEDBC4850156A500C8E2C500007703E2480050E8004843858CE60000008F28
|
||||
:201FC00098D70156A400A9BF120FC4964B2B4385008F80D70156A400C4CC0040CDFF59EDB3
|
||||
:201FE000AFE2480016E8000914AD056512E8401A14AD08644B1A01001F766D03031A1000BD
|
||||
:20200000486F4385008FB0D70156A400AFE24801C492FB9CA985A9BD120F0077007700774F
|
||||
:20202000007789E60000007794E6010014AD0A654385008F80D70156A400C4CC2000C4FF7C
|
||||
:202040000DED4385008FB0D70156A400C8E2C400007794E6010014AD0A654B1A20004B1A33
|
||||
:2020600000011F766D03031A0400136F4385008FC8D70156A400C8E2C400007794E6010066
|
||||
:2020800014AD07654B1A10001F766D03031A08001F767A03060606EDAD5C43928BDC407668
|
||||
:2020A000328C8EFEBE8B06001B76F0FF0500BDA8BDA0BDC2BDC3BDAB00E2BD0003E2BD0098
|
||||
:2020C00003E2BD0103E2BD0203E2BD0330E6000602FE69FF422916561F7633003292419656
|
||||
:2020E00023760001267600011F76330032921F763300322B1F7633002128FFFF1029008F21
|
||||
:2021000000D069FF40760594008F00D040767F8F103B1F7633004192329682FEAFE2BE0395
|
||||
:20212000AFE2BE02AFE2BE01AFE2BE0080E2BE00BE87BEC5BEC4BE83BE8A0300F1FF17763C
|
||||
:2021400002761B76F0FF0500BDA8BDA0BDC2BDC3BDAB00E2BD0003E2BD0003E2BD0103E290
|
||||
:20216000BD0203E2BD0330E6000602FE69FF422916561F7633003292419623760001267607
|
||||
:2021800000011F763300321871001F7633002128FFFF1029008F80D369FF40760594008F4B
|
||||
:2021A00080D340767F8F103B1F7633004192329682FEAFE2BE03AFE2BE02AFE2BE01AFE256
|
||||
:2021C000BE0080E2BE00BE87BEC5BEC4BE83BE8A0300F1FF177602761B76F0FF0500BDA86C
|
||||
:2021E000BDA0BDC2BDC3BDAB00E2BD0003E2BD0003E2BD0103E2BD0203E2BD0330E60006D2
|
||||
:2022000002FE69FF422916561F7633003292419623760001267600011F7633003218FD00D6
|
||||
:202220001F7633002128FFFF1029008F00D069FF40760594008F00D040761C91103B1F769E
|
||||
:2022400033004192329682FEAFE2BE03AFE2BE02AFE2BE01AFE2BE0080E2BE00BE87BEC506
|
||||
:20226000BEC4BE83BE8A0300F1FF177602761B76F0FF0500BDA8BDA0BDC2BDC3BDAB00E2CB
|
||||
:20228000BD0003E2BD0003E2BD0103E2BD0203E2BD0330E6000602FE69FF422916561F7603
|
||||
:2022A00033003292419623760001267600011F763300321875001F7633002128FFFF10294A
|
||||
:2022C000008F80D369FF40760594008F80D340761C91103B1F7633004192329682FEAFE261
|
||||
:2022E000BE03AFE2BE02AFE2BE01AFE2BE0080E2BE00BE87BEC5BEC4BE83BE8A0300F1FF47
|
||||
:202300001776027604FE42A8428AC48AECCC4000C5FF16ED1F7633002192A9CDFFFEC7FF3F
|
||||
:2023200001901F7633000150019087FFA8CA2196428AC48A0BDCC41A4000EFFF8001428A59
|
||||
:20234000C48AFC92FF904396428AC48AECCC8000C6FF0AEC428AC48ACC18DFFF428AC48A36
|
||||
:20236000CC1A2000D26F428A008DA0019492CDED428A008D3B039492015216ED428A008DD0
|
||||
:202380003D03BF569401428A0002008D3403941E428A008D3F03942B428A008D3E03942B5C
|
||||
:2023A000428A0DD0942B428A008D3F039492ADED428A008D3D039492C156E200428A008D49
|
||||
:2023C0003E0394924BED1F760403109243541FEC1F7674033B92435403ED005218ED428AFB
|
||||
:2023E000008D31039492435406ED428A008D330394920DED1F7674033A92435424ED0052EB
|
||||
:2024000022EC428A008D330394921DED428A4392008D320394964206008F3E030156A4004F
|
||||
:20242000019BC492A995C497428A013BA9850156A4000ED043929496089A428A40760A9243
|
||||
:20244000EFFF64FF428A008D3F03BF569401428A008D3D03942BEFFF59FF4206008F3E0330
|
||||
:202460000156A400019BC492A995C497428A013BA9850156A4000ED043929496428A008D6F
|
||||
:202480003E039492075210ED428A0DD0949210520BED428A008D3303949206ED43921F7644
|
||||
:2024A0005C030A9C1096428A008D3E03949202523DED428A43920DD09496428A9492035244
|
||||
:2024C0001668428A94924252126642839558008F00D7949203520B68428A0DD09492335226
|
||||
:2024E0001CED428A0CD094923A5217EC428A099A40760A92428A008D3E03942B428A008D03
|
||||
:202500003D03BF569401428A008D3F03942B428A0DD0942BEFFFFAFE428A0DD094923352D5
|
||||
:2025200005ED428A008D3D03942B42830DD095584283008F00D79492008D3E039554086949
|
||||
:202540004283008F90019585A40FE8FFDFFE428A099A40760A92428A008D3D03942B428A20
|
||||
:20256000008D3F03BF569401428A008DA001BF569401428A0DD0942BEFFFC8FE4283F5C4A4
|
||||
:20258000208F0000A9A8A60F08664283F5C42F8F0000A9A8A60F08674283208F0000F5A856
|
||||
:2025A00042830AD095A8428A0CD094923A52C056ADFE428A008DA001949208EC428A008DB7
|
||||
:2025C0003F03BF569401EFFFA1FE4206008F34030156A400C4C4A692019001DEC4C24496E9
|
||||
:2025E00009EC4283F58AA9A80109F51E4392C498066F428AF48A03564308C496428A008DED
|
||||
:2026000034039406428AE40FE8FF80FE428A339A0FD09496428A0CD09496099A428A40762C
|
||||
:202620000A92428A008D3F03BF569401428A008DA001BF569401EFFF69FE84FE060004FE36
|
||||
:2026400042A8428A008D3A0394923CED4206008F38030156A4000102C407C41E428A008D95
|
||||
:202660003603940F0568428AC48ABF56E402428A08D0948A4283849295A8428AC48A09D02F
|
||||
:202680009496428A4283008D36039406008D3803950F5766428AC48AE4CC4000C5FFFBEC41
|
||||
:2026A000428A099A40760A92428AD492025205ED1F76BF01081A0400428A008D9E01942BAF
|
||||
:2026C000406F4206008F38030156A400C4C4A692019001DEC4C24396428A4283008D360358
|
||||
:2026E0009406008D3803950F0566428AC48ABF56E40243920DEC428A08D0948A42838492E9
|
||||
:2027000095A8428AC48AFF9009D094960B6F428A428308D0948AC58309D0C492A7FFFF9023
|
||||
:202720009596428A4283008D36039406008D3803950F0766428AC48AE4CC4000C5FFFBECEF
|
||||
:202740001F7633002192A9CDFFFEC7FF01901F7633000150019087FFA8CA219684FE060053
|
||||
:2027600002FE412B419246520D63013B008F00D741850156A4004192C496410A41924652CC
|
||||
:20278000F5641F765C03BF56330C1F765C03BF56340C1F765C03BF5635081F765C03BF5600
|
||||
:2027A00036091F765C03BF5637101F765C03BF5638081F765C03BF56390C1F765C03BF56EA
|
||||
:2027C0003A0C1F765C03BF563B051F764D030492FE9C1F765C033D961F764D0304921F767E
|
||||
:2027E0005D03FF9C01961F765C03BF563E081F765C03BF5603081F765C03BF5606081F7638
|
||||
:202800005C03BF56100D1F765C03BF56051B1F765C03BF563C1282FE060004FE439642A85C
|
||||
:20282000439208520BED089A428A01D54E9B4076C493428A008D3B03942B439209520CEDB8
|
||||
:20284000089A428A01D54E9B4076C493428A008D3B03BF56940184FE060008FE461E44A027
|
||||
:2028600042A8472B471B30750566470A471B3075FD69428AD492025205ED1F76BF010818DF
|
||||
:20288000FBFF472B471B10270566470A471B1027FD69428A4606008D3603941E428A4406D2
|
||||
:2028A00008D00109941E428A008D3A03942B428AC48AE4CC4000C5FFFBEC428A089A407656
|
||||
:2028C0000A92428A008D38030102941E460F0C67428AC48ABF56E401428AC483448A09D07D
|
||||
:2028E000C4929596216F4283448AC58309D0C4929596428AC48AE4CC4000C5FFFBEC472B6B
|
||||
:20290000471BE8030566470A471BE803FD69428A099A40760A92428AD492025205ED1F762D
|
||||
:20292000BF01081A0400009A88FE060006FE461E44A042A8428AD492025205ED1F76BF0188
|
||||
:202940000818FBFF428A4606008D3603941E428A08D04406941E428A008D3A03BF569401ED
|
||||
:20296000428AC48AE4CC4000C5FFFBEC428A089A40760A92428A008D38030102941E428ACD
|
||||
:20298000C48ABF56E4014283448A09D0C583C492A7FFFF909596009A86FE060006FE441EFB
|
||||
:2029A00042A81F76740384E2440188E2360050E809404076B9B288E60000007703E2460024
|
||||
:2029C000428AC48A4692A7FFFF90D496428AC48A4692FF90DC9686FE060002FE41961F767D
|
||||
:2029E0004D0304961F764003BF5602011F764E03BF56020282FE060008FE441E417C419280
|
||||
:202A0000015231ED008F50701F76400300A8008F00D048A822761F76BE0109CCFFF3A91AB1
|
||||
:202A200000041F76BE0109961F76BE0109CCFFFCA91A00011F76BE0109961F763700008F69
|
||||
:202A4000518E00A81F763700008FE98E02A81F763300321A01001F763300321A02002376AF
|
||||
:202A600000011A764192025239ED008F50771F764E0300A8008F80D348A822761F76BE01D6
|
||||
:202A800007CCFFCFA91A00201F76BE0107961F76BE0107CCFF3FA91A00801F76BE01079628
|
||||
:202AA0001F76BE011618CFFF1F76BE011A1A04001F763700008F9E8E04A81F763700008FAC
|
||||
:202AC000348F06A81F763300321A04001F763300321A0800237600011A76488A4192D49618
|
||||
:202AE000488AC406461E01D5089A488A4E9B4076C493468A0CDCC41A0040468A0CDCC4182C
|
||||
:202B0000FFDF468ACC18BFFF468ACC18DFFF468ACC18F7FF468ACC18FBFF468ACC1A0200C3
|
||||
:202B2000468ACC1A0100468A0ADCC418FFBF468A0BDCC4CCE0FF0150C4964076AD91488AF7
|
||||
:202B400044064076CB92488AD492025205ED1F76BF01081A0400488AC48ABF56E402099A61
|
||||
:202B6000488A40760A92488A0CD0942B488A008D9E01942B488A008D3303942B468A0BDCFC
|
||||
:202B8000C41A4000468ACC1A200088FE060008FE457D4497439642A8428AC406481E43927E
|
||||
:202BA0001D6509521B63488AFF9CC4CDF8FF0790A8CAC496136F488AC418DFFF166F488AFD
|
||||
:202BC000C41A2000488AC418BFFF0F6F488AC41A2000488AC41A4000086F44924552F7EC86
|
||||
:202BE0004E52EAEC4F52ECEC4592015204ED488AC4187FFF4592025204ED488AC41A800053
|
||||
:202C0000488AC418EFFF488AC418F7FF88FE060002FE42A8428A0002008D4203941E82FE2C
|
||||
:202C2000060002FE42A882FE060002FE22761F765D030792045207ED008F73AA1F76340039
|
||||
:202C40001AA8066F008F26891F7634001AA81A761F7674030F8F404269FF340642A8C0006C
|
||||
:202C60009CB4A9BD120F0077007702E8D11F008F0ADB89E6000040767EB21F7630000C28F3
|
||||
:202C800020402376001082FE060004FE429741960052036480520364009A4D6FA2FF419336
|
||||
:202CA000CBFF013B008F01D8A894A3FFA9850156A400C492439642920EEC4193A892A2FFF3
|
||||
:202CC000008F09D8CBFFA894A3FFA9850156A400C49243984193019A0F91A82D66FF43C036
|
||||
:202CE000008FE4D742850156A400039BC492C000EBB4013B408F80DAA98841850156A5001D
|
||||
:202D000000D4A692C554B456A401447C01D4449209ED4185408FC0D90156A500C592B156F6
|
||||
:202D2000A400447C009B439204EC4492B056A8014397439284FE060008FE407651AC103B0F
|
||||
:202D400069FF4076B1B3267600002F76000040762EB5407641B3407663A81F76BF010C1A31
|
||||
:202D600001001F76BF010B1A0100412B41920A521263012920FF50C340769BB31F76BF0112
|
||||
:202D80000F1A01001F76BF010E1A0100410A41920A52F0641F76BF010A1A01001F76BF01EE
|
||||
:202DA0000B1A0100407677A81F765D030692109B407692B50D9A4076EA9201D4418F00C2A3
|
||||
:202DC000A9A04076F99202D4418F00C2A9A04076F99240761F9D1F765D03009A0893407625
|
||||
:202DE00004A3407612944076C6B41F765D030792045203EC4076CDA54076688A407600B493
|
||||
:202E00004076BFA04076488B1F765D0306921F765F033E961F765F03BF563D03412B419231
|
||||
:202E200008520C63013B008F36DB41850156A400C42B410A41920852F664412B41920252D8
|
||||
:202E40001363013B008FF8D741850156A40000BE408FFAD7C47E41850156A500C57E410AB1
|
||||
:202E600041920252EF6422761F76C001BF56292F1A761F766D033B924FEC1F766D033B2B75
|
||||
:202E80001F765D03079204521AED1F765E03219216EC1F766C032F0A1F766C032F921F7605
|
||||
:202EA0005E0321540C641F766C032F2B008F80D34076A5A21F76BF010E1A0100412B4192D2
|
||||
:202EC00080521463013B008F80DA41850156A400C41B307507634185008F80DA0156A4002B
|
||||
:202EE000C40A410A41928052EE64412B419202521363013B008F30DB41850156A400C492CC
|
||||
:202F000007EC4185008F30DB0156A400C40B410A41920252EF64412B41920252E3FF270231
|
||||
:202F2000013B008FE0D741850156A400C492C15619024185008F30DB0156A400C492C056FF
|
||||
:202F40001102013B4185008F32DB0156A400C492805227644185008F32DB0156A400C42BC6
|
||||
:202F60004185008F34DB0156A400C4921AEC4185008F34DB0156A400C42B4185008FF8D724
|
||||
:202F80000156A400C40A4185008FE2D70156A400C488408F30DB41850156A500C57ED36FF2
|
||||
:202FA0004185008F32DB0156A400C493A892A2FFCBFFA894A3FF008F01D8A985A61E035627
|
||||
:202FC00041030156A400408F32DBA6060156A40041850156A500C5920F90A92DC49262FFEA
|
||||
:202FE00044961CED4185008F32DB0156A400C492109CA988A618F0FF4185008F32DB0156F8
|
||||
:20300000A400C47EA06F013B008F32DB41850156A400C40A4492A0FF44964440F5EF016F2D
|
||||
:20302000013B008FE4D741850156A400408F32DB41850156A500C488008F80DAC5850156D5
|
||||
:20304000A400A692C4540D634185008F32DB0156A400408FC0D9C4850156A500BF56C50127
|
||||
:20306000BF564301008F32DB41850156A400C492185219644185008F32DB0156A400C492AA
|
||||
:20308000305211624185008F32DB0156A400408F45DBC492E89CA9850156A500C592095239
|
||||
:2030A000B35643054185008F32DB0156A400408F00D9807632DBC4850156A5004185015655
|
||||
:2030C000A600008F80D7C6850156A400C492C59EA98556FF435419644185008F32DB015615
|
||||
:2030E000A400C492105205ED1F765F03265C026F01D44185408F32DB0156A5008076C0D996
|
||||
:20310000C5850156A600C67C4185008F32DB0156A400408FC0D9C4850156A500C592C156AE
|
||||
:203120001B01BF564203026F420B42920E65013B008F32DB41850156A4004292C49441937B
|
||||
:20314000407642940052F1EC4292FD9C4396026F430A43920E63013B008F32DB4185015675
|
||||
:20316000A4004392C4944193407642940052F1EC4292439E019C4596013B008F32DB418524
|
||||
:203180000156A4004392C472422B459242545765013B008F32DB41850156A4004292C494CE
|
||||
:2031A00043964385008F80D70156A400408F00D943850156A500C492C5964385008F80DABF
|
||||
:2031C0000156A400C42B008FC0D943850156A400C49219EC4385008FC0D90156A400C40B05
|
||||
:2031E0004385008FC0D90156A400C4920CED4192789C435408EC4185008F34DB0156A400C4
|
||||
:20320000BF56C4014385008FC0D90156A400C49212ED4393A892A2FF008F36DBCBFFA8943D
|
||||
:20322000A3FFA9850156A40043930F91019AA82D66FFC498420A45924254AB624185008F01
|
||||
:2032400032DB0156A400455DC493009A008F00D940764BA4013B008FE0D741850156A40083
|
||||
:20326000408F30DB41850156A500C492C596008F32DB41850156A4004592C472422B429256
|
||||
:2032800008522363013B807636DB4285408F01D80156A600035641030156A50042850156E8
|
||||
:2032A000A500008F01D8C592C6CEA980035641030156A40042850156A400A792C45405ED50
|
||||
:2032C000420A42920852DF644292085221ED422B429208521763013B008F36DB4285408F6E
|
||||
:2032E00001D80156A400035641030156A50042850156A500C5925EFFC4C0420A42920852EC
|
||||
:20330000EB644185008FFAD70156A400C40A0002A61E009A4193B056A901005203ED010246
|
||||
:20332000A61EA606008F30DB0156A400C49219ED0002A61E009A4193B056A901005203ED06
|
||||
:203340000102A61EA606008F30DB0156A400BF56C401076F4185008F32DB0156A400C40AEA
|
||||
:20336000410A41920252E4FFDDFD4076B0A91F765F033FCC0200C0FF07EC1F765F033F180B
|
||||
:20338000FDFF4076D09F1F765F033FCC0400C1FF07EC1F765F033F18FBFF407629A11F76F6
|
||||
:2033A0005F033FCC0800C2FF07EC1F765F033F18F7FF4076BFA01F765F033FCC2000C4FFA6
|
||||
:2033C00007EC1F765F033F18DFFF4076D5881F767A03060605EC1F765E031118FBFF1F76FE
|
||||
:2033E0005E03009B119200D4C1FF1F766C030190B056A8010053B156A4013E92A4CE05EC24
|
||||
:203400001F765F033F1A04001F765E0311CC0400C1FF1F766C033E961F765F033FCC800067
|
||||
:20342000C6FF46EC1F765F033F187FFF412B419280520D63013B008FC0D941850156A40023
|
||||
:20344000BF56C401410A41928052F564412B419202521F63013B008F32DB41850156A4009B
|
||||
:2034600000BE408F30DBC47E41850156A500008FFAD7C57E41850156A400408FF8D7C47E6C
|
||||
:2034800041850156A500C57E410A41920252E364412B419208520C63013B008F36DB4185C4
|
||||
:2034A0000156A400C42B410A41920852F664412B41920252E3FFDFFC005205EC008F00D05E
|
||||
:2034C00048A8046F008F80D348A8488A4076D5984296A91BFFFF59EC00021F767A03101EA1
|
||||
:2034E0001F767A03121E1F76BF010F1A01002D6F488A4076B599496F488A4076B999456F53
|
||||
:20350000488A40766A9A416F488A4076159A3D6F488A40766E9A396F488A4076FC9A356F92
|
||||
:20352000488A4076499B316F488A4076059C2D6F488A4076019C296F488A407653A1256FED
|
||||
:20354000488A40766CA2216F4292375211623752F0EC335208623352D8EC0352EEEC065251
|
||||
:20356000F0EC136F3452DDEC3552CBEC0E6F3A5208623A52C2EC3852CCEC3952CEEC056FB8
|
||||
:203580003B52B7EC3C52D1EC410A419202529564EFFF71FC02FE421E428AC49282FE0600E2
|
||||
:2035A00004FE437C421E428A4392C49684FE0600BDB206FE42A8428A008DA001949271EC8D
|
||||
:2035C000428A942B428A0FD094924396013B4385008F00D70156A400C4920352096843856D
|
||||
:2035E000008F00D70156A400C41B90011069428AD492025205ED1F76BF01081A0400428AC2
|
||||
:20360000099A40760A92A928FFFF4D6F4392335207ED428A43920CD094964392446F4385E5
|
||||
:20362000008F00D70156A400C492FE9CA9804206008F00D7A70DA61E43850156A4000ED148
|
||||
:203640000ED0C492FF9CA9804206A70DA98A03569C08A68A94CA44964528FFFF428A408FD8
|
||||
:2036600000D743850156A5000EDCC592455DFE9CA90E40769AB14596445407ED428A439272
|
||||
:203680000CD0949643920F6F428AD492025205ED1F76BF01081A0400428A099A40760A921D
|
||||
:2036A000A928FFFF86FEBE8B0600BDB204FE439642A81F766C03BF560101428A4283008DFB
|
||||
:2036C0003203408DA10194929D96428A008DA20143929496000201195AFF443F008FA101C9
|
||||
:2036E000445D42060156A400020240769AB14496428A008DA301FF9094964492428A008D22
|
||||
:20370000A401A7FFFF909496428A008DA501942B428A008DA601942B408FA101428A4206A3
|
||||
:203720000156A500060240762A9284FEBE8B06000AFE461E44A846C5AC281F00013B44C4A8
|
||||
:20374000A7062256A70740FF0156A60048C2488AC49249960202421E4606C000ABB404EC8A
|
||||
:2037600049CCFF00046F4992A7FFFF908AFE060002FE42A882FE060004FE42A8428A13D019
|
||||
:203780009492FF90A90E441E428A12D09492FF90A988440637FFA6AF441E428A11D09492BD
|
||||
:2037A000FF90A988440637FFA6AF441E428A10D09492FF90A988440637FFA6AF441E428A7D
|
||||
:2037C00017D042839492FF90A90EE51E428A16D042C442839492FF90A980E50637FFA7AFFC
|
||||
:2037E000E61E428A15D0428342C49492FF90A980E50637FFA7AFE61E428A14D0428342C475
|
||||
:203800009492FF90A980E50637FFA7AFE61E428A02020156E400428A4406F41E428A0AD076
|
||||
:203820004406941E3A9A428A4076529984FE0600BDB204FE42A8428A42830AD0E4060219F8
|
||||
:20384000958A40769599428A42C4A95DE4060119968A407695990356A908A5944496428A9C
|
||||
:203860004283408D32030ED09C929596428A0FD0BF5694334328FFFF428A435D02020EDC00
|
||||
:2038800040769AB14396428A42830AD0E4060219958A435D4076B9B14396449243540BEDC1
|
||||
:2038A000428A339A40765299428A008D3C03BF569401116F428A008D3C03942B428AD49283
|
||||
:2038C000025205ED1F76BF01081A0400428A099A40760A9284FEBE8B060002FE42A882FE2B
|
||||
:2038E0000600BDB206FE42A81F766C03BF560101428A13D09492FF90A90E441E428A12D01F
|
||||
:203900009492FF90A988440637FFA6AF441E428A11D09492FF90A988440637FFA6AF441EC0
|
||||
:20392000428A10D09492FF90A988440637FFA6AF441E2FFF0040440F14692FFF0020440FDF
|
||||
:203940000A664318FF0FAD5C4492029B85DC4076D49C076F4318FF0F44064076C798459672
|
||||
:20396000428A4283008D3203408DA10194929D96428A008DA201BF569438428A4592008D1F
|
||||
:20398000A301FF9094964592428AA7FF008DA401FF909496428A008DA501942B428A008D7F
|
||||
:2039A000A601942B4628FFFF008FA1014206465D0156A400060240769AB14696428A469295
|
||||
:2039C000008DA701FF9094964692428A008DA801A7FFFF909496428A008DA901942B428A32
|
||||
:2039E000008DAA01942B408FA101428A42060156A5000A0240762A9286FEBE8B060006FEFA
|
||||
:203A000042A8428A13D09492FF90A90E441E428A12D09492FF90A988440637FFA6AF441E74
|
||||
:203A2000428A11D09492FF90A988440637FFA6AF441E428A10D09492FF90A988440637FFAA
|
||||
:203A4000A6AF441E452B428A15D045939492A8384596428A14D045939492A83845962FFF3E
|
||||
:203A60000004440F14692FFF0002440F0A664318FF00AD5C4492029B85DC4076899C076FF7
|
||||
:203A80004318FF00455C44064076CD98428A399A4076529986FE0600BDB208FE42A81F7608
|
||||
:203AA0006C03BF560101428A13D09492FF90A90E441E428A12D09492FF90A988440637FFEF
|
||||
:203AC000A6AF441E428A11D09492FF90A988440637FFA6AF441E428A10D09492FF90A988D3
|
||||
:203AE000440637FFA6AF441E428A17D09492FF90A90E461E428A16D09492FF90A988460628
|
||||
:203B000037FFA6AF461E428A15D09492FF90A988460637FFA6AF461E428A14D09492FF907F
|
||||
:203B2000A988460637FFA6AF461E428A4283008D3203408DA10194929D96428A008DA20102
|
||||
:203B4000BF569434008FFFFF48A8008FA101485D42060156A400020240769AB1A90E481ED0
|
||||
:203B6000485D448A46064076B9B1A90E481E408FA1014206428A0156A500010240762A9253
|
||||
:203B8000428A008DA101BF569434408FA101428A42060156A500010240762A92428AC48A3D
|
||||
:203BA000E4CC4000C5FFFBEC428A4606448340769392428AC48AE4CC4000C5FFFBEC428A2F
|
||||
:203BC0004892008DA101FF9094964892428AA7FF008DA201FF909496428A008DA301942B32
|
||||
:203BE000428A008DA401942B408FA1014206428A0156A500060240762A9288FEBE8B060038
|
||||
:203C000002FE42A882FE060002FE42A882FE06000AFE42A8428A13D09492FF90A90E441E55
|
||||
:203C2000428A12D09492FF90A988440637FFA6AF441E428A11D09492FF90A988440637FFA6
|
||||
:203C4000A6AF441E428A10D09492FF90A988440637FFA6AF441E428A17D09492FF90A90EC5
|
||||
:203C6000461E428A16D09492FF90A988460637FFA6AF461E428A15D09492FF90A98846062A
|
||||
:203C800037FFA6AF461E428A14D09492FF90A988460637FFA6AF461E428A1BD09492FF90F8
|
||||
:203CA000A90E481E428A1AD09492FF90A988480637FFA6AF481E428A19D09492FF90A98871
|
||||
:203CC000480637FFA6AF481E428A18D09492FF90A988480637FFA6AF481E428A1CD09492EE
|
||||
:203CE000FF9049960F6F4406468A48C4A6934076899C0D6F4406468A48C4A6934076D49C9D
|
||||
:203D0000066F0452F1EC0552F6EC056F428A3C9A407652998AFE060006FE459744A84196DA
|
||||
:203D20001F766C030002141E1F76300014282040008F64D74076A39D0052FBEC4593459242
|
||||
:203D4000D0FF0190A89445962DEC4192209B1F90A99F4697459246542A5646081F765D033D
|
||||
:203D60004406301E1F765D03460E321E1F765D0303564101A90E341E008F64D7408F70D799
|
||||
:203D80004076AE9D008F64D74076A39D0052FBEC460E015644004692417246924574459247
|
||||
:203DA000D5ED1F7630001428104086FE060006FE459744A841961F766C030002141E1F76F6
|
||||
:203DC000300014282040008F64D74076A39D0052FBEC45934592D0FF0190A89445962DECDF
|
||||
:203DE0004192209B1F90A99F4697459246542A5646081F765D034406361E1F765D03460E46
|
||||
:203E0000381E1F765D0303564101A90E3A1E008F64D7408F76D74076B99D008F64D740763B
|
||||
:203E2000A39D0052FBEC460E0156440046924172469245744592D5ED1F7630001428104014
|
||||
:203E400086FE060002FE1F765D0328C5008F64D7673E22761F763400008FC49D1CA81A76E2
|
||||
:203E600069FF40762DB21F7674030F8F404242A83406C0009CB4A9BD120F0077007702E886
|
||||
:203E80004116008F12DB89E6000040767EB22376002082FE060002FE42A822761F76BE01E5
|
||||
:203EA00008CCFCFF01501F76BE0108961F76BE0108CCF3FF04501F76BE0108961F76BE013C
|
||||
:203EC00008CCCFFF10501F76BE0108961F76BE0108183FFF1F76BE010B1A08001F76BF0166
|
||||
:203EE0000118F7FF1A761F76C101BF5600071F76C101BF56011F1F76C101022B1F76C10149
|
||||
:203F0000BF56040C1F76C1010A2800801F76C1010B2B1F76C1010C2B1F76C101BF560F10CD
|
||||
:203F2000428AD42B428A0002C41E1F76C101001A800082FE69FF06001F76BF01011A0800AF
|
||||
:203F400006001F76BF010118F7FF060002FE42A8428AD492039003EC009A026F019A82FE2D
|
||||
:203F6000060004FE44A042A8428A4406C41E428AD41A010084FE060004FE44A042A8428A94
|
||||
:203F80004406C41E428AD41A020084FE06001B76F0FF0500BDA8BDA0BDC2BDC3BDAB00E221
|
||||
:203FA000BD0003E2BD0003E2BD0103E2BD0203E2BD0330E6000669FF4229165622760102C0
|
||||
:203FC0001F766C03015614001F765D032AC5008F64D769FF673E1A76AFE2BE03AFE2BE0284
|
||||
:203FE000AFE2BE01AFE2BE0080E2BE00BE87BEC5BEC4BE83BE8A0300F1FF1776027602FE37
|
||||
:2040000042A8EFFFBE01428AD4400CEF1F765D03BF563D01428AD41A0400428A0AD094C529
|
||||
:20402000673E428AD441CC56BE011F765D03BF563D0D428AD41A0800428A0AD094C5673E5F
|
||||
:20404000EFFFB1011F76C101BF5600871F76C101082800061F76C101021A20001F765D03B8
|
||||
:20406000BF563D02EFFF9F011F76C10102CC4000C5FFC15698011F76C10107921F765D03A0
|
||||
:204080003F96428A08D094C5673E1F765D03BF563D03EFFF8801428A0AD094C5673E1F76AF
|
||||
:2040A000C101BF5600871F76C101082800021F76C101021A20001F765D03BF563D04EFFF4D
|
||||
:2040C00072011F76C10102CC4000C5FFC1566B011F76C10107921F765D033F961F765D0312
|
||||
:2040E000BF563D05EFFF5F011F76C101BF56008F428AC48A1F76C101E49208961F76C10144
|
||||
:20410000021A20001F765D03BF563D06EFFF4B011F76C10102CC4000C5FFC15644011F76C2
|
||||
:20412000C10107921F765D033F961F765D03BF563D07EFFF38011F76C101BF56008F428A1E
|
||||
:20414000C48A1F765D033E58C48A1F76C101949208961F765D033E0A1F76C101021A20004D
|
||||
:204160001F765D03BF563D08EFFF1D011F76C10102CC4000C5FFC15616011F76C10107929D
|
||||
:204180001F765D033F96428AC48A1F765D033E0ED40F0BED428A08D094C5673E1F765D0388
|
||||
:2041A000BF563D09EFFFFF001F765D03BF563D07EFFFF900428A0AD094C5673E1F76C10187
|
||||
:2041C000BF5600871F76C101082800051F76C101021A20001F765D03BF563D0AEFFFE30002
|
||||
:2041E0001F76C10102CC4000C5FFC156DC001F76C10107921F765D033F961F765D03BF56DF
|
||||
:204200003D0BEFFFD0001F76C101082B1F76C101021A20001F765D03BF563D0CEFFFC30077
|
||||
:204220001F76C10102CC4000C5FFC156BC00428A08D094C5673E1F76C10107401F765D034D
|
||||
:20424000BD563D09CD56AF00428AD418FBFF428AD418FEFF1F765D033D2B1F765D033E2B11
|
||||
:20426000EFFFA1001F76C101BF5600871F76C101082800031F76C101021A20001F765D03AA
|
||||
:20428000BF563D0EEFFF8F001F76C10102CC4000C5FFC15688001F76C10107921F765D0394
|
||||
:2042A0003F961F765D03BF563D0F7C6F1F76C101BF56008F428AC48A1F76C101E492089668
|
||||
:2042C0001F76C101021A20001F765D03BF563D10696F1F76C10102CC4000C5FF63EC1F760F
|
||||
:2042E000C10107921F765D033F961F765D03BF563D11586F1F76C101BF56008F1F76C10128
|
||||
:20430000082B1F76C101021A20001F765D03BF563D12486F1F76C10102CC4000C5FF42EC70
|
||||
:20432000428AC48A1F765D033E58C48A1F76C101079294961F765D033E0A1F765D03BF5629
|
||||
:204340003D13306F428AC48A1F765D033E0ED40F12ED428A08D094C5673E1F765D033D2B32
|
||||
:204360001F765D033E2B428AD418F7FF428AD418FDFF186F1F765D03BF563D11136F1F7687
|
||||
:204380005D033D9213520E660356A901C07668C1A988A706A60DA71EA92401DFA824A71E1F
|
||||
:2043A000207682FE0600BDB210FE408F00C1AD5C0E028FDC40760DB5412B41928052096757
|
||||
:2043C0004158008F80D7942B410A41928052F9681F765F033E2855021F765F03BF563D034E
|
||||
:2043E0001F765D03079204521EED1F765F03BF5620021F765F03BF5621641F765F03BF5603
|
||||
:2044000022011F765F03BF5623011F765F032428F4011F765F032528E8031F765F03BF56D6
|
||||
:2044200026051D6F1F765F03BF5620141F765F03BF5621641F765F03BF5622641F765F036B
|
||||
:20444000BF5623011F765F032428F4011F765F032528E8031F765F03BF5626011F765D0394
|
||||
:20446000069201521F765E03B15620091F765E03B15621191F765D030792045219ED412B9E
|
||||
:204480004192075215671F765D03AD5C0692FF9C8FDC4158A92D07350156A4004159408FC9
|
||||
:2044A000E8D794929D96410A41920752ED681F765D03079205521F765F03B156280A0252AF
|
||||
:2044C0001F765F03B1562808015228ED1F765F0330286C071F765F0331286C071F765F03CA
|
||||
:2044E0003228C4091F765F033328C409412B4192185214674158008F45DB949209520AED92
|
||||
:20450000008FB0D7BF5694464158008FC8D7BF56943C410A41921852EE681F765D0307927E
|
||||
:2045200002522EED1F765F033028BC021F765F033128C409412B419206520F674158008FAD
|
||||
:20454000B0D7BF5694AA4158008FC8D7BF569496410A41920652F368BF5641064192085221
|
||||
:204560000F674158008FB0D7BF5694734158008FC8D7BF569469410A41920852F36890FEC0
|
||||
:20458000BE8B0600BDB202FE412B4192805213674158009A008F80DA94964158408F00D94B
|
||||
:2045A00095964158008FC0D9BF569401410A41928052EF68A9287E3F008F40D8A828020116
|
||||
:2045C0004076D49C809A008F40D84076ECB142961F7663030092425425ED421BFFFF22EC2B
|
||||
:2045E0001F7662033E921F765D0306541BED412B419280520D6741584159008F40D8408F6C
|
||||
:2046000080D794929D96410A41928052F5684076D5881F765F03BF563D031F765F033F2BDD
|
||||
:20462000196F4076D09F4076D5881F765D0306921F765F033E96407629A11F765D030B9250
|
||||
:2046400009EC1F765F033F1A10001F766D033C28FFFF82FEBE8B060002FE422B412B419223
|
||||
:20466000805211674158008F80D7408F40D89492955405EC94929596BF564201410A4192C3
|
||||
:204680008052F168429211EC008F40D8809A4076ECB11F7663030096A9287E3F008F40D844
|
||||
:2046A000A82802014076899C82FE0600BDB208FE42A8428A11D0949244964283428A12D146
|
||||
:2046C00013D003569D0894CA4596428A1F767403008DA1013B929496428A008DA201BF56B1
|
||||
:2046E0009403428A008DA301035645019496428A10D094924696472B45924754E9FF97004C
|
||||
:2047000046926AEC47924494E89C10523D6747924494008F40DEE89CA90E30FF0156A4006D
|
||||
:20472000AFE2C4008CE6000000770077A6BF120F008DA101A692A7FFFF90A98803564701D0
|
||||
:20474000039CA9804206A70DA98A947E47924494008F40DEE89CA90E30FF0156A400AFE2FC
|
||||
:20476000C4008CE6000000770077A6BF120FA692FF90A98803564701049CA9804206A70D31
|
||||
:20478000A98A947E4E6F47924494008F80D7F09CA95894CC00FFC7FFA98803564701008D6F
|
||||
:2047A000A101039CA9804206A70DA98A947E4792008F80D74494F09CA9589492FF90A98844
|
||||
:2047C000008DA10103564701049CA9804206A70DA98A947E266F4792008F80D74494A958D2
|
||||
:2047E00094CC00FFC7FFA98803564701008DA101039CA9804206A70DA98A947E4792008F22
|
||||
:2048000080D74494A9589492FF90A988008DA10103564701049CA9804206A70DA98A947EA8
|
||||
:20482000470A45924754E6FF6DFF4328FFFF008FA1014206435D0156A40003564501039CA9
|
||||
:20484000A90E40769AB14396008DA10103564501039CA9884206A60DA98A4392FF9094966D
|
||||
:2048600003564501049CA9884206A60DA98A4392A7FFFF90949603564501059CA9884206AD
|
||||
:20488000A60DA98A942B03564501069CA9884206A60DA98A942B03564501079CA988420659
|
||||
:2048A000A60DA98A942B03564501089CA9884206A60DA98A942B428A008D9E01BF56940150
|
||||
:2048C000408FA1014206428A0156A50003564501089CA90E40762A9288FEBE8B0600BDB2A7
|
||||
:2048E00006FE42A8452B459208521167458842060ED0A60DA98A42069480408DA101A60D5A
|
||||
:20490000A98A9C7F450A45920852F168428A11D0949243964283428A12D113D003569D086F
|
||||
:2049200094CA449643584492008F80D79496428A008D9E01BF569401408FA1014206428A97
|
||||
:204940000156A5000A0240762A9286FEBE8B060006FE42A81F765E03209253EC428A008DDC
|
||||
:20496000A101BF5694AA428A008DA201BF569455BF5644FF452B1B6F459345920191C0FFF6
|
||||
:20498000008FA2D792FFA958A82D949264FFFF9043964592029C008DA101A9884206A60DE7
|
||||
:2049A000A98A4392949643924472450A1F765E0303562001FF9C4554E0661F765E030356B2
|
||||
:2049C0002001013B428A019C008DA101A9850156A40044925EFFFF909496428A008D9E01D5
|
||||
:2049E000BF569401408FA1011F765E034206428A0156A50003562001029CA98540762A92DE
|
||||
:204A000086FE06001F76BF010F1A008006003CFE42974196227600521DED008F006078A81B
|
||||
:204A2000008F00617AA8008FC0607CA81F76BE0109CCFFCFA91A00101F76BE0109961F763F
|
||||
:204A4000BE0109CCFF3F1F76BE01A91A004009961C6F008F006278A8008F00637AA8008F4F
|
||||
:204A6000C0627CA81F76BE0107CCFFFCA91A00021F76BE0107961F76BE0107CCFFF31F766A
|
||||
:204A8000BE01A91A00080796788A08022AD0941E788A2CD0941E7A8AD41E7A8A0AD0941E01
|
||||
:204AA0007A8A12D0941E788A0002C41E788AD418FEFF7A8AC41E7A8ACC1A00807A8A1F76A4
|
||||
:204AC0005D0301DCC4CC03E0A98803560802A9080004A9CCFF0781FFA6CAC496788AD41A28
|
||||
:204AE00002007A8A08D00002941E7A8A09DCC41A00807A8A09DCC41A00407A8A1F765D03DD
|
||||
:204B000009DCC4CC03E0A98803560802A9CCFF0781FFA6CAC4961F7681010F8FFFFF02A887
|
||||
:204B2000788AD41A04007A8A10D00002941E7A8A11DCC41A00807A8A11DCC41A00407A8A87
|
||||
:204B400011DCC4CC03E0A91AF001C4961F7681010F8FFFFF04A8788A0702C41E788A000297
|
||||
:204B600008D00119941E788A00020CD00119941E788A00021ED00119941E788A000222D031
|
||||
:204B80000119941E788A000218D00119941E0002621E621A0080621A0040621A0020621A3F
|
||||
:204BA0000002621A8000621A0010788A14D06206941E18D0788A94CC1000C3FFFCEC788A65
|
||||
:204BC00016D09406601E60CCFFFCA91A000160965FCC00FF17505F9660CC87FF3050609648
|
||||
:204BE00060CCF8FF01506096788A6006941E6218FFEF788A14D06206941E18D0788A94CC7F
|
||||
:204C00001000C3FFFCED7C83088F7064C5A87C83D5A8788A010230D0941E788A32D00002C9
|
||||
:204C2000941E788A2ED0941E561E788A24D00602941E788A26D00002941E561A0100551A60
|
||||
:204C40000200561A0200561A0400788A20D05606941E1F763700008F26A508A81F763300CE
|
||||
:204C6000321A10001F763700008F91A50AA81F763300321A2000237600011A761F7674032B
|
||||
:204C800000021A1E1F767403181E1F767403242B1F7674031C1EBCFE69FF06000EFE467D00
|
||||
:204CA000459744A84196008F00604CA8008F00614EA81F76740325920FEC4C8A08D0940686
|
||||
:204CC0000190009B58FF08ED4C8A0AD094060190009B58FF5EEC4C8A010208D0941E4C8A0C
|
||||
:204CE0000AD0941E4592448A013B019CA9850156A4004483C4855AFF45850156A500AA1890
|
||||
:204D00000000C5853FFFABCAAACB4A1E448A4592039CA9850156A400C4855AFF448A459205
|
||||
:204D2000029CA9850156A400AA180000C4853FFFABCAAACB481E4E8A4806F41E4E8A4A06B3
|
||||
:204D4000E41E22764C8AC418FEFF4E8A4592C4964E8A03564601A985D41E4C8AC41A0100B4
|
||||
:204D60004C8A2ED00002941E1A764C8A0102E41E1F767403BF5625011F765D030792055214
|
||||
:204D800004ED4076FFA2056F1F76BF010E1A01008EFE06000CFE42A8428AF406461E428A5D
|
||||
:204DA000E406481E428AC4927F904396428A0129D40640FF44964392045207680752056652
|
||||
:204DC00000021F767A03101E43920A5207680D52056600021F767A03121E48064C974892D8
|
||||
:204DE0004B9646064A9746924996449209EC43928052066743584C92008F80D79496430A39
|
||||
:204E000044920152096943928052066743584B92008F80D79496430A44920252096943929D
|
||||
:204E20008052066743584A92008F80D79496430A4492035209694392805206674358499238
|
||||
:204E4000008F80D794961F76BF010F1A01008CFE06001B76F0FF0500BDA8BDA0BDC2BDC3ED
|
||||
:204E6000BDAB00E2BD0003E2BD0003E2BD0103E2BD0203E2BD0330E6000604FE69FF4229AC
|
||||
:204E800016560102421E1F7633003292449623760001267600011F76330032921F76330052
|
||||
:204EA000322B1F7633002128FFFF10291F7680011E921F904396432D42063B56421E1F76C1
|
||||
:204EC000800142060C1E013B008F006169FF035643030156A4004076C7A41F763300219215
|
||||
:204EE000A9CDFFFE1F763300C7FF01900150019087FFA8CA2196103B1F76330044923296DE
|
||||
:204F000084FEAFE2BE03AFE2BE02AFE2BE01AFE2BE0080E2BE00BE87BEC5BEC4BE83BE8ADA
|
||||
:204F20000300F1FF177602761B76F0FF00E2BD0030E6000602FE422916561F7633003292DB
|
||||
:204F4000419623760001267600011F76330032921F763300322B1F7633002128FFFF10294A
|
||||
:204F600001021F768001061E1F767403240A1F7633002192A9CDFFFEC7FF1F7633000190AD
|
||||
:204F80000150019087FFA8CA2196103B1F7633004192329682FE80E2BE00F1FF177602763D
|
||||
:204FA0000AFE2276008FF1A61F7635000AA81A7669FF40767EB51F763300221A2000237611
|
||||
:204FC00001001F765D030792025209ED1F76C4010218F0FF1F76C4010318F0FF015219EDD8
|
||||
:204FE0001F76C40102CCF0FF01501F76C40102961F76C40103CCF0FF05501F76C4010396F7
|
||||
:205000001F76C40103CC0FFF1F76C401405003961F76C4011CCCFF3FA91A00401F76C401F9
|
||||
:205020001C961F76C401011A00011F76C401011A00081F76C401191A10001F76C401001ABA
|
||||
:2050400010001F76C401001A000F1F76C4010018BFFF1F76C401011A00401F763300BF56FB
|
||||
:2050600021011F76A001191A00081F76A00119CCFFF8A91A00041F76A00119961F76A001A9
|
||||
:205080001ACCFFFCA91A00011F76A0011A961F76A001BF5609801F76A00100CC7FFCA91A71
|
||||
:2050A00000011F76A00100961F76A00100CCFFE3A91A00081F76A00100961F76A001013B36
|
||||
:2050C000019A00CD001CD9FFA82D66FFA985441E1F76A00100CC8003C6FF0AEC1F76A00134
|
||||
:2050E00000CC8003C6FF80FFA985461E036F0102461E44871F76740344564600421E340661
|
||||
:20510000C0009CB4008FA60E42A8C0009CB4481E1F76A001489205961F76A0010018FCFFE8
|
||||
:205120001F765D030A921CEC02E8D01B1F767A0303E200001F767A03BF56020F1F767A03C0
|
||||
:20514000BF5603041F767A03BF5604091F767A03BF560528008F8A661F767A0308A81F76D5
|
||||
:205160005D0309921CEC02E8800B1F767A0303E200001F767A03BF5602FA1F767A03BF5676
|
||||
:2051800003191F767A03BF5604961F767A03BF5605C8008FF22B1F767A0308A81F767A03BE
|
||||
:2051A00008061F767A03061E492B499212521B63013B008F64DE00BE49850156A400A685BB
|
||||
:2051C000A9BD120F0077408F40DEC47E0356490189E600000156A50003E2C500490A4992BC
|
||||
:2051E0001252E7648AFE06001B76F0FF0500BDA8BDA0BDC2BDC3BDAB00E2BD0003E2BD0083
|
||||
:2052000003E2BD0103E2BD0203E2BD0330E600060AFE69FF42291656412B1F763300229257
|
||||
:20522000499623760100267601011F7633002218FA001F7633002128FFFF10291F767A0301
|
||||
:20524000060606EC01021F767A03415606001F767A0308061F767A030A19060FE4FF13013D
|
||||
:205260001F766D033C920EECFF9C1F766D033C9609ED1F765F033F18EFFF1F765F033F1A6D
|
||||
:2052800004001F767A0303921F767A030A541BED1F767A030B9241961F765D0309920FECDA
|
||||
:2052A0001F766D0300921F767A030B54B156410D1F767A03019C0B54B156410C419269FFF4
|
||||
:2052C00040766FA91F767A0304921F767A030A54E7FF8300472B1F765D030B9247547C65FF
|
||||
:2052E0001F767A030B2D1F765D030B1247944896013B008F087147850156A400C492C3FF76
|
||||
:20530000A90EA9BD120F00770077007700778BE60000007703E2440069FF482D008FC0DB5B
|
||||
:2053200012350156A40040760BB403E24600013B008F40DE035648010156A400AFE2440030
|
||||
:20534000AFE2C40120E7080000778CE600001F767A0300D4A9BF120FA98556FF05541F761F
|
||||
:205360007A03B856A4010C7C1F767A030C9207EC4785008F8DDE0156A400C40A4885408FA7
|
||||
:2053800064DE0156A50000D41F767A03009AC593B056A9010052B156A4010C92A4CA16EC3B
|
||||
:2053A0001F767A0306060AEC03564801008F40DE0156A4004406C41E096F03564801008FBA
|
||||
:2053C00040DE0156A4004606C41E470A1F765D030B92475486621F767A030A0A1F767A03E8
|
||||
:2053E0000A921F767A0302544D681F767A030A2B69FF407657A9472B1F765D030B924754F0
|
||||
:2054000024651F767A030B2D1F765D030B12479448964076718C013B008F8DDE47850156E2
|
||||
:20542000A400408F64DE48850156A500C492C596008F8DDE47850156A400C42B470A1F76A7
|
||||
:205440005D030B924754DE621F767A03013B0B92008F76DE019CA9850156A4001F767A03CE
|
||||
:205460000B96C49204EC1F767A030B0A1F766D0300921F767A03029C0B5404621F767A0300
|
||||
:205480000B2B1F76C401011A00401F76C401191A10001F763300BF562101103B1F76330072
|
||||
:2054A000499222968AFEAFE2BE03AFE2BE02AFE2BE01AFE2BE0080E2BE00BE87BEC5BEC425
|
||||
:2054C000BE83BE8A0300F1FF1776027622761F76BE011618FCFF1F76BE011818FCFF1F7622
|
||||
:2054E000BE011A1A01001F76BE011B1A01001A7669FF060022761F76BE01061800001F7691
|
||||
:20550000BE01071800FF1F76BE0108183F001F76BE01091800FF1F76BE011618C0FC0F8FAB
|
||||
:2055200000F0ABA81F76BE01AB93AA9218C11F76BE0119C01F76BE010B18EFFF1F76BE019B
|
||||
:205540000B18DFFF1F76BE010B18BFFF1F76BE011B18F7FF1A76009B1F76BF0100D409CC6F
|
||||
:205560000800C2FF1F765D03B056A8010053B156A401087C1F76BF01009B00D401921F764F
|
||||
:205580005D03C5FF0190B056A8010053B156A4010356A40108721F76BF01009B00D401CC9F
|
||||
:2055A0001000C3FF1F765D03B056A8010053B156A4010356A40208721F76BF01009B00D439
|
||||
:2055C00001CC2000C4FF1F765D03B056A8010053B156A4010356A40308721F765D0308926F
|
||||
:2055E0001F765D03019C0696055207EC065205EC075203EC085205ED1F765D03BF56070144
|
||||
:20560000015203EC025205ED1F765D03BF56070403521F765D03B15607021F765D03079205
|
||||
:2056200001521F765D03B1560B021F765D03B156090102521F765D03B1560B011F765D03B7
|
||||
:20564000B1560A012276276FAA28080BAB2B1F76BE010AA9AA2813BCAB2805001F76BE017B
|
||||
:205660001AA91F6F088F45011F76BE010AA81F76BE01018F05001AA8146F088F8A0B1F7607
|
||||
:20568000BE010AA8AA2801F8AB2805001F76BE011AA9076F0152D9EC0252F0EC0452E3ECFC
|
||||
:2056A0001A76009A1F765E0310961F765E03119669FF06001F765D030792025206ED008FB5
|
||||
:2056C000880A1F76BF0104A801520CEDAA28000BAB2B1F76BF0102A9128F00001F76BF0142
|
||||
:2056E0000AA8060006FE41960002441E461E1F765D030792025215ED414003EE441A000893
|
||||
:20570000414103EE441A0002414203EE441A8000414303EE441A080044061F76BF01021ECA
|
||||
:205720001F765D03079201521DED414003EE431A0008414103EE431A0001414203EE431A05
|
||||
:205740000002414303EE451A0200414403EE451A100044061F76BF01041E1F76BF0146062A
|
||||
:205760000C1E86FE060002FE412B1F765D030792025214ED1F76BF0109CC0400C1FF02ED49
|
||||
:20578000410A1F76BF0109CC0200C0FF03ED4108020041921F765E0311961F765D0307929A
|
||||
:2057A000015215ED1F76BF0109CC2000C4FF02ED410A1F76BF0109CC0400C1FF03ED410826
|
||||
:2057C0000200035641011F765E0311961F765D030792045245ED1F76BF0101CC0008CAFF86
|
||||
:2057E00002ED410A1F76BF0101CC0001C7FF03ED410802001F76BF0109CC2000C4FF03ED4E
|
||||
:20580000410804001F76BF0109CC0400C1FF03ED410808001F76BF0101CC0004C9FF03ED2E
|
||||
:20582000410810001F76BF0101CC8000C6FF03ED410820001F76BF0109CC1000C3FF03ED63
|
||||
:20584000410840001F76BF0109CC0200C0FF03ED4108800041921F765E03019011961F7685
|
||||
:20586000BF01009B099200D4C2FF0190B056A8010053B156A4010356A40841721F76BF0151
|
||||
:20588000009B00D401CC4000C5FFB056A8010053B156A4010356A40941721F76BF01009B71
|
||||
:2058A00000D401CC1000C3FFB056A8010053B156A4010356A40A41721F76BF01009B00D449
|
||||
:2058C00001CC2000C4FFB056A8010053B156A4010356A40B41721F765E034192109682FEC0
|
||||
:2058E00006001F76BF01061A010006001B76F0FF0500BDA8BDA0BDC2BDC3BDAB00E2BD00D9
|
||||
:2059000003E2BD0003E2BD0103E2BD0203E2BD0330E600060AFE69FF42291656432BBF5613
|
||||
:205920004601BF564701227601021F766C0301560C002376391110291A761F765F033FCC13
|
||||
:205940000080CEFF04ED69FF40765AAC69FF40766EAA1F766D033A0A1F766D033A92A90EDE
|
||||
:20596000A9BD120F00770077007700778BE60000007712E8000D14AD08641F766D033A2B3E
|
||||
:205980001F766D03BF563B011F767A0301021007A9BD160F007702E8E0340AE800001F76FE
|
||||
:2059A0007A038BE60A0003E2100194E6020014AD0765008F204E1F767A0310A8462B1F7683
|
||||
:2059C0007A0301021207A9BD160F007702E8E0340AE800001F767A038BE60A0003E21201B7
|
||||
:2059E00094E6020014AD0765008F204E1F767A0312A8472B1F765E03472D013B0A33AB92A3
|
||||
:205A00001F765E03462DA98556FFA9270412A98556FFAB93A95505631F765E030412056F0D
|
||||
:205A20001F765E03472D0A121F765E030096472D1F765E030B33AB921F765E03462DA985D8
|
||||
:205A400056FFA9270512A98556FFAB93A95505631F765E030512056F1F765E03472D0B12DB
|
||||
:205A60001F765E030196462D1F765E0306331F765E03472D0C121F765E03ABCA02961F76D7
|
||||
:205A80005E03462D07331F765E03472D0D121F765E03ABCA03961F767A03150A1F767A0328
|
||||
:205AA00015920A5204681F767A03152B442B449207521463013B008FE8D744850156A400C2
|
||||
:205AC0001F767A03C49215540569019A442D66FF4372440A44920752EE641F767A03140A62
|
||||
:205AE0001F767A031492025204691F767A03142B1F765F033F931F765E0301911192019057
|
||||
:205B0000A8CA45961F767A0300D4009A1C93B056A9010052B156A4014592A4CE0DEC1F7684
|
||||
:205B20007A031628F40100021F767A03181E1F767A03BF561A0A45921F767A031C9673EC26
|
||||
:205B40001F767A031692019CA988A6BD120F0077007700771F767A038BE60000169612E8AB
|
||||
:205B6000D01F14AD34641F767A03162B1F767A031A0A1F767A031A920A5204641F767A03C0
|
||||
:205B80001A2B1F767A03AC28E8031A331F767A031A2D64354A1E1F767A034A92AB944A963B
|
||||
:205BA0000A354A941A941F767A031B961F767A03180606EC00021F767A03181E086FAA28A2
|
||||
:205BC000FFFFAB28FFFF1F767A0318A91F767A03149208ED1F767A0300D404D51B85407661
|
||||
:205BE00043B01F767A031492015209ED013B1F767A0301D404D51B85407643B01F767A035A
|
||||
:205C000000D502D41806407643B01F767A031492025237ED1F767A0300D503D41806407650
|
||||
:205C200043B02F6F1F767A03149208ED1F765E0300D400D50085407643B01F767A031492A1
|
||||
:205C4000015209ED013B1F765E0300D501D40185407643B043921F765E0300D502D402CEAA
|
||||
:205C6000A90E407643B01F767A031492025209ED013B1F765E0300D503D40385407643B0B3
|
||||
:205C80008AFEAFE2BE03AFE2BE02AFE2BE01AFE2BE0080E2BE00BE87BEC5BEC4BE83BE8A47
|
||||
:205CA0000300F1FF17760276407673AC049A029B40767BAC407613AD06001F76C00121927A
|
||||
:205CC0000F90045213ED1F76C00111CC8001C6FF02520CED22761F76C001BF5625551F76F7
|
||||
:205CE000C001BF5625AA1A76016F060022761F76C001BF5629681A7669FF060006FE449788
|
||||
:205D000043961F76C00111CC0800C2FF02EC25761F76C00111CC8001C6FF07EC22761F768C
|
||||
:205D2000C00111187FFE1A7622761F76C001111A400043921F76C0010F9021CDF0FF1F76D7
|
||||
:205D4000C001A8CA21961A764392B156A901A90E461E69FFA828C901A92880C3AC1E4456AE
|
||||
:205D60004600461E407673AC1F76C001119201900152FBED22761F76C0011118BFFF1A767A
|
||||
:205D80004492015203EC02520DED22761F76C001039011CD7FFE1F76C00186FFA8CA1196CD
|
||||
:205DA0001A7644920BED46C4013BAC281E00A60640FF2256A60741FF461E449201520BED78
|
||||
:205DC00046C4013BAC281E00A60640FF2256A60741FF461E449202520AED46C4AC281F00B9
|
||||
:205DE000013BA6062256A60740FF461E439218ED4492035215ED22761F76C00111CC7FFEA4
|
||||
:205E00001F76C001A91A0001119669FF20FFDA054076A7B51F76C001111A80011A7646066B
|
||||
:205E20001F767403341E86FE69FF060004FE22761F76C001BF561A011F76C0011B2B1F76C1
|
||||
:205E4000C0011A9206EC1F76C00103561A01026F019AA90E441E1F76740369FF4406421ED6
|
||||
:205E60003406C0009CB4441E1F7674034406381E1F76C0011B9206EC1F76C00103561B010A
|
||||
:205E8000026F019AA90E441E1F7674034406421E3406C0009CB4441E1F7674034406361ED1
|
||||
:205EA0001F762C0035CCF8FF01501F762C0035961F762C00341A04001F762C003418F7FF36
|
||||
:205EC0001F76C0011C1A0800787680001F76C0011C1A10001F76C0011C1A00041F76C0013E
|
||||
:205EE0001C1A00081F76C0011C1A20001F76C0011C1A00011F76C0011C1A00101F76C00139
|
||||
:205F00001C1A00201F76C0011C1A00401F76C0011C1A00801F76C0011C18FBFF1F76C00179
|
||||
:205F20001D1A01001F76C0011D1A02001F76C0011D1A04001F76C0011D1A08001F76C0011E
|
||||
:205F40001D1A10001F76C0011D1A20001F76C0011C1A04001F76C0011D1A00041F76C001D6
|
||||
:205F60001D1A00081F76C0011D1A00101F76C0011D1A00201F76C0011D1A00011F76C001B4
|
||||
:205F80001D1A00021F76C0011D1A00401F76C0011D1A00801F76C001201A00011F76C00107
|
||||
:205FA000201A00021F76C001201A00041F76C001201A00081F76C001201A00101F76C00183
|
||||
:205FC000201A00201A7684FE69FF060002FE22761F762B002028FFFF1F762B002128FFFF42
|
||||
:205FE0001F762B002228FFFF1F762B002328FFFF1F762B002428FFFF1F762B002528FFFF7B
|
||||
:206000001F762B002628FFFF1F762B002728FFFF1A761F76FFCF389241961F76FFCF3992A5
|
||||
:2060200041961F76FFCF3A9241961F76FFCF3B9241961F76FFCF3C9241961F76FFCF3D9242
|
||||
:2060400041961F76FFCF3E9241961F76FFCF3F9241961F762B002F4003EE019A026F009A8E
|
||||
:2060600082FE69FF060022761F762C0035CCF8FF01501F762C0035961F762C003418FCFFFC
|
||||
:206080001F762C003418F7FF1F762C00341A04001F762C00201A60001F762C00201A1C0078
|
||||
:2060A0001F762C00201A03001F762C00201A00301F762C00201A000E1F762C00201A800132
|
||||
:2060C0001F762C00211A40001F762C00201A00401F762C00201A00801F762C00211A0300CF
|
||||
:2060E0001F762C002C1A60001F762C002C1A1C001F762C002C1A03001F762C002C1A0030D5
|
||||
:206100001F762C002C1A000E1F762C002C1A80011F762C002D1A40001F762C002C1A004053
|
||||
:206120001F762C002C1A00801F762C002D1A03001F762C002E1A60001F762C002E1A1C003F
|
||||
:206140001F762C002E1A03001F762C002E1A00301F762C002E1A000E1F762C002E1A800159
|
||||
:206160001F762C002F1A40001F762C002E1A00401F762C002E1A00801F762C002F1A0300F6
|
||||
:206180001F762C00381A07001F762C00381A38001A7669FF407652AF07F6007769FF060009
|
||||
:2061A00022761F76BE01181A03001F76BE01181A0C001F76BE01181A30001F76BE01181AF0
|
||||
:2061C000C0001F76BE01181A00031F76BE01181A000C1F76BE01181A00301F76BE01181AA8
|
||||
:2061E00000C01F76BE01191A03001F76BE01191A0C001F76BE01191A30001F76BE01191A84
|
||||
:20620000C0001F76BE01191A00031F76BE01191A000C1F76BE01191A00301F76BE01191A63
|
||||
:2062200000C01F76BE01141A03001F76BE01141A0C001F76BE01141A30001F76BE01141A57
|
||||
:20624000C0001F76BE01141A00031F76BE01141A000C1F76BE01141A00301F76BE01141A37
|
||||
:2062600000C01F76BE01151A03001F76BE01151A0C001F76BE01151A30001F76BE01151A13
|
||||
:20628000C0001F76BE01151A00031F76BE01151A000C1F76BE01151A00301F76BE01151AF3
|
||||
:2062A00000C069FF407652AF060022761F76BE01261A03001F76BE01261A0C001F76BE01D6
|
||||
:2062C000261A30001F76BE01261AC0001F76BE01261A00031F76BE01261A000C1F76BE016F
|
||||
:2062E000261A00301F76BE01261A00C01F76BE01271A03001F76BE01271A0C001F76BE014D
|
||||
:20630000271A30001F76BE01271AC0001F76BE01271A00031F76BE01271A000C1F76BE012A
|
||||
:20632000271A00301F76BE01271A00C01F76BE01171A03001F76BE01171A0C001F76BE012A
|
||||
:20634000171A30001F76BE01171AC0001F76BE01171A00031F76BE01171A000C1F76BE012A
|
||||
:20636000171A00301F76BE01171A00C01F76BE01281A03001F76BE01281A0C001F76BE01E8
|
||||
:20638000281A30001F76BE01281AC0001F76BE01281A00031F76BE01281A000C1F76BE01A6
|
||||
:2063A000281A00301F76BE01281A00C01F76BE01161A00C01F76BE01091A00C01F76BE0146
|
||||
:2063C000091A00301F76BE01091A000C1F76BE01161A30001F76BE01161AC0001F76BE019B
|
||||
:2063E000161A00301F76BE01161A00031F76BE01161A000C1F76BE01091A00031A7669FFB4
|
||||
:20640000060002FE4196005206EC1F76BF01021A4000056F1F76BF01041A400082FE0600FD
|
||||
:2064200002FE4196005206EC1F76BF01021A0001056F1F76BF01041A000182FE0600009AC7
|
||||
:206440004076FEAF01024076A7B5019A40760DB001024076A7B5009A40760DB001024076DB
|
||||
:20646000A7B5060002FE419640760DB0019A4076FEAF01024076A7B5009A40760DB040769A
|
||||
:20648000FEAF01024076A7B582FE060022FE477D461E437C5C2B5D2B5E2B602B4392015262
|
||||
:2064A000056546064A1EEFFF0D014606B4565C01460656FF4C1E479205640452B456600101
|
||||
:2064C0000264472B4C064E1E572B479257540B650A02421E4E06C0009CB44E1E570A47923A
|
||||
:2064E0005754F7624E06461E46060A655E0A0A02421E4606C0009CB4461E4606F8624C0699
|
||||
:20650000461E5C925E945F96B1565F0147925F72572B096F470B0A02421E4606C0009CB41D
|
||||
:20652000461E570A5F92FC9C5754F56247920263472B019A472D66FF5D96015202ED5D2B2A
|
||||
:20654000008FE80342A84606C0009CB4501E42A84606C000ABB464BE42C2C0009CB4521E12
|
||||
:206560006402421E4606C000ABB40ABE42C2C0009CB4541E0A02421E4606C000ABB4561E51
|
||||
:20658000540656075207500704ED5D2B472B5C2B60921DECBF56570357921965013BAD5C0C
|
||||
:2065A0000356570196DC0156A400C40610ED479257540DECAD5C0356570196DC0156A40052
|
||||
:2065C0000F02C41E016F570B5792E9625C9220ECBF565701579204521B63013BAD5C035600
|
||||
:2065E000570196DC0156A4000F02C40F04EC579203520AEDAD5C0356570196DC0156A400A6
|
||||
:206600000A02C41E056F570A57920452E764572B579204522863013BAD5C0356570196DC79
|
||||
:206620000156A400408F1ADBA9A0C407AD5CA98396DCC585A61E035657010156A400C4C2A0
|
||||
:20664000572D5D9264FF01900AECAD5C0356570196DC0156A40080020156C400570A5792CF
|
||||
:206660000452DA64540637FF5AFF5606AB1800FF621EAA2B6292FF906296612B6292ABCABA
|
||||
:2066800062966192AC281800AACA619652063FFF0090FF91A9276292ABCAA827629661920F
|
||||
:2066A000ABCA619650063B56085600FFA9276292ABCAA82762966192ABCA619662064A1EFB
|
||||
:2066C000013B008F2ADB43850156A400C4925B96572B5792045230635B9210522D62582B2B
|
||||
:2066E000589208520F634A9201905996013B4A0640FF4A1E599240762FB0580A589208522F
|
||||
:20670000F3645B925A96582B589206520E635A92019059965A92A0FF5A96599240762FB0A8
|
||||
:20672000580A58920652F4645B0A40761CB0570A57920452D264A2FE060006FE461E44A8A6
|
||||
:20674000417D4606A98A81DC46A814EC4483859244A04158A0F2008F40DDA092FF90A95856
|
||||
:206760004192C7FF947041964606A98A81DC46A8EEED419286FE06000CFE461E44A8417D8B
|
||||
:2067800000024C1E46064C0F28694CCC01004796448A01294C0640FF0156A400C4924896A7
|
||||
:2067A000479205ED48CC00FFC7FF49964792015204ED4892FF90499649924170008F40DDB9
|
||||
:2067C000FF90A9584192C7FF9470419601024C074C1E46064C0FDA6641928CFE060006FEA7
|
||||
:2067E000439642A84428FFFF452B4392455436694558428A9492FF9044F2462B46920852F8
|
||||
:206800001067444007EF4492C0FFA91C01A04496046F4492C0FF4496460A46920852F268F4
|
||||
:206820004558428A94CC00FFC7FF44F2462B469208521067444007EF4492C0FFA91C01A005
|
||||
:206840004496046F4492C0FF4496460A46920852F268450A43924554CC66449286FE060051
|
||||
:20686000008F000C1F766C0302A8AA28FFFFAB28FFFF1F76300002A91F763000062B1F7633
|
||||
:206880003000072B1F763000041A10001F763000041A200000021F766C03041E1F766C0374
|
||||
:2068A000008F080C0AA81F766C03008F100C12A81F7630000AA91F76300012A91F7630005D
|
||||
:2068C0000E2B1F7630000F2B1F763000162B1F763000172B1F7630000C1A10001F763000B3
|
||||
:2068E000141A10001F7630000C1A20001F763000141A20001F766C030C1E1F766C03141ED8
|
||||
:20690000060008FE03E2460103E2440042A8428A4406E41E428A4606F41EAFE24400AFE284
|
||||
:20692000460100E70800007788E60000007703E24800428AC48A4806D41E428AC48AF42B05
|
||||
:20694000428AC48AFC2B428AC48AE41A1000428AC48AE41A2000428AC48AE418FFFB428ABA
|
||||
:20696000C48AE418FFF7428AC48AE41A0040428A0002D41E88FE0600BD3ABDB2BDAABDA207
|
||||
:2069800002FE0129A9BF120F58FF5B61A85C7F91A8088000421EA493D6FFA85CA9BF160FF0
|
||||
:2069A0006761A85D7F91A8088000A859A958A593D6FFA85DA493A571A8180001A697A418AF
|
||||
:2069C000FF00A518FF007FDCA492A59EA7964D64A90801FF3E62A193A09236FFA859A9584C
|
||||
:2069E000420635FF0EF6A11FA95BA3010AF6A11F2D56A204A32DA03640FF0BF6A11F33FFEE
|
||||
:206A0000009B30FF54FFA20CA39540FFA70801001FF677FF200940FFA70801001FF677FF56
|
||||
:206A20005AFFA7922265A90801FF1363A9A946FF7F91A85BA95AA625A79596FFA20CA395E7
|
||||
:206A4000A9BD120F82FEBE82BE86BE8BBE8E0600009B57FFA8087FFF5AFFA693F260A8283D
|
||||
:206A60000080AA71AB92ED6F20FF0000EA6F5AFFA493A818000196FFA85CA9A9A8087FFF00
|
||||
:206A8000A81C0080A4CBDD6F1F76C001201A0010407652AF22761F762C003518F8FF1F766E
|
||||
:206AA0002C00341A03001F762C003418F7FF1F762C003418FBFF1F762C002ECC9FFF1F7661
|
||||
:206AC0002C0020502E961F762C002ECCE3FF1F762C0008502E961F762C002ECCFCFF1F7691
|
||||
:206AE0002C0001502E961F762C002ECCFFCF1F762C00A91A00102E961F762C002ECCFFF1C9
|
||||
:206B00001F762C00A91A00062E961F762C002E187FFE1F762C002F18BFFF1F762C002E18D6
|
||||
:206B2000FFBF1F762C002E18FF7F1F762C002F1A03001A7607F6007769FF060004FE421E31
|
||||
:206B40000129420640FF421E0002441E4206440F0A6910024076A7B501024407441E420696
|
||||
:206B6000440FF86684FE0600103B1F7633002018FEFF1F763300222B1F763300242B1F76D3
|
||||
:206B80003300262B1F763300282B1F7633002A2B1F7633002C2B1F7633002E2B1F76330031
|
||||
:206BA000302B1F763300322B1F763300342B1F763300362B1F763300382B1F763300232BC4
|
||||
:206BC0001F763300252B1F763300272B1F763300292B1F7633002B2B1F7633002D2B1F7694
|
||||
:206BE00033002F2B1F763300312B1F763300332B1F763300352B1F763300372B1F763300A4
|
||||
:206C0000392B69FF06001F763300201A01001F7633002128FFFF102969FF0600BDB2BDAA13
|
||||
:206C2000BDA203E2BD0403E2BD0506FE03E2440042A808D00CD142C54283AFE2440142C434
|
||||
:206C4000428A4286AFE2F70050E80200428212E3958B42C50ED012E3D6CCAFE2C40000E351
|
||||
:206C60009F4208E3E295AFE2930140E74921007710E70800007703E24600428A42830CD096
|
||||
:206C80000ED194069D1E428A4606941E428A428308D0F406951E428A4406F41EAFE24600E1
|
||||
:206CA00086FEAFE2BE05AFE2BE04BE82BE86BE8B0600AD28000469FF1F5616561A5610E64E
|
||||
:206CC000000240291F76000002291B762276A928ABB5A828000001091B61C076ABB5042916
|
||||
:206CE0000F6F009BA92401DF046C0429A82401DFA61EA1F78624A706A1810109A71EA92414
|
||||
:206D000003635CFF043BA95901DF0900ECFF1A76A928FFFFA828FFFF01090E61FF76FFFF84
|
||||
:206D2000066F01DFBDC3A71E673EBEC5A92401DFA82458FFF76040764AB5407667B50229B8
|
||||
:206D400004295F565AFF42065F56421E00021FF617564200AB063256022920760229042983
|
||||
:206D60005F565AFF420656FF421E00021FF6175642003256022920765AFF00021FF617561C
|
||||
:206D80004200A9A920765AFF00021FF617564200207602FE208F00001F7674032AA81F76F2
|
||||
:206DA0007403208F00FA2CA81F7674032A061F7674032E1E1F767403302B1F7674032A06A8
|
||||
:206DC000421E066F428AC42B01024207421E1F7674032C06420FF76682FE0600A85CA971E7
|
||||
:206DE000A697013BA98556FFA95DA48556FFA95CA5920FF6A41FA64F026C5CFF2076A6967F
|
||||
:206E0000A85C013BA98556FFA95DA48556FFA95CA5920FF6A41FA64F026C5DFFA892207698
|
||||
:206E20005AFFAB92A4C5A48E07ECFF9CA988859287960E00FEFFAB92A988A9A9A60F10ECB2
|
||||
:206E4000AA930EECA9A9FF9DA85CBF76FEFF859287960E00FEFF859287960C00F8FFA08A37
|
||||
:206E6000060006FE008F00C044A8008F000D46A82276412B419280520D63448A84C444A828
|
||||
:206E8000468AA9A80209461EC4C2410A41928052F5641A7686FE69FF0600A928FFFFAA2870
|
||||
:206EA000FFFFAB28FFFFA828FFFFAB0F04ED00D400BE0B6FA927A928FFFFA92FA4A9C4886E
|
||||
:206EC000A928FFFF0209A98AA6924076999406000077006F1F767A03BDB220C5A959673E91
|
||||
:206EE0001F767A0324C5A70603ECA192673E1F767A03220603ECA71E673E407665B5BE8B77
|
||||
:206F0000060022761F76C0011C1A080069FF787680001A761F76C401BF5618E0028FE649B2
|
||||
:206F200069FFA9A84076A7B5060002FE429741961F7674033B961F76740342923A9682FEC3
|
||||
:1C6F400006001F767A031EA806001F767A0320A8060006000119C356FFFF060034
|
||||
:206F5C002B0000003CC122761F762A00001A01001F762A0006CCFFF0A91A00051F762A0074
|
||||
:206F7C0006961F762A0006CCF0FF05501F762A0006961F762A0007CCE0FF08501F762A00A1
|
||||
:1C6F9C0007961F762A00041AFF011F762A00051AFF011A7607F6007769FF06000F
|
||||
:206FB8001101000000C0718800007188000071880000718800007188000071880000718818
|
||||
:206FD8000000718800007188000071880000718800007188000071880000008000000D80B6
|
||||
:206FF80000001A80000027800000858800003F8000004A80000055800000608000006B8002
|
||||
:20701800000076800000818000008C80000097800000A2800000AD800000B8800000C38074
|
||||
:207038000000CE800000D9800000FA800000858800001B8100003C8100005B8100007C81D8
|
||||
:2070580000009F810000C0810000E18100000282000023820000468200006782000085886E
|
||||
:2070780000008588000088820000A9820000CC820000EF82000010830000318300008588A3
|
||||
:20709800000085880000548300007583000098830000B9830000DA830000FB8300008588BD
|
||||
:2070B8000000858800001C8400003D84000085880000858800008588000085880000858809
|
||||
:2070D8000000858800006084000081840000A4840000C5840000E68400000785000085882E
|
||||
:2070F8000000858800002A8500004B8500006C8500008D850000AE850000CF850000858855
|
||||
:20711800000085880000F28500001586000085880000858800003686000057860000858878
|
||||
:20713800000085880000788600009B860000BC860000DD860000FE8600002187000044876F
|
||||
:207158000000658700008588000085880000858800008588000085880000858800008588D0
|
||||
:2071780000008588000085880000858800008588000085880000858800008588000085888F
|
||||
:2071980000008588000086870000A7870000C8870000E98700000A880000858800002D887C
|
||||
:2071B80000004E880000080008000A0008000800080006000A000800080008000000000087
|
||||
:0871D800000033000B000A0067
|
||||
:2071E0002800000068C1009E00001F9E0000319E0000489E00005E9E0000719E0000859E00
|
||||
:207200000000989E0000B39E0000D79E0000ED9E0000009F00000D9F00002F9F0000419FEE
|
||||
:187220000000539F0000669F0000779F0000879F00009F9F00000000E5
|
||||
:00000001FF
|
34
Bin/UKSSTMS320F28335.map
Normal file
34
Bin/UKSSTMS320F28335.map
Normal file
@ -0,0 +1,34 @@
|
||||
********************************************************************************
|
||||
TMS320C2000 Hex Converter v5.2.7
|
||||
********************************************************************************
|
||||
|
||||
INPUT FILE NAME: <D:\project2833\GIT\UKSS_23550_2\bin\UKSSTMS320F28335.out>
|
||||
OUTPUT FORMAT: Binary
|
||||
|
||||
PHYSICAL MEMORY PARAMETERS
|
||||
Default data width : 16
|
||||
Default memory width : 8 (LS-->MS)
|
||||
Default output width : 8
|
||||
|
||||
BOOT LOADER PARAMETERS
|
||||
Table Type: SERIAL PORT (SCI 8 bit Mode)
|
||||
Entry Point: 0x0000b456
|
||||
|
||||
|
||||
OUTPUT TRANSLATION MAP
|
||||
--------------------------------------------------------------------------------
|
||||
00000000..003fffff Page=0 Memory Width=8 ROM Width=8
|
||||
--------------------------------------------------------------------------------
|
||||
OUTPUT FILES: D:\project2833\GIT\UKSS_23550_2\bin\UKSSTMS320F28335.bin [b0..b7]
|
||||
|
||||
CONTENTS: 00000000..00007237 BOOT TABLE
|
||||
.cinit : dest=0000b5ab size=000001f2 width=00000002
|
||||
.text : dest=00008000 size=000035ab width=00000002
|
||||
ramfuncs : dest=0000c13c size=0000002b width=00000002
|
||||
.econst : dest=0000c000 size=00000111 width=00000002
|
||||
.switch : dest=0000c168 size=00000028 width=00000002
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
00000000..003fffff Page=1 Memory Width=8 ROM Width=8 "*DEFAULT PAGE 1*"
|
||||
--------------------------------------------------------------------------------
|
||||
NO CONTENTS
|
BIN
Bin/UKSSTMS320F28335.out
Normal file
BIN
Bin/UKSSTMS320F28335.out
Normal file
Binary file not shown.
BIN
Bin/hex2000.exe
Normal file
BIN
Bin/hex2000.exe
Normal file
Binary file not shown.
BIN
Bin/hex2000V6.1.0.exe
Normal file
BIN
Bin/hex2000V6.1.0.exe
Normal file
Binary file not shown.
BIN
Doc/23550_2 prt_3 data stru.xls
Normal file
BIN
Doc/23550_2 prt_3 data stru.xls
Normal file
Binary file not shown.
206
F28335.cmd
Normal file
206
F28335.cmd
Normal file
@ -0,0 +1,206 @@
|
||||
/*
|
||||
// TI File $Revision: /main/10 $
|
||||
// Checkin $Date: July 9, 2008 13:43:56 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: F28335.cmd
|
||||
//
|
||||
// TITLE: Linker Command File For F28335 Device
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
*/
|
||||
|
||||
/* ======================================================
|
||||
// For Code Composer Studio V2.2 and later
|
||||
// ---------------------------------------
|
||||
// In addition to this memory linker command file,
|
||||
// add the header linker command file directly to the project.
|
||||
// The header linker command file is required to link the
|
||||
// peripheral structures to the proper locations within
|
||||
// the memory map.
|
||||
//
|
||||
// The header linker files are found in <base>\DSP2833x_Headers\cmd
|
||||
//
|
||||
// For BIOS applications add: DSP2833x_Headers_BIOS.cmd
|
||||
// For nonBIOS applications add: DSP2833x_Headers_nonBIOS.cmd
|
||||
========================================================= */
|
||||
|
||||
/* ======================================================
|
||||
// For Code Composer Studio prior to V2.2
|
||||
// --------------------------------------
|
||||
// 1) Use one of the following -l statements to include the
|
||||
// header linker command file in the project. The header linker
|
||||
// file is required to link the peripheral structures to the proper
|
||||
// locations within the memory map */
|
||||
|
||||
/* Uncomment this line to include file only for non-BIOS applications */
|
||||
/* -l DSP2833x_Headers_nonBIOS.cmd */
|
||||
|
||||
/* Uncomment this line to include file only for BIOS applications */
|
||||
/* -l DSP2833x_Headers_BIOS.cmd */
|
||||
|
||||
/* 2) In your project add the path to <base>\DSP2833x_headers\cmd to the
|
||||
library search path under project->build options, linker tab,
|
||||
library search path (-i).
|
||||
/*========================================================= */
|
||||
|
||||
/* Define the memory block start/length for the F28335
|
||||
PAGE 0 will be used to organize program sections
|
||||
PAGE 1 will be used to organize data sections
|
||||
|
||||
Notes:
|
||||
Memory blocks on F28335 are uniform (ie same
|
||||
physical memory) in both PAGE 0 and PAGE 1.
|
||||
That is the same memory region should not be
|
||||
defined for both PAGE 0 and PAGE 1.
|
||||
Doing so will result in corruption of program
|
||||
and/or data.
|
||||
|
||||
L0/L1/L2 and L3 memory blocks are mirrored - that is
|
||||
they can be accessed in high memory or low memory.
|
||||
For simplicity only one instance is used in this
|
||||
linker file.
|
||||
|
||||
Contiguous SARAM memory blocks can be combined
|
||||
if required to create a larger memory block.
|
||||
*/
|
||||
|
||||
|
||||
MEMORY
|
||||
{
|
||||
PAGE 0: /* Program Memory */
|
||||
/* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE1 for data allocation */
|
||||
|
||||
ZONE0 : origin = 0x004000, length = 0x001000 /* XINTF zone 0 */
|
||||
RAML0 : origin = 0x008000, length = 0x004000 /* on-chip RAM block L0 */
|
||||
/* RAML1 : origin = 0x009000, length = 0x001000 /* on-chip RAM block L1 */
|
||||
/* RAML2 : origin = 0x00A000, length = 0x001000 /* on-chip RAM block L2 */
|
||||
// RAML3 : origin = 0x00B000, length = 0x001000 /* on-chip RAM block L3 */
|
||||
RAML4 : origin = 0x00C000, length = 0x001000 /* on-chip RAM block L1 */
|
||||
|
||||
ZONE6 : origin = 0x0100000, length = 0x100000 /* XINTF zone 6 */
|
||||
FLASHH : origin = 0x300000, length = 0x008000 /* on-chip FLASH */
|
||||
FLASHG : origin = 0x308000, length = 0x008000 /* on-chip FLASH */
|
||||
FLASHF : origin = 0x310000, length = 0x008000 /* on-chip FLASH */
|
||||
FLASHE : origin = 0x318000, length = 0x008000 /* on-chip FLASH */
|
||||
FLASHD : origin = 0x320000, length = 0x008000 /* on-chip FLASH */
|
||||
FLASHC : origin = 0x328000, length = 0x008000 /* on-chip FLASH */
|
||||
FLASHA : origin = 0x338000, length = 0x007F80 /* on-chip FLASH */
|
||||
CSM_RSVD : origin = 0x33FF80, length = 0x000076 /* Part of FLASHA. Program with all 0x0000 when CSM is in use. */
|
||||
BEGIN : origin = 0x33FFF6, length = 0x000002 /* Part of FLASHA. Used for "boot to Flash" bootloader mode. */
|
||||
CSM_PWL : origin = 0x33FFF8, length = 0x000008 /* Part of FLASHA. CSM password locations in FLASHA */
|
||||
OTP : origin = 0x380400, length = 0x000400 /* on-chip OTP */
|
||||
ADC_CAL : origin = 0x380080, length = 0x000009 /* ADC_cal function in Reserved memory */
|
||||
|
||||
IQTABLES : origin = 0x3FE000, length = 0x000b50 /* IQ Math Tables in Boot ROM */
|
||||
IQTABLES2 : origin = 0x3FEB50, length = 0x00008c /* IQ Math Tables in Boot ROM */
|
||||
FPUTABLES : origin = 0x3FEBDC, length = 0x0006A0 /* FPU Tables in Boot ROM */
|
||||
ROM : origin = 0x3FF27C, length = 0x000D44 /* Boot ROM */
|
||||
RESET : origin = 0x3FFFC0, length = 0x000002 /* part of boot ROM */
|
||||
VECTORS : origin = 0x3FFFC2, length = 0x00003E /* part of boot ROM */
|
||||
|
||||
PAGE 1 : /* Data Memory */
|
||||
/* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE0 for program allocation */
|
||||
/* Registers remain on PAGE1 */
|
||||
|
||||
BOOT_RSVD : origin = 0x000000, length = 0x000050 /* Part of M0, BOOT rom will use this for stack */
|
||||
RAMM0 : origin = 0x000050, length = 0x0003B0 /* on-chip RAM block M0 */
|
||||
RAMM1 : origin = 0x000400, length = 0x000400 /* on-chip RAM block M1 */
|
||||
RAML5 : origin = 0x00D000, length = 0x003000 /* on-chip RAM block L1 */
|
||||
/* RAML6 : origin = 0x00E000, length = 0x001000 /* on-chip RAM block L1 */
|
||||
/* RAML7 : origin = 0x00F000, length = 0x001000 /* on-chip RAM block L1 */
|
||||
ZONE7A : origin = 0x0200000, length = 0x00FC00 /* XINTF zone 7 - program space */
|
||||
ZONE7B : origin = 0x20FC00, length = 0x000400 /* XINTF zone 7 - data space */
|
||||
FLASHB : origin = 0x330000, length = 0x008000 /* on-chip FLASH */
|
||||
}
|
||||
|
||||
/* Allocate sections to memory blocks.
|
||||
Note:
|
||||
codestart user defined section in DSP28_CodeStartBranch.asm used to redirect code
|
||||
execution when booting to flash
|
||||
ramfuncs user defined section to store functions that will be copied from Flash into RAM
|
||||
*/
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
|
||||
/* Allocate program areas: */
|
||||
.cinit : > RAML0 PAGE = 0
|
||||
.pinit : > RAML0 PAGE = 0
|
||||
.text : > RAML0 PAGE = 0
|
||||
codestart : > BEGIN PAGE = 0
|
||||
ramfuncs : LOAD = RAML4,
|
||||
RUN = RAML4,
|
||||
LOAD_START(_RamfuncsLoadStart),
|
||||
LOAD_END(_RamfuncsLoadEnd),
|
||||
RUN_START(_RamfuncsRunStart),
|
||||
PAGE = 0
|
||||
|
||||
csmpasswds : > CSM_PWL PAGE = 0
|
||||
csm_rsvd : > CSM_RSVD PAGE = 0
|
||||
|
||||
/* Allocate uninitalized data sections: */
|
||||
.stack : > RAMM1 PAGE = 1
|
||||
.ebss : > RAML5 PAGE = 1
|
||||
.esysmem : > RAML0 PAGE = 0
|
||||
|
||||
.logg : > ZONE7A PAGE = 1
|
||||
|
||||
/* Initalized sections go in Flash */
|
||||
/* For SDFlash to program these, they must be allocated to page 0 */
|
||||
.econst : > RAML4 PAGE = 0
|
||||
.switch : > RAML4 PAGE = 0
|
||||
|
||||
/* Allocate IQ math areas: */
|
||||
IQmath : > FLASHC PAGE = 0 /* Math Code */
|
||||
IQmathTables : > IQTABLES, PAGE = 0, TYPE = NOLOAD
|
||||
|
||||
/* Uncomment the section below if calling the IQNexp() or IQexp()
|
||||
functions from the IQMath.lib library in order to utilize the
|
||||
relevant IQ Math table in Boot ROM (This saves space and Boot ROM
|
||||
is 1 wait-state). If this section is not uncommented, IQmathTables2
|
||||
will be loaded into other memory (SARAM, Flash, etc.) and will take
|
||||
up space, but 0 wait-state is possible.
|
||||
*/
|
||||
/*
|
||||
IQmathTables2 : > IQTABLES2, PAGE = 0, TYPE = NOLOAD
|
||||
{
|
||||
|
||||
IQmath.lib<IQNexpTable.obj> (IQmathTablesRam)
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
FPUmathTables : > FPUTABLES, PAGE = 0, TYPE = NOLOAD
|
||||
|
||||
/* Allocate DMA-accessible RAM sections: * /
|
||||
DMARAML4 : > RAML4, PAGE = 1
|
||||
DMARAML5 : > RAML5, PAGE = 1
|
||||
/* DMARAML6 : > RAML6, PAGE = 1
|
||||
DMARAML7 : > RAML7, PAGE = 1
|
||||
*/
|
||||
/* Allocate 0x400 of XINTF Zone 7 to storing data */
|
||||
ZONE7DATA : > ZONE7B, PAGE = 1
|
||||
|
||||
/* .reset is a standard section used by the compiler. It contains the */
|
||||
/* the address of the start of _c_int00 for C Code. /*
|
||||
/* When using the boot ROM this section and the CPU vector */
|
||||
/* table is not needed. Thus the default type is set here to */
|
||||
/* DSECT */
|
||||
.reset : > RESET, PAGE = 0, TYPE = DSECT
|
||||
vectors : > VECTORS PAGE = 0, TYPE = DSECT
|
||||
|
||||
/* Allocate ADC_cal function (pre-programmed by factory into TI reserved memory) */
|
||||
.adc_cal : load = ADC_CAL, PAGE = 0, TYPE = NOLOAD
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
//===========================================================================
|
||||
// End of file.
|
||||
//===========================================================================
|
||||
*/
|
||||
|
BIN
Libraries/IQmath.lib
Normal file
BIN
Libraries/IQmath.lib
Normal file
Binary file not shown.
BIN
Libraries/IQmath_fpu32.lib
Normal file
BIN
Libraries/IQmath_fpu32.lib
Normal file
Binary file not shown.
BIN
Libraries/SFO_TI_Build.lib
Normal file
BIN
Libraries/SFO_TI_Build.lib
Normal file
Binary file not shown.
BIN
Libraries/SFO_TI_Build_V5.lib
Normal file
BIN
Libraries/SFO_TI_Build_V5.lib
Normal file
Binary file not shown.
BIN
Libraries/SFO_TI_Build_V5B.lib
Normal file
BIN
Libraries/SFO_TI_Build_V5B.lib
Normal file
Binary file not shown.
BIN
Libraries/SFO_TI_Build_V5B_fpu.lib
Normal file
BIN
Libraries/SFO_TI_Build_V5B_fpu.lib
Normal file
Binary file not shown.
BIN
Libraries/SFO_TI_Build_V5_fpu.lib
Normal file
BIN
Libraries/SFO_TI_Build_V5_fpu.lib
Normal file
Binary file not shown.
BIN
Libraries/SFO_TI_Build_fpu.lib
Normal file
BIN
Libraries/SFO_TI_Build_fpu.lib
Normal file
Binary file not shown.
BIN
Libraries/rts2800.lib
Normal file
BIN
Libraries/rts2800.lib
Normal file
Binary file not shown.
BIN
Libraries/rts2800_eh.lib
Normal file
BIN
Libraries/rts2800_eh.lib
Normal file
Binary file not shown.
BIN
Libraries/rts2800_fpu32.lib
Normal file
BIN
Libraries/rts2800_fpu32.lib
Normal file
Binary file not shown.
BIN
Libraries/rts2800_fpu32_eh.lib
Normal file
BIN
Libraries/rts2800_fpu32_eh.lib
Normal file
Binary file not shown.
BIN
Libraries/rts2800_fpu32_fast_supplement.lib
Normal file
BIN
Libraries/rts2800_fpu32_fast_supplement.lib
Normal file
Binary file not shown.
BIN
Libraries/rts2800_ml.lib
Normal file
BIN
Libraries/rts2800_ml.lib
Normal file
Binary file not shown.
BIN
Libraries/rts2800_ml_eh.lib
Normal file
BIN
Libraries/rts2800_ml_eh.lib
Normal file
Binary file not shown.
176
Source/External/v120/DSP2833x_common/cmd/28332_RAM_lnk.cmd
vendored
Normal file
176
Source/External/v120/DSP2833x_common/cmd/28332_RAM_lnk.cmd
vendored
Normal file
@ -0,0 +1,176 @@
|
||||
/*
|
||||
// TI File $Revision: /main/9 $
|
||||
// Checkin $Date: July 9, 2008 13:43:25 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: 28332_RAM_lnk.cmd
|
||||
//
|
||||
// TITLE: Linker Command File For 28332 examples that run out of RAM
|
||||
//
|
||||
// This ONLY includes all SARAM blocks on the 28332 device.
|
||||
// This does not include flash or OTP.
|
||||
//
|
||||
// Keep in mind that L0 and L1 are protected by the code
|
||||
// security module.
|
||||
//
|
||||
// What this means is in most cases you will want to move to
|
||||
// another memory map file which has more memory defined.
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
*/
|
||||
|
||||
/* ======================================================
|
||||
// For Code Composer Studio V2.2 and later
|
||||
// ---------------------------------------
|
||||
// In addition to this memory linker command file,
|
||||
// add the header linker command file directly to the project.
|
||||
// The header linker command file is required to link the
|
||||
// peripheral structures to the proper locations within
|
||||
// the memory map.
|
||||
//
|
||||
// The header linker files are found in <base>\DSP2833x_Headers\cmd
|
||||
//
|
||||
// For BIOS applications add: DSP2833x_Headers_BIOS.cmd
|
||||
// For nonBIOS applications add: DSP2833x_Headers_nonBIOS.cmd
|
||||
========================================================= */
|
||||
|
||||
/* ======================================================
|
||||
// For Code Composer Studio prior to V2.2
|
||||
// --------------------------------------
|
||||
// 1) Use one of the following -l statements to include the
|
||||
// header linker command file in the project. The header linker
|
||||
// file is required to link the peripheral structures to the proper
|
||||
// locations within the memory map */
|
||||
|
||||
/* Uncomment this line to include file only for non-BIOS applications */
|
||||
/* -l DSP2833x_Headers_nonBIOS.cmd */
|
||||
|
||||
/* Uncomment this line to include file only for BIOS applications */
|
||||
/* -l DSP2833x_Headers_BIOS.cmd */
|
||||
|
||||
/* 2) In your project add the path to <base>\DSP2833x_headers\cmd to the
|
||||
library search path under project->build options, linker tab,
|
||||
library search path (-i).
|
||||
/*========================================================= */
|
||||
|
||||
/* Define the memory block start/length for the F28332
|
||||
PAGE 0 will be used to organize program sections
|
||||
PAGE 1 will be used to organize data sections
|
||||
|
||||
Notes:
|
||||
Memory blocks on F28332 are uniform (ie same
|
||||
physical memory) in both PAGE 0 and PAGE 1.
|
||||
That is the same memory region should not be
|
||||
defined for both PAGE 0 and PAGE 1.
|
||||
Doing so will result in corruption of program
|
||||
and/or data.
|
||||
|
||||
L0/L1/L2 and L3 memory blocks are mirrored - that is
|
||||
they can be accessed in high memory or low memory.
|
||||
For simplicity only one instance is used in this
|
||||
linker file.
|
||||
|
||||
Contiguous SARAM memory blocks can be combined
|
||||
if required to create a larger memory block.
|
||||
*/
|
||||
|
||||
|
||||
MEMORY
|
||||
{
|
||||
PAGE 0 :
|
||||
/* BEGIN is used for the "boot to SARAM" bootloader mode */
|
||||
/* BOOT_RSVD is used by the boot ROM for stack. */
|
||||
/* This section is only reserved to keep the BOOT ROM from */
|
||||
/* corrupting this area during the debug process */
|
||||
|
||||
BEGIN : origin = 0x000000, length = 0x000002 /* Boot to M0 will go here */
|
||||
BOOT_RSVD : origin = 0x000002, length = 0x00004E /* Part of M0, BOOT rom will use this for stack */
|
||||
RAMM0 : origin = 0x000050, length = 0x0003B0
|
||||
|
||||
RAML0 : origin = 0x008000, length = 0x001000
|
||||
RAML1 : origin = 0x009000, length = 0x001000
|
||||
RAML2 : origin = 0x00A000, length = 0x001000
|
||||
RAML3 : origin = 0x00B000, length = 0x001000
|
||||
ZONE7A : origin = 0x200000, length = 0x00FC00 /* XINTF zone 7 - program space */
|
||||
CSM_RSVD : origin = 0x33FF80, length = 0x000076 /* Part of FLASHA. Program with all 0x0000 when CSM is in use. */
|
||||
CSM_PWL : origin = 0x33FFF8, length = 0x000008 /* Part of FLASHA. CSM password locations in FLASHA */
|
||||
ADC_CAL : origin = 0x380080, length = 0x000009
|
||||
RESET : origin = 0x3FFFC0, length = 0x000002
|
||||
IQTABLES : origin = 0x3FE000, length = 0x000b50
|
||||
IQTABLES2 : origin = 0x3FEB50, length = 0x00008c
|
||||
FPUTABLES : origin = 0x3FEBDC, length = 0x0006A0
|
||||
BOOTROM : origin = 0x3FF27C, length = 0x000D44
|
||||
|
||||
|
||||
|
||||
|
||||
PAGE 1 :
|
||||
RAMM1 : origin = 0x000400, length = 0x000400 /* on-chip RAM block M1 */
|
||||
RAML4 : origin = 0x00C000, length = 0x001000
|
||||
RAML5 : origin = 0x00D000, length = 0x001000
|
||||
ZONE7B : origin = 0x20FC00, length = 0x000400 /* XINTF zone 7 - data space */
|
||||
}
|
||||
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
/* Setup for "boot to SARAM" mode:
|
||||
The codestart section (found in DSP28_CodeStartBranch.asm)
|
||||
re-directs execution to the start of user code. */
|
||||
codestart : > BEGIN, PAGE = 0
|
||||
ramfuncs : > RAML0, PAGE = 0
|
||||
.text : > RAML1, PAGE = 0
|
||||
.cinit : > RAML0, PAGE = 0
|
||||
.pinit : > RAML0, PAGE = 0
|
||||
.switch : > RAML0, PAGE = 0
|
||||
|
||||
.stack : > RAMM1, PAGE = 1
|
||||
.ebss : > RAML4, PAGE = 1
|
||||
.econst : > RAML5, PAGE = 1
|
||||
.esysmem : > RAMM1, PAGE = 1
|
||||
|
||||
IQmath : > RAML1, PAGE = 0
|
||||
IQmathTables : > IQTABLES, PAGE = 0, TYPE = NOLOAD
|
||||
|
||||
/* Uncomment the section below if calling the IQNexp() or IQexp()
|
||||
functions from the IQMath.lib library in order to utilize the
|
||||
relevant IQ Math table in Boot ROM (This saves space and Boot ROM
|
||||
is 1 wait-state). If this section is not uncommented, IQmathTables2
|
||||
will be loaded into other memory (SARAM, Flash, etc.) and will take
|
||||
up space, but 0 wait-state is possible.
|
||||
*/
|
||||
/*
|
||||
IQmathTables2 : > IQTABLES2, PAGE = 0, TYPE = NOLOAD
|
||||
{
|
||||
|
||||
IQmath.lib<IQNexpTable.obj> (IQmathTablesRam)
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
FPUmathTables : > FPUTABLES, PAGE = 0, TYPE = NOLOAD
|
||||
|
||||
DMARAML4 : > RAML4, PAGE = 1
|
||||
DMARAML5 : > RAML5, PAGE = 1
|
||||
|
||||
ZONE7DATA : > ZONE7B, PAGE = 1
|
||||
|
||||
|
||||
.reset : > RESET, PAGE = 0, TYPE = DSECT /* not used */
|
||||
csm_rsvd : > CSM_RSVD PAGE = 0, TYPE = DSECT /* not used for SARAM examples */
|
||||
csmpasswds : > CSM_PWL PAGE = 0, TYPE = DSECT /* not used for SARAM examples */
|
||||
|
||||
/* Allocate ADC_cal function (pre-programmed by factory into TI reserved memory) */
|
||||
.adc_cal : load = ADC_CAL, PAGE = 0, TYPE = NOLOAD
|
||||
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
//===========================================================================
|
||||
// End of file.
|
||||
//===========================================================================
|
||||
*/
|
178
Source/External/v120/DSP2833x_common/cmd/28334_RAM_lnk.cmd
vendored
Normal file
178
Source/External/v120/DSP2833x_common/cmd/28334_RAM_lnk.cmd
vendored
Normal file
@ -0,0 +1,178 @@
|
||||
/*
|
||||
// TI File $Revision: /main/8 $
|
||||
// Checkin $Date: July 9, 2008 13:43:30 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: 28334_RAM_lnk.cmd
|
||||
//
|
||||
// TITLE: Linker Command File For 28334 examples that run out of RAM
|
||||
//
|
||||
// This ONLY includes all SARAM blocks on the 28334 device.
|
||||
// This does not include flash or OTP.
|
||||
//
|
||||
// Keep in mind that L0 and L1 are protected by the code
|
||||
// security module.
|
||||
//
|
||||
// What this means is in most cases you will want to move to
|
||||
// another memory map file which has more memory defined.
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
*/
|
||||
|
||||
/* ======================================================
|
||||
// For Code Composer Studio V2.2 and later
|
||||
// ---------------------------------------
|
||||
// In addition to this memory linker command file,
|
||||
// add the header linker command file directly to the project.
|
||||
// The header linker command file is required to link the
|
||||
// peripheral structures to the proper locations within
|
||||
// the memory map.
|
||||
//
|
||||
// The header linker files are found in <base>\DSP2833x_Headers\cmd
|
||||
//
|
||||
// For BIOS applications add: DSP2833x_Headers_BIOS.cmd
|
||||
// For nonBIOS applications add: DSP2833x_Headers_nonBIOS.cmd
|
||||
========================================================= */
|
||||
|
||||
/* ======================================================
|
||||
// For Code Composer Studio prior to V2.2
|
||||
// --------------------------------------
|
||||
// 1) Use one of the following -l statements to include the
|
||||
// header linker command file in the project. The header linker
|
||||
// file is required to link the peripheral structures to the proper
|
||||
// locations within the memory map */
|
||||
|
||||
/* Uncomment this line to include file only for non-BIOS applications */
|
||||
/* -l DSP2833x_Headers_nonBIOS.cmd */
|
||||
|
||||
/* Uncomment this line to include file only for BIOS applications */
|
||||
/* -l DSP2833x_Headers_BIOS.cmd */
|
||||
|
||||
/* 2) In your project add the path to <base>\DSP2833x_headers\cmd to the
|
||||
library search path under project->build options, linker tab,
|
||||
library search path (-i).
|
||||
/*========================================================= */
|
||||
|
||||
/* Define the memory block start/length for the F28334
|
||||
PAGE 0 will be used to organize program sections
|
||||
PAGE 1 will be used to organize data sections
|
||||
|
||||
Notes:
|
||||
Memory blocks on F28334 are uniform (ie same
|
||||
physical memory) in both PAGE 0 and PAGE 1.
|
||||
That is the same memory region should not be
|
||||
defined for both PAGE 0 and PAGE 1.
|
||||
Doing so will result in corruption of program
|
||||
and/or data.
|
||||
|
||||
L0/L1/L2 and L3 memory blocks are mirrored - that is
|
||||
they can be accessed in high memory or low memory.
|
||||
For simplicity only one instance is used in this
|
||||
linker file.
|
||||
|
||||
Contiguous SARAM memory blocks can be combined
|
||||
if required to create a larger memory block.
|
||||
*/
|
||||
|
||||
|
||||
MEMORY
|
||||
{
|
||||
PAGE 0 :
|
||||
/* BEGIN is used for the "boot to SARAM" bootloader mode */
|
||||
/* BOOT_RSVD is used by the boot ROM for stack. */
|
||||
/* This section is only reserved to keep the BOOT ROM from */
|
||||
/* corrupting this area during the debug process */
|
||||
|
||||
BEGIN : origin = 0x000000, length = 0x000002 /* Boot to M0 will go here */
|
||||
BOOT_RSVD : origin = 0x000002, length = 0x00004E /* Part of M0, BOOT rom will use this for stack */
|
||||
RAMM0 : origin = 0x000050, length = 0x0003B0
|
||||
|
||||
RAML0 : origin = 0x008000, length = 0x001000
|
||||
RAML1 : origin = 0x009000, length = 0x001000
|
||||
RAML2 : origin = 0x00A000, length = 0x001000
|
||||
RAML3 : origin = 0x00B000, length = 0x001000
|
||||
ZONE7A : origin = 0x200000, length = 0x00FC00 /* XINTF zone 7 - program space */
|
||||
CSM_RSVD : origin = 0x33FF80, length = 0x000076 /* Part of FLASHA. Program with all 0x0000 when CSM is in use. */
|
||||
CSM_PWL : origin = 0x33FFF8, length = 0x000008 /* Part of FLASHA. CSM password locations in FLASHA */
|
||||
ADC_CAL : origin = 0x380080, length = 0x000009
|
||||
RESET : origin = 0x3FFFC0, length = 0x000002
|
||||
IQTABLES : origin = 0x3FE000, length = 0x000b50
|
||||
IQTABLES2 : origin = 0x3FEB50, length = 0x00008c
|
||||
FPUTABLES : origin = 0x3FEBDC, length = 0x0006A0
|
||||
BOOTROM : origin = 0x3FF27C, length = 0x000D44
|
||||
|
||||
|
||||
|
||||
PAGE 1 :
|
||||
RAMM1 : origin = 0x000400, length = 0x000400 /* on-chip RAM block M1 */
|
||||
RAML4 : origin = 0x00C000, length = 0x001000
|
||||
RAML5 : origin = 0x00D000, length = 0x001000
|
||||
RAML6 : origin = 0x00E000, length = 0x001000
|
||||
RAML7 : origin = 0x00F000, length = 0x001000
|
||||
ZONE7B : origin = 0x20FC00, length = 0x000400 /* XINTF zone 7 - data space */
|
||||
}
|
||||
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
/* Setup for "boot to SARAM" mode:
|
||||
The codestart section (found in DSP28_CodeStartBranch.asm)
|
||||
re-directs execution to the start of user code. */
|
||||
codestart : > BEGIN, PAGE = 0
|
||||
ramfuncs : > RAML0, PAGE = 0
|
||||
.text : > RAML1, PAGE = 0
|
||||
.cinit : > RAML0, PAGE = 0
|
||||
.pinit : > RAML0, PAGE = 0
|
||||
.switch : > RAML0, PAGE = 0
|
||||
|
||||
.stack : > RAMM1, PAGE = 1
|
||||
.ebss : > RAML4, PAGE = 1
|
||||
.econst : > RAML5, PAGE = 1
|
||||
.esysmem : > RAMM1, PAGE = 1
|
||||
|
||||
IQmath : > RAML1, PAGE = 0
|
||||
IQmathTables : > IQTABLES, PAGE = 0, TYPE = NOLOAD
|
||||
|
||||
/* Uncomment the section below if calling the IQNexp() or IQexp()
|
||||
functions from the IQMath.lib library in order to utilize the
|
||||
relevant IQ Math table in Boot ROM (This saves space and Boot ROM
|
||||
is 1 wait-state). If this section is not uncommented, IQmathTables2
|
||||
will be loaded into other memory (SARAM, Flash, etc.) and will take
|
||||
up space, but 0 wait-state is possible.
|
||||
*/
|
||||
/*
|
||||
IQmathTables2 : > IQTABLES2, PAGE = 0, TYPE = NOLOAD
|
||||
{
|
||||
|
||||
IQmath.lib<IQNexpTable.obj> (IQmathTablesRam)
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
FPUmathTables : > FPUTABLES, PAGE = 0, TYPE = NOLOAD
|
||||
|
||||
DMARAML4 : > RAML4, PAGE = 1
|
||||
DMARAML5 : > RAML5, PAGE = 1
|
||||
DMARAML6 : > RAML6, PAGE = 1
|
||||
DMARAML7 : > RAML7, PAGE = 1
|
||||
|
||||
ZONE7DATA : > ZONE7B, PAGE = 1
|
||||
|
||||
.reset : > RESET, PAGE = 0, TYPE = DSECT /* not used */
|
||||
csm_rsvd : > CSM_RSVD PAGE = 0, TYPE = DSECT /* not used for SARAM examples */
|
||||
csmpasswds : > CSM_PWL PAGE = 0, TYPE = DSECT /* not used for SARAM examples */
|
||||
|
||||
/* Allocate ADC_cal function (pre-programmed by factory into TI reserved memory) */
|
||||
.adc_cal : load = ADC_CAL, PAGE = 0, TYPE = NOLOAD
|
||||
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
//===========================================================================
|
||||
// End of file.
|
||||
//===========================================================================
|
||||
*/
|
176
Source/External/v120/DSP2833x_common/cmd/28335_RAM_lnk.cmd
vendored
Normal file
176
Source/External/v120/DSP2833x_common/cmd/28335_RAM_lnk.cmd
vendored
Normal file
@ -0,0 +1,176 @@
|
||||
/*
|
||||
// TI File $Revision: /main/10 $
|
||||
// Checkin $Date: July 9, 2008 13:43:36 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: 28335_RAM_lnk.cmd
|
||||
//
|
||||
// TITLE: Linker Command File For 28335 examples that run out of RAM
|
||||
//
|
||||
// This ONLY includes all SARAM blocks on the 28335 device.
|
||||
// This does not include flash or OTP.
|
||||
//
|
||||
// Keep in mind that L0 and L1 are protected by the code
|
||||
// security module.
|
||||
//
|
||||
// What this means is in most cases you will want to move to
|
||||
// another memory map file which has more memory defined.
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
*/
|
||||
|
||||
/* ======================================================
|
||||
// For Code Composer Studio V2.2 and later
|
||||
// ---------------------------------------
|
||||
// In addition to this memory linker command file,
|
||||
// add the header linker command file directly to the project.
|
||||
// The header linker command file is required to link the
|
||||
// peripheral structures to the proper locations within
|
||||
// the memory map.
|
||||
//
|
||||
// The header linker files are found in <base>\DSP2833x_Headers\cmd
|
||||
//
|
||||
// For BIOS applications add: DSP2833x_Headers_BIOS.cmd
|
||||
// For nonBIOS applications add: DSP2833x_Headers_nonBIOS.cmd
|
||||
========================================================= */
|
||||
|
||||
/* ======================================================
|
||||
// For Code Composer Studio prior to V2.2
|
||||
// --------------------------------------
|
||||
// 1) Use one of the following -l statements to include the
|
||||
// header linker command file in the project. The header linker
|
||||
// file is required to link the peripheral structures to the proper
|
||||
// locations within the memory map */
|
||||
|
||||
/* Uncomment this line to include file only for non-BIOS applications */
|
||||
/* -l DSP2833x_Headers_nonBIOS.cmd */
|
||||
|
||||
/* Uncomment this line to include file only for BIOS applications */
|
||||
/* -l DSP2833x_Headers_BIOS.cmd */
|
||||
|
||||
/* 2) In your project add the path to <base>\DSP2833x_headers\cmd to the
|
||||
library search path under project->build options, linker tab,
|
||||
library search path (-i).
|
||||
/*========================================================= */
|
||||
|
||||
/* Define the memory block start/length for the F28335
|
||||
PAGE 0 will be used to organize program sections
|
||||
PAGE 1 will be used to organize data sections
|
||||
|
||||
Notes:
|
||||
Memory blocks on F28335 are uniform (ie same
|
||||
physical memory) in both PAGE 0 and PAGE 1.
|
||||
That is the same memory region should not be
|
||||
defined for both PAGE 0 and PAGE 1.
|
||||
Doing so will result in corruption of program
|
||||
and/or data.
|
||||
|
||||
L0/L1/L2 and L3 memory blocks are mirrored - that is
|
||||
they can be accessed in high memory or low memory.
|
||||
For simplicity only one instance is used in this
|
||||
linker file.
|
||||
|
||||
Contiguous SARAM memory blocks can be combined
|
||||
if required to create a larger memory block.
|
||||
*/
|
||||
|
||||
|
||||
MEMORY
|
||||
{
|
||||
PAGE 0 :
|
||||
/* BEGIN is used for the "boot to SARAM" bootloader mode */
|
||||
/* BOOT_RSVD is used by the boot ROM for stack. */
|
||||
/* This section is only reserved to keep the BOOT ROM from */
|
||||
/* corrupting this area during the debug process */
|
||||
|
||||
BEGIN : origin = 0x000000, length = 0x000002 /* Boot to M0 will go here */
|
||||
BOOT_RSVD : origin = 0x000002, length = 0x00004E /* Part of M0, BOOT rom will use this for stack */
|
||||
RAMM0 : origin = 0x000050, length = 0x0003B0
|
||||
|
||||
RAML0 : origin = 0x008000, length = 0x001000
|
||||
RAML1 : origin = 0x009000, length = 0x001000
|
||||
RAML2 : origin = 0x00A000, length = 0x001000
|
||||
RAML3 : origin = 0x00B000, length = 0x001000
|
||||
ZONE7A : origin = 0x200000, length = 0x00FC00 /* XINTF zone 7 - program space */
|
||||
CSM_RSVD : origin = 0x33FF80, length = 0x000076 /* Part of FLASHA. Program with all 0x0000 when CSM is in use. */
|
||||
CSM_PWL : origin = 0x33FFF8, length = 0x000008 /* Part of FLASHA. CSM password locations in FLASHA */
|
||||
ADC_CAL : origin = 0x380080, length = 0x000009
|
||||
RESET : origin = 0x3FFFC0, length = 0x000002
|
||||
IQTABLES : origin = 0x3FE000, length = 0x000b50
|
||||
IQTABLES2 : origin = 0x3FEB50, length = 0x00008c
|
||||
FPUTABLES : origin = 0x3FEBDC, length = 0x0006A0
|
||||
BOOTROM : origin = 0x3FF27C, length = 0x000D44
|
||||
|
||||
|
||||
PAGE 1 :
|
||||
RAMM1 : origin = 0x000400, length = 0x000400 /* on-chip RAM block M1 */
|
||||
RAML4 : origin = 0x00C000, length = 0x001000
|
||||
RAML5 : origin = 0x00D000, length = 0x001000
|
||||
RAML6 : origin = 0x00E000, length = 0x001000
|
||||
RAML7 : origin = 0x00F000, length = 0x001000
|
||||
ZONE7B : origin = 0x20FC00, length = 0x000400 /* XINTF zone 7 - data space */
|
||||
}
|
||||
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
/* Setup for "boot to SARAM" mode:
|
||||
The codestart section (found in DSP28_CodeStartBranch.asm)
|
||||
re-directs execution to the start of user code. */
|
||||
codestart : > BEGIN, PAGE = 0
|
||||
ramfuncs : > RAML0, PAGE = 0
|
||||
.text : > RAML1, PAGE = 0
|
||||
.cinit : > RAML0, PAGE = 0
|
||||
.pinit : > RAML0, PAGE = 0
|
||||
.switch : > RAML0, PAGE = 0
|
||||
|
||||
.stack : > RAMM1, PAGE = 1
|
||||
.ebss : > RAML4, PAGE = 1
|
||||
.econst : > RAML5, PAGE = 1
|
||||
.esysmem : > RAMM1, PAGE = 1
|
||||
|
||||
IQmath : > RAML1, PAGE = 0
|
||||
IQmathTables : > IQTABLES, PAGE = 0, TYPE = NOLOAD
|
||||
|
||||
/* Uncomment the section below if calling the IQNexp() or IQexp()
|
||||
functions from the IQMath.lib library in order to utilize the
|
||||
relevant IQ Math table in Boot ROM (This saves space and Boot ROM
|
||||
is 1 wait-state). If this section is not uncommented, IQmathTables2
|
||||
will be loaded into other memory (SARAM, Flash, etc.) and will take
|
||||
up space, but 0 wait-state is possible.
|
||||
*/
|
||||
/*
|
||||
IQmathTables2 : > IQTABLES2, PAGE = 0, TYPE = NOLOAD
|
||||
{
|
||||
|
||||
IQmath.lib<IQNexpTable.obj> (IQmathTablesRam)
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
FPUmathTables : > FPUTABLES, PAGE = 0, TYPE = NOLOAD
|
||||
|
||||
DMARAML4 : > RAML4, PAGE = 1
|
||||
DMARAML5 : > RAML5, PAGE = 1
|
||||
DMARAML6 : > RAML6, PAGE = 1
|
||||
DMARAML7 : > RAML7, PAGE = 1
|
||||
|
||||
ZONE7DATA : > ZONE7B, PAGE = 1
|
||||
|
||||
.reset : > RESET, PAGE = 0, TYPE = DSECT /* not used */
|
||||
csm_rsvd : > CSM_RSVD PAGE = 0, TYPE = DSECT /* not used for SARAM examples */
|
||||
csmpasswds : > CSM_PWL PAGE = 0, TYPE = DSECT /* not used for SARAM examples */
|
||||
|
||||
/* Allocate ADC_cal function (pre-programmed by factory into TI reserved memory) */
|
||||
.adc_cal : load = ADC_CAL, PAGE = 0, TYPE = NOLOAD
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
//===========================================================================
|
||||
// End of file.
|
||||
//===========================================================================
|
||||
*/
|
197
Source/External/v120/DSP2833x_common/cmd/F28332.cmd
vendored
Normal file
197
Source/External/v120/DSP2833x_common/cmd/F28332.cmd
vendored
Normal file
@ -0,0 +1,197 @@
|
||||
/*
|
||||
// TI File $Revision: /main/9 $
|
||||
// Checkin $Date: July 9, 2008 13:43:41 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: F28332.cmd
|
||||
//
|
||||
// TITLE: Linker Command File For F28332 Device
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
*/
|
||||
|
||||
/* ======================================================
|
||||
// For Code Composer Studio V2.2 and later
|
||||
// ---------------------------------------
|
||||
// In addition to this memory linker command file,
|
||||
// add the header linker command file directly to the project.
|
||||
// The header linker command file is required to link the
|
||||
// peripheral structures to the proper locations within
|
||||
// the memory map.
|
||||
//
|
||||
// The header linker files are found in <base>\DSP2833x_Headers\cmd
|
||||
//
|
||||
// For BIOS applications add: DSP2833x_Headers_BIOS.cmd
|
||||
// For nonBIOS applications add: DSP2833x_Headers_nonBIOS.cmd
|
||||
========================================================= */
|
||||
|
||||
/* ======================================================
|
||||
// For Code Composer Studio prior to V2.2
|
||||
// --------------------------------------
|
||||
// 1) Use one of the following -l statements to include the
|
||||
// header linker command file in the project. The header linker
|
||||
// file is required to link the peripheral structures to the proper
|
||||
// locations within the memory map */
|
||||
|
||||
/* Uncomment this line to include file only for non-BIOS applications */
|
||||
/* -l DSP2833x_Headers_nonBIOS.cmd */
|
||||
|
||||
/* Uncomment this line to include file only for BIOS applications */
|
||||
/* -l DSP2833x_Headers_BIOS.cmd */
|
||||
|
||||
/* 2) In your project add the path to <base>\DSP2833x_headers\cmd to the
|
||||
library search path under project->build options, linker tab,
|
||||
library search path (-i).
|
||||
/*========================================================= */
|
||||
|
||||
/* Define the memory block start/length for the F28332
|
||||
PAGE 0 will be used to organize program sections
|
||||
PAGE 1 will be used to organize data sections
|
||||
|
||||
Notes:
|
||||
Memory blocks on F28332 are uniform (ie same
|
||||
physical memory) in both PAGE 0 and PAGE 1.
|
||||
That is the same memory region should not be
|
||||
defined for both PAGE 0 and PAGE 1.
|
||||
Doing so will result in corruption of program
|
||||
and/or data.
|
||||
|
||||
L0/L1/L2 and L3 memory blocks are mirrored - that is
|
||||
they can be accessed in high memory or low memory.
|
||||
For simplicity only one instance is used in this
|
||||
linker file.
|
||||
|
||||
Contiguous SARAM memory blocks can be combined
|
||||
if required to create a larger memory block.
|
||||
*/
|
||||
|
||||
|
||||
MEMORY
|
||||
{
|
||||
PAGE 0: /* Program Memory */
|
||||
/* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE1 for data allocation */
|
||||
|
||||
ZONE0 : origin = 0x004000, length = 0x001000 /* XINTF zone 0 */
|
||||
RAML0 : origin = 0x008000, length = 0x001000 /* on-chip RAM block L0 */
|
||||
RAML1 : origin = 0x009000, length = 0x001000 /* on-chip RAM block L1 */
|
||||
RAML2 : origin = 0x00A000, length = 0x001000 /* on-chip RAM block L2 */
|
||||
RAML3 : origin = 0x00B000, length = 0x001000 /* on-chip RAM block L3 */
|
||||
ZONE6 : origin = 0x100000, length = 0x100000 /* XINTF zone 6 */
|
||||
ZONE7A : origin = 0x200000, length = 0x00FC00 /* XINTF zone 7 - program space */
|
||||
FLASHD : origin = 0x330000, length = 0x004000 /* on-chip FLASH */
|
||||
FLASHC : origin = 0x334000, length = 0x004000 /* on-chip FLASH */
|
||||
FLASHA : origin = 0x33C000, length = 0x003F80 /* on-chip FLASH */
|
||||
CSM_RSVD : origin = 0x33FF80, length = 0x000076 /* Part of FLASHA. Program with all 0x0000 when CSM is in use. */
|
||||
BEGIN : origin = 0x33FFF6, length = 0x000002 /* Part of FLASHA. Used for "boot to Flash" bootloader mode. */
|
||||
CSM_PWL : origin = 0x33FFF8, length = 0x000008 /* Part of FLASHA. CSM password locations in FLASHA */
|
||||
OTP : origin = 0x380400, length = 0x000400 /* on-chip OTP */
|
||||
ADC_CAL : origin = 0x380080, length = 0x000009 /* ADC_cal function in Reserved memory */
|
||||
|
||||
IQTABLES : origin = 0x3FE000, length = 0x000b50 /* IQ Math Tables in Boot ROM */
|
||||
IQTABLES2 : origin = 0x3FEB50, length = 0x00008c /* IQ Math Tables in Boot ROM */
|
||||
FPUTABLES : origin = 0x3FEBDC, length = 0x0006A0 /* FPU Tables in Boot ROM */
|
||||
ROM : origin = 0x3FF27C, length = 0x000D44 /* Boot ROM */
|
||||
RESET : origin = 0x3FFFC0, length = 0x000002 /* part of boot ROM */
|
||||
VECTORS : origin = 0x3FFFC2, length = 0x00003E /* part of boot ROM */
|
||||
|
||||
PAGE 1 : /* Data Memory */
|
||||
/* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE0 for program allocation */
|
||||
/* Registers remain on PAGE1 */
|
||||
|
||||
BOOT_RSVD : origin = 0x000000, length = 0x000050 /* Part of M0, BOOT rom will use this for stack */
|
||||
RAMM0 : origin = 0x000050, length = 0x0003B0 /* on-chip RAM block M0 */
|
||||
RAMM1 : origin = 0x000400, length = 0x000400 /* on-chip RAM block M1 */
|
||||
RAML4 : origin = 0x00C000, length = 0x001000 /* on-chip RAM block L1 */
|
||||
RAML5 : origin = 0x00D000, length = 0x001000 /* on-chip RAM block L1 */
|
||||
ZONE7B : origin = 0x20FC00, length = 0x0000400 /* XINTF zone 7 - data space */
|
||||
FLASHB : origin = 0x338000, length = 0x004000 /* on-chip FLASH */
|
||||
|
||||
}
|
||||
|
||||
/* Allocate sections to memory blocks.
|
||||
Note:
|
||||
codestart user defined section in DSP28_CodeStartBranch.asm used to redirect code
|
||||
execution when booting to flash
|
||||
ramfuncs user defined section to store functions that will be copied from Flash into RAM
|
||||
*/
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
|
||||
/* Allocate program areas: */
|
||||
.cinit : > FLASHA PAGE = 0
|
||||
.pinit : > FLASHA, PAGE = 0
|
||||
.text : > FLASHA PAGE = 0
|
||||
codestart : > BEGIN PAGE = 0
|
||||
ramfuncs : LOAD = FLASHD,
|
||||
RUN = RAML0,
|
||||
LOAD_START(_RamfuncsLoadStart),
|
||||
LOAD_END(_RamfuncsLoadEnd),
|
||||
RUN_START(_RamfuncsRunStart),
|
||||
PAGE = 0
|
||||
|
||||
csmpasswds : > CSM_PWL PAGE = 0
|
||||
csm_rsvd : > CSM_RSVD PAGE = 0
|
||||
|
||||
/* Allocate uninitalized data sections: */
|
||||
.stack : > RAMM1 PAGE = 1
|
||||
.ebss : > RAML4 PAGE = 1
|
||||
.esysmem : > RAMM1 PAGE = 1
|
||||
|
||||
/* Initalized sections go in Flash */
|
||||
/* For SDFlash to program these, they must be allocated to page 0 */
|
||||
.econst : > FLASHA PAGE = 0
|
||||
.switch : > FLASHA PAGE = 0
|
||||
|
||||
/* Allocate IQ math areas: */
|
||||
IQmath : > FLASHC PAGE = 0 /* Math Code */
|
||||
IQmathTables : > IQTABLES, PAGE = 0, TYPE = NOLOAD
|
||||
|
||||
/* Uncomment the section below if calling the IQNexp() or IQexp()
|
||||
functions from the IQMath.lib library in order to utilize the
|
||||
relevant IQ Math table in Boot ROM (This saves space and Boot ROM
|
||||
is 1 wait-state). If this section is not uncommented, IQmathTables2
|
||||
will be loaded into other memory (SARAM, Flash, etc.) and will take
|
||||
up space, but 0 wait-state is possible.
|
||||
*/
|
||||
/*
|
||||
IQmathTables2 : > IQTABLES2, PAGE = 0, TYPE = NOLOAD
|
||||
{
|
||||
|
||||
IQmath.lib<IQNexpTable.obj> (IQmathTablesRam)
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
FPUmathTables : > FPUTABLES, PAGE = 0, TYPE = NOLOAD
|
||||
|
||||
/* Allocate DMA-accessible RAM sections: */
|
||||
DMARAML4 : > RAML4, PAGE = 1
|
||||
DMARAML5 : > RAML5, PAGE = 1
|
||||
|
||||
/* Allocate 0x400 of XINTF Zone 7 to storing data */
|
||||
ZONE7DATA : > ZONE7B, PAGE = 1
|
||||
|
||||
/* .reset is a standard section used by the compiler. It contains the */
|
||||
/* the address of the start of _c_int00 for C Code. /*
|
||||
/* When using the boot ROM this section and the CPU vector */
|
||||
/* table is not needed. Thus the default type is set here to */
|
||||
/* DSECT */
|
||||
.reset : > RESET, PAGE = 0, TYPE = DSECT
|
||||
vectors : > VECTORS PAGE = 0, TYPE = DSECT
|
||||
|
||||
/* Allocate ADC_cal function (pre-programmed by factory into TI reserved memory) */
|
||||
.adc_cal : load = ADC_CAL, PAGE = 0, TYPE = NOLOAD
|
||||
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
//===========================================================================
|
||||
// End of file.
|
||||
//===========================================================================
|
||||
*/
|
||||
|
203
Source/External/v120/DSP2833x_common/cmd/F28334.cmd
vendored
Normal file
203
Source/External/v120/DSP2833x_common/cmd/F28334.cmd
vendored
Normal file
@ -0,0 +1,203 @@
|
||||
/*
|
||||
// TI File $Revision: /main/9 $
|
||||
// Checkin $Date: July 9, 2008 13:43:49 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: F28334.cmd
|
||||
//
|
||||
// TITLE: Linker Command File For F28334 Device
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
*/
|
||||
|
||||
/* ======================================================
|
||||
// For Code Composer Studio V2.2 and later
|
||||
// ---------------------------------------
|
||||
// In addition to this memory linker command file,
|
||||
// add the header linker command file directly to the project.
|
||||
// The header linker command file is required to link the
|
||||
// peripheral structures to the proper locations within
|
||||
// the memory map.
|
||||
//
|
||||
// The header linker files are found in <base>\DSP2833x_Headers\cmd
|
||||
//
|
||||
// For BIOS applications add: DSP2833x_Headers_BIOS.cmd
|
||||
// For nonBIOS applications add: DSP2833x_Headers_nonBIOS.cmd
|
||||
========================================================= */
|
||||
|
||||
/* ======================================================
|
||||
// For Code Composer Studio prior to V2.2
|
||||
// --------------------------------------
|
||||
// 1) Use one of the following -l statements to include the
|
||||
// header linker command file in the project. The header linker
|
||||
// file is required to link the peripheral structures to the proper
|
||||
// locations within the memory map */
|
||||
|
||||
/* Uncomment this line to include file only for non-BIOS applications */
|
||||
/* -l DSP2833x_Headers_nonBIOS.cmd */
|
||||
|
||||
/* Uncomment this line to include file only for BIOS applications */
|
||||
/* -l DSP2833x_Headers_BIOS.cmd */
|
||||
|
||||
/* 2) In your project add the path to <base>\DSP2833x_headers\cmd to the
|
||||
library search path under project->build options, linker tab,
|
||||
library search path (-i).
|
||||
/*========================================================= */
|
||||
|
||||
/* Define the memory block start/length for the F28334
|
||||
PAGE 0 will be used to organize program sections
|
||||
PAGE 1 will be used to organize data sections
|
||||
|
||||
Notes:
|
||||
Memory blocks on F28334 are uniform (ie same
|
||||
physical memory) in both PAGE 0 and PAGE 1.
|
||||
That is the same memory region should not be
|
||||
defined for both PAGE 0 and PAGE 1.
|
||||
Doing so will result in corruption of program
|
||||
and/or data.
|
||||
|
||||
L0/L1/L2 and L3 memory blocks are mirrored - that is
|
||||
they can be accessed in high memory or low memory.
|
||||
For simplicity only one instance is used in this
|
||||
linker file.
|
||||
|
||||
Contiguous SARAM memory blocks can be combined
|
||||
if required to create a larger memory block.
|
||||
*/
|
||||
|
||||
|
||||
MEMORY
|
||||
{
|
||||
PAGE 0: /* Program Memory */
|
||||
/* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE1 for data allocation */
|
||||
|
||||
ZONE0 : origin = 0x004000, length = 0x001000 /* XINTF zone 0 */
|
||||
RAML0 : origin = 0x008000, length = 0x001000 /* on-chip RAM block L0 */
|
||||
RAML1 : origin = 0x009000, length = 0x001000 /* on-chip RAM block L1 */
|
||||
RAML2 : origin = 0x00A000, length = 0x001000 /* on-chip RAM block L2 */
|
||||
RAML3 : origin = 0x00B000, length = 0x001000 /* on-chip RAM block L3 */
|
||||
ZONE6 : origin = 0x100000, length = 0x0100000 /* XINTF zone 6 */
|
||||
ZONE7A : origin = 0x200000, length = 0x000FC00 /* XINTF zone 7 - program space */
|
||||
FLASHH : origin = 0x320000, length = 0x004000 /* on-chip FLASH */
|
||||
FLASHG : origin = 0x324000, length = 0x004000 /* on-chip FLASH */
|
||||
FLASHF : origin = 0x328000, length = 0x004000 /* on-chip FLASH */
|
||||
FLASHE : origin = 0x32C000, length = 0x004000 /* on-chip FLASH */
|
||||
FLASHD : origin = 0x330000, length = 0x004000 /* on-chip FLASH */
|
||||
FLASHC : origin = 0x334000, length = 0x004000 /* on-chip FLASH */
|
||||
FLASHA : origin = 0x33C000, length = 0x003F80 /* on-chip FLASH */
|
||||
CSM_RSVD : origin = 0x33FF80, length = 0x000076 /* Part of FLASHA. Program with all 0x0000 when CSM is in use. */
|
||||
BEGIN : origin = 0x33FFF6, length = 0x000002 /* Part of FLASHA. Used for "boot to Flash" bootloader mode. */
|
||||
CSM_PWL : origin = 0x33FFF8, length = 0x000008 /* Part of FLASHA. CSM password locations in FLASHA */
|
||||
OTP : origin = 0x380400, length = 0x000400 /* on-chip OTP */
|
||||
ADC_CAL : origin = 0x380080, length = 0x000009 /* ADC_cal function in Reserved memory */
|
||||
|
||||
IQTABLES : origin = 0x3FE000, length = 0x000b50 /* IQ Math Tables in Boot ROM */
|
||||
IQTABLES2 : origin = 0x3FEB50, length = 0x00008c /* IQ Math Tables in Boot ROM */
|
||||
FPUTABLES : origin = 0x3FEBDC, length = 0x0006A0 /* FPU Tables in Boot ROM */
|
||||
ROM : origin = 0x3FF27C, length = 0x000D44 /* Boot ROM */
|
||||
RESET : origin = 0x3FFFC0, length = 0x000002 /* part of boot ROM */
|
||||
VECTORS : origin = 0x3FFFC2, length = 0x00003E /* part of boot ROM */
|
||||
|
||||
PAGE 1 : /* Data Memory */
|
||||
/* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE0 for program allocation */
|
||||
/* Registers remain on PAGE1 */
|
||||
|
||||
BOOT_RSVD : origin = 0x000000, length = 0x000050 /* Part of M0, BOOT rom will use this for stack */
|
||||
RAMM0 : origin = 0x000050, length = 0x0003B0 /* on-chip RAM block M0 */
|
||||
RAMM1 : origin = 0x000400, length = 0x000400 /* on-chip RAM block M1 */
|
||||
RAML4 : origin = 0x00C000, length = 0x001000 /* on-chip RAM block L1 */
|
||||
RAML5 : origin = 0x00D000, length = 0x001000 /* on-chip RAM block L1 */
|
||||
RAML6 : origin = 0x00E000, length = 0x001000 /* on-chip RAM block L1 */
|
||||
RAML7 : origin = 0x00F000, length = 0x001000 /* on-chip RAM block L1 */
|
||||
ZONE7B : origin = 0x20FC00, length = 0x000400 /* XINTF zone 7 - data space */
|
||||
FLASHB : origin = 0x338000, length = 0x004000 /* on-chip FLASH */
|
||||
}
|
||||
|
||||
/* Allocate sections to memory blocks.
|
||||
Note:
|
||||
codestart user defined section in DSP28_CodeStartBranch.asm used to redirect code
|
||||
execution when booting to flash
|
||||
ramfuncs user defined section to store functions that will be copied from Flash into RAM
|
||||
*/
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
|
||||
/* Allocate program areas: */
|
||||
.cinit : > FLASHA PAGE = 0
|
||||
.pinit : > FLASHA, PAGE = 0
|
||||
.text : > FLASHA PAGE = 0
|
||||
codestart : > BEGIN PAGE = 0
|
||||
ramfuncs : LOAD = FLASHD,
|
||||
RUN = RAML0,
|
||||
LOAD_START(_RamfuncsLoadStart),
|
||||
LOAD_END(_RamfuncsLoadEnd),
|
||||
RUN_START(_RamfuncsRunStart),
|
||||
PAGE = 0
|
||||
|
||||
csmpasswds : > CSM_PWL PAGE = 0
|
||||
csm_rsvd : > CSM_RSVD PAGE = 0
|
||||
|
||||
/* Allocate uninitalized data sections: */
|
||||
.stack : > RAMM1 PAGE = 1
|
||||
.ebss : > RAML4 PAGE = 1
|
||||
.esysmem : > RAMM1 PAGE = 1
|
||||
|
||||
/* Initalized sections go in Flash */
|
||||
/* For SDFlash to program these, they must be allocated to page 0 */
|
||||
.econst : > FLASHA PAGE = 0
|
||||
.switch : > FLASHA PAGE = 0
|
||||
|
||||
/* Allocate IQ math areas: */
|
||||
IQmath : > FLASHC PAGE = 0 /* Math Code */
|
||||
IQmathTables : > IQTABLES, PAGE = 0, TYPE = NOLOAD
|
||||
|
||||
/* Uncomment the section below if calling the IQNexp() or IQexp()
|
||||
functions from the IQMath.lib library in order to utilize the
|
||||
relevant IQ Math table in Boot ROM (This saves space and Boot ROM
|
||||
is 1 wait-state). If this section is not uncommented, IQmathTables2
|
||||
will be loaded into other memory (SARAM, Flash, etc.) and will take
|
||||
up space, but 0 wait-state is possible.
|
||||
*/
|
||||
/*
|
||||
IQmathTables2 : > IQTABLES2, PAGE = 0, TYPE = NOLOAD
|
||||
{
|
||||
|
||||
IQmath.lib<IQNexpTable.obj> (IQmathTablesRam)
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
FPUmathTables : > FPUTABLES, PAGE = 0, TYPE = NOLOAD
|
||||
|
||||
/* Allocate DMA-accessible RAM sections: */
|
||||
DMARAML4 : > RAML4, PAGE = 1
|
||||
DMARAML5 : > RAML5, PAGE = 1
|
||||
DMARAML6 : > RAML6, PAGE = 1
|
||||
DMARAML7 : > RAML7, PAGE = 1
|
||||
|
||||
/* Allocate 0x400 of XINTF Zone 7 to storing data */
|
||||
ZONE7DATA : > ZONE7B, PAGE = 1
|
||||
|
||||
/* .reset is a standard section used by the compiler. It contains the */
|
||||
/* the address of the start of _c_int00 for C Code. /*
|
||||
/* When using the boot ROM this section and the CPU vector */
|
||||
/* table is not needed. Thus the default type is set here to */
|
||||
/* DSECT */
|
||||
.reset : > RESET, PAGE = 0, TYPE = DSECT
|
||||
vectors : > VECTORS PAGE = 0, TYPE = DSECT
|
||||
|
||||
/* Allocate ADC_cal function (pre-programmed by factory into TI reserved memory) */
|
||||
.adc_cal : load = ADC_CAL, PAGE = 0, TYPE = NOLOAD
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
//===========================================================================
|
||||
// End of file.
|
||||
//===========================================================================
|
||||
*/
|
||||
|
203
Source/External/v120/DSP2833x_common/cmd/F28335.cmd
vendored
Normal file
203
Source/External/v120/DSP2833x_common/cmd/F28335.cmd
vendored
Normal file
@ -0,0 +1,203 @@
|
||||
/*
|
||||
// TI File $Revision: /main/10 $
|
||||
// Checkin $Date: July 9, 2008 13:43:56 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: F28335.cmd
|
||||
//
|
||||
// TITLE: Linker Command File For F28335 Device
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
*/
|
||||
|
||||
/* ======================================================
|
||||
// For Code Composer Studio V2.2 and later
|
||||
// ---------------------------------------
|
||||
// In addition to this memory linker command file,
|
||||
// add the header linker command file directly to the project.
|
||||
// The header linker command file is required to link the
|
||||
// peripheral structures to the proper locations within
|
||||
// the memory map.
|
||||
//
|
||||
// The header linker files are found in <base>\DSP2833x_Headers\cmd
|
||||
//
|
||||
// For BIOS applications add: DSP2833x_Headers_BIOS.cmd
|
||||
// For nonBIOS applications add: DSP2833x_Headers_nonBIOS.cmd
|
||||
========================================================= */
|
||||
|
||||
/* ======================================================
|
||||
// For Code Composer Studio prior to V2.2
|
||||
// --------------------------------------
|
||||
// 1) Use one of the following -l statements to include the
|
||||
// header linker command file in the project. The header linker
|
||||
// file is required to link the peripheral structures to the proper
|
||||
// locations within the memory map */
|
||||
|
||||
/* Uncomment this line to include file only for non-BIOS applications */
|
||||
/* -l DSP2833x_Headers_nonBIOS.cmd */
|
||||
|
||||
/* Uncomment this line to include file only for BIOS applications */
|
||||
/* -l DSP2833x_Headers_BIOS.cmd */
|
||||
|
||||
/* 2) In your project add the path to <base>\DSP2833x_headers\cmd to the
|
||||
library search path under project->build options, linker tab,
|
||||
library search path (-i).
|
||||
/*========================================================= */
|
||||
|
||||
/* Define the memory block start/length for the F28335
|
||||
PAGE 0 will be used to organize program sections
|
||||
PAGE 1 will be used to organize data sections
|
||||
|
||||
Notes:
|
||||
Memory blocks on F28335 are uniform (ie same
|
||||
physical memory) in both PAGE 0 and PAGE 1.
|
||||
That is the same memory region should not be
|
||||
defined for both PAGE 0 and PAGE 1.
|
||||
Doing so will result in corruption of program
|
||||
and/or data.
|
||||
|
||||
L0/L1/L2 and L3 memory blocks are mirrored - that is
|
||||
they can be accessed in high memory or low memory.
|
||||
For simplicity only one instance is used in this
|
||||
linker file.
|
||||
|
||||
Contiguous SARAM memory blocks can be combined
|
||||
if required to create a larger memory block.
|
||||
*/
|
||||
|
||||
|
||||
MEMORY
|
||||
{
|
||||
PAGE 0: /* Program Memory */
|
||||
/* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE1 for data allocation */
|
||||
|
||||
ZONE0 : origin = 0x004000, length = 0x001000 /* XINTF zone 0 */
|
||||
RAML0 : origin = 0x008000, length = 0x001000 /* on-chip RAM block L0 */
|
||||
RAML1 : origin = 0x009000, length = 0x001000 /* on-chip RAM block L1 */
|
||||
RAML2 : origin = 0x00A000, length = 0x001000 /* on-chip RAM block L2 */
|
||||
RAML3 : origin = 0x00B000, length = 0x001000 /* on-chip RAM block L3 */
|
||||
ZONE6 : origin = 0x0100000, length = 0x100000 /* XINTF zone 6 */
|
||||
ZONE7A : origin = 0x0200000, length = 0x00FC00 /* XINTF zone 7 - program space */
|
||||
FLASHH : origin = 0x300000, length = 0x008000 /* on-chip FLASH */
|
||||
FLASHG : origin = 0x308000, length = 0x008000 /* on-chip FLASH */
|
||||
FLASHF : origin = 0x310000, length = 0x008000 /* on-chip FLASH */
|
||||
FLASHE : origin = 0x318000, length = 0x008000 /* on-chip FLASH */
|
||||
FLASHD : origin = 0x320000, length = 0x008000 /* on-chip FLASH */
|
||||
FLASHC : origin = 0x328000, length = 0x008000 /* on-chip FLASH */
|
||||
FLASHA : origin = 0x338000, length = 0x007F80 /* on-chip FLASH */
|
||||
CSM_RSVD : origin = 0x33FF80, length = 0x000076 /* Part of FLASHA. Program with all 0x0000 when CSM is in use. */
|
||||
BEGIN : origin = 0x33FFF6, length = 0x000002 /* Part of FLASHA. Used for "boot to Flash" bootloader mode. */
|
||||
CSM_PWL : origin = 0x33FFF8, length = 0x000008 /* Part of FLASHA. CSM password locations in FLASHA */
|
||||
OTP : origin = 0x380400, length = 0x000400 /* on-chip OTP */
|
||||
ADC_CAL : origin = 0x380080, length = 0x000009 /* ADC_cal function in Reserved memory */
|
||||
|
||||
IQTABLES : origin = 0x3FE000, length = 0x000b50 /* IQ Math Tables in Boot ROM */
|
||||
IQTABLES2 : origin = 0x3FEB50, length = 0x00008c /* IQ Math Tables in Boot ROM */
|
||||
FPUTABLES : origin = 0x3FEBDC, length = 0x0006A0 /* FPU Tables in Boot ROM */
|
||||
ROM : origin = 0x3FF27C, length = 0x000D44 /* Boot ROM */
|
||||
RESET : origin = 0x3FFFC0, length = 0x000002 /* part of boot ROM */
|
||||
VECTORS : origin = 0x3FFFC2, length = 0x00003E /* part of boot ROM */
|
||||
|
||||
PAGE 1 : /* Data Memory */
|
||||
/* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE0 for program allocation */
|
||||
/* Registers remain on PAGE1 */
|
||||
|
||||
BOOT_RSVD : origin = 0x000000, length = 0x000050 /* Part of M0, BOOT rom will use this for stack */
|
||||
RAMM0 : origin = 0x000050, length = 0x0003B0 /* on-chip RAM block M0 */
|
||||
RAMM1 : origin = 0x000400, length = 0x000400 /* on-chip RAM block M1 */
|
||||
RAML4 : origin = 0x00C000, length = 0x001000 /* on-chip RAM block L1 */
|
||||
RAML5 : origin = 0x00D000, length = 0x001000 /* on-chip RAM block L1 */
|
||||
RAML6 : origin = 0x00E000, length = 0x001000 /* on-chip RAM block L1 */
|
||||
RAML7 : origin = 0x00F000, length = 0x001000 /* on-chip RAM block L1 */
|
||||
ZONE7B : origin = 0x20FC00, length = 0x000400 /* XINTF zone 7 - data space */
|
||||
FLASHB : origin = 0x330000, length = 0x008000 /* on-chip FLASH */
|
||||
}
|
||||
|
||||
/* Allocate sections to memory blocks.
|
||||
Note:
|
||||
codestart user defined section in DSP28_CodeStartBranch.asm used to redirect code
|
||||
execution when booting to flash
|
||||
ramfuncs user defined section to store functions that will be copied from Flash into RAM
|
||||
*/
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
|
||||
/* Allocate program areas: */
|
||||
.cinit : > FLASHA PAGE = 0
|
||||
.pinit : > FLASHA, PAGE = 0
|
||||
.text : > FLASHA PAGE = 0
|
||||
codestart : > BEGIN PAGE = 0
|
||||
ramfuncs : LOAD = FLASHD,
|
||||
RUN = RAML0,
|
||||
LOAD_START(_RamfuncsLoadStart),
|
||||
LOAD_END(_RamfuncsLoadEnd),
|
||||
RUN_START(_RamfuncsRunStart),
|
||||
PAGE = 0
|
||||
|
||||
csmpasswds : > CSM_PWL PAGE = 0
|
||||
csm_rsvd : > CSM_RSVD PAGE = 0
|
||||
|
||||
/* Allocate uninitalized data sections: */
|
||||
.stack : > RAMM1 PAGE = 1
|
||||
.ebss : > RAML4 PAGE = 1
|
||||
.esysmem : > RAMM1 PAGE = 1
|
||||
|
||||
/* Initalized sections go in Flash */
|
||||
/* For SDFlash to program these, they must be allocated to page 0 */
|
||||
.econst : > FLASHA PAGE = 0
|
||||
.switch : > FLASHA PAGE = 0
|
||||
|
||||
/* Allocate IQ math areas: */
|
||||
IQmath : > FLASHC PAGE = 0 /* Math Code */
|
||||
IQmathTables : > IQTABLES, PAGE = 0, TYPE = NOLOAD
|
||||
|
||||
/* Uncomment the section below if calling the IQNexp() or IQexp()
|
||||
functions from the IQMath.lib library in order to utilize the
|
||||
relevant IQ Math table in Boot ROM (This saves space and Boot ROM
|
||||
is 1 wait-state). If this section is not uncommented, IQmathTables2
|
||||
will be loaded into other memory (SARAM, Flash, etc.) and will take
|
||||
up space, but 0 wait-state is possible.
|
||||
*/
|
||||
/*
|
||||
IQmathTables2 : > IQTABLES2, PAGE = 0, TYPE = NOLOAD
|
||||
{
|
||||
|
||||
IQmath.lib<IQNexpTable.obj> (IQmathTablesRam)
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
FPUmathTables : > FPUTABLES, PAGE = 0, TYPE = NOLOAD
|
||||
|
||||
/* Allocate DMA-accessible RAM sections: */
|
||||
DMARAML4 : > RAML4, PAGE = 1
|
||||
DMARAML5 : > RAML5, PAGE = 1
|
||||
DMARAML6 : > RAML6, PAGE = 1
|
||||
DMARAML7 : > RAML7, PAGE = 1
|
||||
|
||||
/* Allocate 0x400 of XINTF Zone 7 to storing data */
|
||||
ZONE7DATA : > ZONE7B, PAGE = 1
|
||||
|
||||
/* .reset is a standard section used by the compiler. It contains the */
|
||||
/* the address of the start of _c_int00 for C Code. /*
|
||||
/* When using the boot ROM this section and the CPU vector */
|
||||
/* table is not needed. Thus the default type is set here to */
|
||||
/* DSECT */
|
||||
.reset : > RESET, PAGE = 0, TYPE = DSECT
|
||||
vectors : > VECTORS PAGE = 0, TYPE = DSECT
|
||||
|
||||
/* Allocate ADC_cal function (pre-programmed by factory into TI reserved memory) */
|
||||
.adc_cal : load = ADC_CAL, PAGE = 0, TYPE = NOLOAD
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
//===========================================================================
|
||||
// End of file.
|
||||
//===========================================================================
|
||||
*/
|
||||
|
2822
Source/External/v120/DSP2833x_common/gel/f28232.gel
vendored
Normal file
2822
Source/External/v120/DSP2833x_common/gel/f28232.gel
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2930
Source/External/v120/DSP2833x_common/gel/f28234.gel
vendored
Normal file
2930
Source/External/v120/DSP2833x_common/gel/f28234.gel
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2939
Source/External/v120/DSP2833x_common/gel/f28235.gel
vendored
Normal file
2939
Source/External/v120/DSP2833x_common/gel/f28235.gel
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2845
Source/External/v120/DSP2833x_common/gel/f28332.gel
vendored
Normal file
2845
Source/External/v120/DSP2833x_common/gel/f28332.gel
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2951
Source/External/v120/DSP2833x_common/gel/f28334.gel
vendored
Normal file
2951
Source/External/v120/DSP2833x_common/gel/f28334.gel
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2960
Source/External/v120/DSP2833x_common/gel/f28335.gel
vendored
Normal file
2960
Source/External/v120/DSP2833x_common/gel/f28335.gel
vendored
Normal file
File diff suppressed because it is too large
Load Diff
147
Source/External/v120/DSP2833x_common/include/DSP2833x_DefaultIsr.h
vendored
Normal file
147
Source/External/v120/DSP2833x_common/include/DSP2833x_DefaultIsr.h
vendored
Normal file
@ -0,0 +1,147 @@
|
||||
// TI File $Revision: /main/1 $
|
||||
// Checkin $Date: August 18, 2006 13:45:37 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: DSP2833x_DefaultIsr.h
|
||||
//
|
||||
// TITLE: DSP2833x Devices Default Interrupt Service Routines Definitions.
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
|
||||
#ifndef DSP2833x_DEFAULT_ISR_H
|
||||
#define DSP2833x_DEFAULT_ISR_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Default Interrupt Service Routine Declarations:
|
||||
//
|
||||
// The following function prototypes are for the
|
||||
// default ISR routines used with the default PIE vector table.
|
||||
// This default vector table is found in the DSP2833x_PieVect.h
|
||||
// file.
|
||||
//
|
||||
|
||||
// Non-Peripheral Interrupts:
|
||||
interrupt void INT13_ISR(void); // XINT13 or CPU-Timer 1
|
||||
interrupt void INT14_ISR(void); // CPU-Timer2
|
||||
interrupt void DATALOG_ISR(void); // Datalogging interrupt
|
||||
interrupt void RTOSINT_ISR(void); // RTOS interrupt
|
||||
interrupt void EMUINT_ISR(void); // Emulation interrupt
|
||||
interrupt void NMI_ISR(void); // Non-maskable interrupt
|
||||
interrupt void ILLEGAL_ISR(void); // Illegal operation TRAP
|
||||
interrupt void USER1_ISR(void); // User Defined trap 1
|
||||
interrupt void USER2_ISR(void); // User Defined trap 2
|
||||
interrupt void USER3_ISR(void); // User Defined trap 3
|
||||
interrupt void USER4_ISR(void); // User Defined trap 4
|
||||
interrupt void USER5_ISR(void); // User Defined trap 5
|
||||
interrupt void USER6_ISR(void); // User Defined trap 6
|
||||
interrupt void USER7_ISR(void); // User Defined trap 7
|
||||
interrupt void USER8_ISR(void); // User Defined trap 8
|
||||
interrupt void USER9_ISR(void); // User Defined trap 9
|
||||
interrupt void USER10_ISR(void); // User Defined trap 10
|
||||
interrupt void USER11_ISR(void); // User Defined trap 11
|
||||
interrupt void USER12_ISR(void); // User Defined trap 12
|
||||
|
||||
// Group 1 PIE Interrupt Service Routines:
|
||||
interrupt void SEQ1INT_ISR(void); // ADC Sequencer 1 ISR
|
||||
interrupt void SEQ2INT_ISR(void); // ADC Sequencer 2 ISR
|
||||
interrupt void XINT1_ISR(void); // External interrupt 1
|
||||
interrupt void XINT2_ISR(void); // External interrupt 2
|
||||
interrupt void ADCINT_ISR(void); // ADC
|
||||
interrupt void TINT0_ISR(void); // Timer 0
|
||||
interrupt void WAKEINT_ISR(void); // WD
|
||||
|
||||
// Group 2 PIE Interrupt Service Routines:
|
||||
interrupt void EPWM1_TZINT_ISR(void); // EPWM-1
|
||||
interrupt void EPWM2_TZINT_ISR(void); // EPWM-2
|
||||
interrupt void EPWM3_TZINT_ISR(void); // EPWM-3
|
||||
interrupt void EPWM4_TZINT_ISR(void); // EPWM-4
|
||||
interrupt void EPWM5_TZINT_ISR(void); // EPWM-5
|
||||
interrupt void EPWM6_TZINT_ISR(void); // EPWM-6
|
||||
|
||||
// Group 3 PIE Interrupt Service Routines:
|
||||
interrupt void EPWM1_INT_ISR(void); // EPWM-1
|
||||
interrupt void EPWM2_INT_ISR(void); // EPWM-2
|
||||
interrupt void EPWM3_INT_ISR(void); // EPWM-3
|
||||
interrupt void EPWM4_INT_ISR(void); // EPWM-4
|
||||
interrupt void EPWM5_INT_ISR(void); // EPWM-5
|
||||
interrupt void EPWM6_INT_ISR(void); // EPWM-6
|
||||
|
||||
// Group 4 PIE Interrupt Service Routines:
|
||||
interrupt void ECAP1_INT_ISR(void); // ECAP-1
|
||||
interrupt void ECAP2_INT_ISR(void); // ECAP-2
|
||||
interrupt void ECAP3_INT_ISR(void); // ECAP-3
|
||||
interrupt void ECAP4_INT_ISR(void); // ECAP-4
|
||||
interrupt void ECAP5_INT_ISR(void); // ECAP-5
|
||||
interrupt void ECAP6_INT_ISR(void); // ECAP-6
|
||||
|
||||
// Group 5 PIE Interrupt Service Routines:
|
||||
interrupt void EQEP1_INT_ISR(void); // EQEP-1
|
||||
interrupt void EQEP2_INT_ISR(void); // EQEP-2
|
||||
|
||||
// Group 6 PIE Interrupt Service Routines:
|
||||
interrupt void SPIRXINTA_ISR(void); // SPI-A
|
||||
interrupt void SPITXINTA_ISR(void); // SPI-A
|
||||
interrupt void MRINTA_ISR(void); // McBSP-A
|
||||
interrupt void MXINTA_ISR(void); // McBSP-A
|
||||
interrupt void MRINTB_ISR(void); // McBSP-B
|
||||
interrupt void MXINTB_ISR(void); // McBSP-B
|
||||
|
||||
// Group 7 PIE Interrupt Service Routines:
|
||||
interrupt void DINTCH1_ISR(void); // DMA-Channel 1
|
||||
interrupt void DINTCH2_ISR(void); // DMA-Channel 2
|
||||
interrupt void DINTCH3_ISR(void); // DMA-Channel 3
|
||||
interrupt void DINTCH4_ISR(void); // DMA-Channel 4
|
||||
interrupt void DINTCH5_ISR(void); // DMA-Channel 5
|
||||
interrupt void DINTCH6_ISR(void); // DMA-Channel 6
|
||||
|
||||
// Group 8 PIE Interrupt Service Routines:
|
||||
interrupt void I2CINT1A_ISR(void); // I2C-A
|
||||
interrupt void I2CINT2A_ISR(void); // I2C-A
|
||||
interrupt void SCIRXINTC_ISR(void); // SCI-C
|
||||
interrupt void SCITXINTC_ISR(void); // SCI-C
|
||||
|
||||
// Group 9 PIE Interrupt Service Routines:
|
||||
interrupt void SCIRXINTA_ISR(void); // SCI-A
|
||||
interrupt void SCITXINTA_ISR(void); // SCI-A
|
||||
interrupt void SCIRXINTB_ISR(void); // SCI-B
|
||||
interrupt void SCITXINTB_ISR(void); // SCI-B
|
||||
interrupt void ECAN0INTA_ISR(void); // eCAN-A
|
||||
interrupt void ECAN1INTA_ISR(void); // eCAN-A
|
||||
interrupt void ECAN0INTB_ISR(void); // eCAN-B
|
||||
interrupt void ECAN1INTB_ISR(void); // eCAN-B
|
||||
|
||||
// Group 10 PIE Interrupt Service Routines:
|
||||
|
||||
// Group 11 PIE Interrupt Service Routines:
|
||||
|
||||
// Group 12 PIE Interrupt Service Routines:
|
||||
interrupt void XINT3_ISR(void); // External interrupt 3
|
||||
interrupt void XINT4_ISR(void); // External interrupt 4
|
||||
interrupt void XINT5_ISR(void); // External interrupt 5
|
||||
interrupt void XINT6_ISR(void); // External interrupt 6
|
||||
interrupt void XINT7_ISR(void); // External interrupt 7
|
||||
interrupt void LVF_ISR(void); // Latched overflow flag
|
||||
interrupt void LUF_ISR(void); // Latched underflow flag
|
||||
|
||||
// Catch-all for Reserved Locations For testing purposes:
|
||||
interrupt void PIE_RESERVED(void); // Reserved for test
|
||||
interrupt void rsvd_ISR(void); // for test
|
||||
interrupt void INT_NOTUSED_ISR(void); // for unused interrupts
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* extern "C" */
|
||||
|
||||
#endif // end of DSP2833x_DEFAULT_ISR_H definition
|
||||
|
||||
//===========================================================================
|
||||
// End of file.
|
||||
//===========================================================================
|
81
Source/External/v120/DSP2833x_common/include/DSP2833x_Dma_defines.h
vendored
Normal file
81
Source/External/v120/DSP2833x_common/include/DSP2833x_Dma_defines.h
vendored
Normal file
@ -0,0 +1,81 @@
|
||||
// TI File $Revision: /main/2 $
|
||||
// Checkin $Date: August 14, 2007 16:32:29 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: DSP2833x_Dma_defines.h
|
||||
//
|
||||
// TITLE: #defines used in DMA examples
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
|
||||
#ifndef DSP2833x_DMA_DEFINES_H
|
||||
#define DSP2833x_DMA_DEFINES_H
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
// MODE
|
||||
//==========================
|
||||
// PERINTSEL bits
|
||||
#define DMA_SEQ1INT 1
|
||||
#define DMA_SEQ2INT 2
|
||||
#define DMA_XINT1 3
|
||||
#define DMA_XINT2 4
|
||||
#define DMA_XINT3 5
|
||||
#define DMA_XINT4 6
|
||||
#define DMA_XINT5 7
|
||||
#define DMA_XINT6 8
|
||||
#define DMA_XINT7 9
|
||||
#define DMA_XINT13 10
|
||||
#define DMA_TINT0 11
|
||||
#define DMA_TINT1 12
|
||||
#define DMA_TINT2 13
|
||||
#define DMA_MXEVTA 14
|
||||
#define DMA_MREVTA 15
|
||||
#define DMA_MXREVTB 16
|
||||
#define DMA_MREVTB 17
|
||||
// OVERINTE bit
|
||||
#define OVRFLOW_DISABLE 0x0
|
||||
#define OVEFLOW_ENABLE 0x1
|
||||
// PERINTE bit
|
||||
#define PERINT_DISABLE 0x0
|
||||
#define PERINT_ENABLE 0x1
|
||||
// CHINTMODE bits
|
||||
#define CHINT_BEGIN 0x0
|
||||
#define CHINT_END 0x1
|
||||
// ONESHOT bits
|
||||
#define ONESHOT_DISABLE 0x0
|
||||
#define ONESHOT_ENABLE 0x1
|
||||
// CONTINOUS bit
|
||||
#define CONT_DISABLE 0x0
|
||||
#define CONT_ENABLE 0x1
|
||||
// SYNCE bit
|
||||
#define SYNC_DISABLE 0x0
|
||||
#define SYNC_ENABLE 0x1
|
||||
// SYNCSEL bit
|
||||
#define SYNC_SRC 0x0
|
||||
#define SYNC_DST 0x1
|
||||
// DATASIZE bit
|
||||
#define SIXTEEN_BIT 0x0
|
||||
#define THIRTYTWO_BIT 0x1
|
||||
// CHINTE bit
|
||||
#define CHINT_DISABLE 0x0
|
||||
#define CHINT_ENABLE 0x1
|
||||
|
||||
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* extern "C" */
|
||||
|
||||
#endif // - end of DSP2833x_EPWM_DEFINES_H
|
||||
|
||||
//===========================================================================
|
||||
// End of file.
|
||||
//===========================================================================
|
164
Source/External/v120/DSP2833x_common/include/DSP2833x_EPwm_defines.h
vendored
Normal file
164
Source/External/v120/DSP2833x_common/include/DSP2833x_EPwm_defines.h
vendored
Normal file
@ -0,0 +1,164 @@
|
||||
// TI File $Revision: /main/1 $
|
||||
// Checkin $Date: August 18, 2006 13:45:39 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: DSP2833x_EPwm_defines.h
|
||||
//
|
||||
// TITLE: #defines used in ePWM examples examples
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
|
||||
#ifndef DSP2833x_EPWM_DEFINES_H
|
||||
#define DSP2833x_EPWM_DEFINES_H
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
// TBCTL (Time-Base Control)
|
||||
//==========================
|
||||
// CTRMODE bits
|
||||
#define TB_COUNT_UP 0x0
|
||||
#define TB_COUNT_DOWN 0x1
|
||||
#define TB_COUNT_UPDOWN 0x2
|
||||
#define TB_FREEZE 0x3
|
||||
// PHSEN bit
|
||||
#define TB_DISABLE 0x0
|
||||
#define TB_ENABLE 0x1
|
||||
// PRDLD bit
|
||||
#define TB_SHADOW 0x0
|
||||
#define TB_IMMEDIATE 0x1
|
||||
// SYNCOSEL bits
|
||||
#define TB_SYNC_IN 0x0
|
||||
#define TB_CTR_ZERO 0x1
|
||||
#define TB_CTR_CMPB 0x2
|
||||
#define TB_SYNC_DISABLE 0x3
|
||||
// HSPCLKDIV and CLKDIV bits
|
||||
#define TB_DIV1 0x0
|
||||
#define TB_DIV2 0x1
|
||||
#define TB_DIV4 0x2
|
||||
// PHSDIR bit
|
||||
#define TB_DOWN 0x0
|
||||
#define TB_UP 0x1
|
||||
|
||||
// CMPCTL (Compare Control)
|
||||
//==========================
|
||||
// LOADAMODE and LOADBMODE bits
|
||||
#define CC_CTR_ZERO 0x0
|
||||
#define CC_CTR_PRD 0x1
|
||||
#define CC_CTR_ZERO_PRD 0x2
|
||||
#define CC_LD_DISABLE 0x3
|
||||
// SHDWAMODE and SHDWBMODE bits
|
||||
#define CC_SHADOW 0x0
|
||||
#define CC_IMMEDIATE 0x1
|
||||
|
||||
// AQCTLA and AQCTLB (Action Qualifier Control)
|
||||
//=============================================
|
||||
// ZRO, PRD, CAU, CAD, CBU, CBD bits
|
||||
#define AQ_NO_ACTION 0x0
|
||||
#define AQ_CLEAR 0x1
|
||||
#define AQ_SET 0x2
|
||||
#define AQ_TOGGLE 0x3
|
||||
|
||||
// DBCTL (Dead-Band Control)
|
||||
//==========================
|
||||
// OUT MODE bits
|
||||
#define DB_DISABLE 0x0
|
||||
#define DBA_ENABLE 0x1
|
||||
#define DBB_ENABLE 0x2
|
||||
#define DB_FULL_ENABLE 0x3
|
||||
// POLSEL bits
|
||||
#define DB_ACTV_HI 0x0
|
||||
#define DB_ACTV_LOC 0x1
|
||||
#define DB_ACTV_HIC 0x2
|
||||
#define DB_ACTV_LO 0x3
|
||||
// IN MODE
|
||||
#define DBA_ALL 0x0
|
||||
#define DBB_RED_DBA_FED 0x1
|
||||
#define DBA_RED_DBB_FED 0x2
|
||||
#define DBB_ALL 0x3
|
||||
|
||||
// CHPCTL (chopper control)
|
||||
//==========================
|
||||
// CHPEN bit
|
||||
#define CHP_DISABLE 0x0
|
||||
#define CHP_ENABLE 0x1
|
||||
// CHPFREQ bits
|
||||
#define CHP_DIV1 0x0
|
||||
#define CHP_DIV2 0x1
|
||||
#define CHP_DIV3 0x2
|
||||
#define CHP_DIV4 0x3
|
||||
#define CHP_DIV5 0x4
|
||||
#define CHP_DIV6 0x5
|
||||
#define CHP_DIV7 0x6
|
||||
#define CHP_DIV8 0x7
|
||||
// CHPDUTY bits
|
||||
#define CHP1_8TH 0x0
|
||||
#define CHP2_8TH 0x1
|
||||
#define CHP3_8TH 0x2
|
||||
#define CHP4_8TH 0x3
|
||||
#define CHP5_8TH 0x4
|
||||
#define CHP6_8TH 0x5
|
||||
#define CHP7_8TH 0x6
|
||||
|
||||
// TZSEL (Trip Zone Select)
|
||||
//==========================
|
||||
// CBCn and OSHTn bits
|
||||
#define TZ_DISABLE 0x0
|
||||
#define TZ_ENABLE 0x1
|
||||
|
||||
// TZCTL (Trip Zone Control)
|
||||
//==========================
|
||||
// TZA and TZB bits
|
||||
#define TZ_HIZ 0x0
|
||||
#define TZ_FORCE_HI 0x1
|
||||
#define TZ_FORCE_LO 0x2
|
||||
#define TZ_NO_CHANGE 0x3
|
||||
|
||||
// ETSEL (Event Trigger Select)
|
||||
//=============================
|
||||
#define ET_CTR_ZERO 0x1
|
||||
#define ET_CTR_PRD 0x2
|
||||
#define ET_CTRU_CMPA 0x4
|
||||
#define ET_CTRD_CMPA 0x5
|
||||
#define ET_CTRU_CMPB 0x6
|
||||
#define ET_CTRD_CMPB 0x7
|
||||
|
||||
// ETPS (Event Trigger Pre-scale)
|
||||
//===============================
|
||||
// INTPRD, SOCAPRD, SOCBPRD bits
|
||||
#define ET_DISABLE 0x0
|
||||
#define ET_1ST 0x1
|
||||
#define ET_2ND 0x2
|
||||
#define ET_3RD 0x3
|
||||
|
||||
|
||||
//--------------------------------
|
||||
// HRPWM (High Resolution PWM)
|
||||
//================================
|
||||
// HRCNFG
|
||||
#define HR_Disable 0x0
|
||||
#define HR_REP 0x1
|
||||
#define HR_FEP 0x2
|
||||
#define HR_BEP 0x3
|
||||
|
||||
#define HR_CMP 0x0
|
||||
#define HR_PHS 0x1
|
||||
|
||||
#define HR_CTR_ZERO 0x0
|
||||
#define HR_CTR_PRD 0x1
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* extern "C" */
|
||||
|
||||
#endif // - end of DSP2833x_EPWM_DEFINES_H
|
||||
|
||||
//===========================================================================
|
||||
// End of file.
|
||||
//===========================================================================
|
143
Source/External/v120/DSP2833x_common/include/DSP2833x_Examples.h
vendored
Normal file
143
Source/External/v120/DSP2833x_common/include/DSP2833x_Examples.h
vendored
Normal file
@ -0,0 +1,143 @@
|
||||
// TI File $Revision: /main/9 $
|
||||
// Checkin $Date: July 2, 2008 14:31:12 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: DSP2833x_Examples.h
|
||||
//
|
||||
// TITLE: DSP2833x Device Definitions.
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
|
||||
#ifndef DSP2833x_EXAMPLES_H
|
||||
#define DSP2833x_EXAMPLES_H
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/*-----------------------------------------------------------------------------
|
||||
Specify the PLL control register (PLLCR) and divide select (DIVSEL) value.
|
||||
-----------------------------------------------------------------------------*/
|
||||
//#define DSP28_DIVSEL 0 // Enable /4 for SYSCLKOUT
|
||||
//#define DSP28_DIVSEL 1 // Enable /4 for SYSCKOUT
|
||||
#define DSP28_DIVSEL 2 // Enable /2 for SYSCLKOUT
|
||||
//#define DSP28_DIVSEL 3 // Enable /1 for SYSCLKOUT
|
||||
|
||||
#define DSP28_PLLCR CLKMULT*2
|
||||
|
||||
//#define DSP28_PLLCR 10
|
||||
//#define DSP28_PLLCR 9
|
||||
//#define DSP28_PLLCR 8
|
||||
//#define DSP28_PLLCR 7
|
||||
//#define DSP28_PLLCR 6
|
||||
//#define DSP28_PLLCR 5
|
||||
//#define DSP28_PLLCR 4
|
||||
//#define DSP28_PLLCR 3
|
||||
//#define DSP28_PLLCR 2
|
||||
//#define DSP28_PLLCR 1
|
||||
//#define DSP28_PLLCR 0 // PLL is bypassed in this mode
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
|
||||
/*-----------------------------------------------------------------------------
|
||||
Specify the clock rate of the CPU (SYSCLKOUT) in nS.
|
||||
|
||||
Take into account the input clock frequency and the PLL multiplier
|
||||
selected in step 1.
|
||||
|
||||
Use one of the values provided, or define your own.
|
||||
The trailing L is required tells the compiler to treat
|
||||
the number as a 64-bit value.
|
||||
|
||||
Only one statement should be uncommented.
|
||||
|
||||
Example 1:150 MHz devices:
|
||||
CLKIN is a 30MHz crystal.
|
||||
|
||||
In step 1 the user specified PLLCR = 0xA for a
|
||||
150Mhz CPU clock (SYSCLKOUT = 150MHz).
|
||||
|
||||
In this case, the CPU_RATE will be 6.667L
|
||||
Uncomment the line: #define CPU_RATE 6.667L
|
||||
|
||||
Example 2: 100 MHz devices:
|
||||
CLKIN is a 20MHz crystal.
|
||||
|
||||
In step 1 the user specified PLLCR = 0xA for a
|
||||
100Mhz CPU clock (SYSCLKOUT = 100MHz).
|
||||
|
||||
In this case, the CPU_RATE will be 10.000L
|
||||
Uncomment the line: #define CPU_RATE 10.000L
|
||||
-----------------------------------------------------------------------------*/
|
||||
#define CPU_RATE 6.667L // for a 150MHz CPU clock speed (SYSCLKOUT)
|
||||
//#define CPU_RATE 7.143L // for a 140MHz CPU clock speed (SYSCLKOUT)
|
||||
//#define CPU_RATE 8.333L // for a 120MHz CPU clock speed (SYSCLKOUT)
|
||||
//#define CPU_RATE 10.000L // for a 100MHz CPU clock speed (SYSCLKOUT)
|
||||
//#define CPU_RATE 13.330L // for a 75MHz CPU clock speed (SYSCLKOUT)
|
||||
//#define CPU_RATE 20.000L // for a 50MHz CPU clock speed (SYSCLKOUT)
|
||||
//#define CPU_RATE 33.333L // for a 30MHz CPU clock speed (SYSCLKOUT)
|
||||
//#define CPU_RATE 41.667L // for a 24MHz CPU clock speed (SYSCLKOUT)
|
||||
//#define CPU_RATE 50.000L // for a 20MHz CPU clock speed (SYSCLKOUT)
|
||||
//#define CPU_RATE 66.667L // for a 15MHz CPU clock speed (SYSCLKOUT)
|
||||
//#define CPU_RATE 100.000L // for a 10MHz CPU clock speed (SYSCLKOUT)
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
/*-----------------------------------------------------------------------------
|
||||
Target device (in DSP2833x_Device.h) determines CPU frequency
|
||||
(for examples) - either 150 MHz (for 28335 and 28334) or 100 MHz
|
||||
(for 28332). User does not have to change anything here.
|
||||
-----------------------------------------------------------------------------*/
|
||||
#if DSP28_28332 // DSP28_28332 device only
|
||||
#define CPU_FRQ_100MHZ 1 // 100 Mhz CPU Freq (20 MHz input freq)
|
||||
#define CPU_FRQ_150MHZ 0
|
||||
#else
|
||||
#define CPU_FRQ_100MHZ 0 // DSP28_28335||DSP28_28334
|
||||
#define CPU_FRQ_150MHZ 1 // 150 MHz CPU Freq (30 MHz input freq) by DEFAULT
|
||||
#endif
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Include Example Header Files:
|
||||
//
|
||||
|
||||
#include "DSP2833x_GlobalPrototypes.h" // Prototypes for global functions within the
|
||||
// .c files.
|
||||
|
||||
#include "DSP2833x_ePwm_defines.h" // Macros used for PWM examples.
|
||||
#include "DSP2833x_Dma_defines.h" // Macros used for DMA examples.
|
||||
#include "DSP2833x_I2C_defines.h" // Macros used for I2C examples.
|
||||
|
||||
#define PARTNO_28335 0xEF
|
||||
#define PARTNO_28334 0xEE
|
||||
#define PARTNO_28332 0xED
|
||||
#define PARTNO_28235 0xE8
|
||||
#define PARTNO_28234 0xE7
|
||||
#define PARTNO_28232 0xE6
|
||||
|
||||
|
||||
// Include files not used with DSP/BIOS
|
||||
#ifndef DSP28_BIOS
|
||||
#include "DSP2833x_DefaultISR.h"
|
||||
#endif
|
||||
|
||||
|
||||
// DO NOT MODIFY THIS LINE.
|
||||
#define DELAY_US(A) DSP28x_usDelay(((((long double) A * 1000.0L) / (long double)CPU_RATE) - 9.0L) / 5.0L)
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* extern "C" */
|
||||
|
||||
#endif // end of DSP2833x_EXAMPLES_H definition
|
||||
|
||||
|
||||
//===========================================================================
|
||||
// End of file.
|
||||
//===========================================================================
|
207
Source/External/v120/DSP2833x_common/include/DSP2833x_GlobalPrototypes.h
vendored
Normal file
207
Source/External/v120/DSP2833x_common/include/DSP2833x_GlobalPrototypes.h
vendored
Normal file
@ -0,0 +1,207 @@
|
||||
// TI File $Revision: /main/11 $
|
||||
// Checkin $Date: May 12, 2008 14:30:08 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: DSP2833x_GlobalPrototypes.h
|
||||
//
|
||||
// TITLE: Global prototypes for DSP2833x Examples
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
|
||||
#ifndef DSP2833x_GLOBALPROTOTYPES_H
|
||||
#define DSP2833x_GLOBALPROTOTYPES_H
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*---- shared global function prototypes -----------------------------------*/
|
||||
extern void InitAdc(void);
|
||||
|
||||
extern void DMAInitialize(void);
|
||||
// DMA Channel 1
|
||||
extern void DMACH1AddrConfig(volatile Uint16 *DMA_Dest,volatile Uint16 *DMA_Source);
|
||||
extern void DMACH1BurstConfig(Uint16 bsize, int16 srcbstep, int16 desbstep);
|
||||
extern void DMACH1TransferConfig(Uint16 tsize, int16 srctstep, int16 deststep);
|
||||
extern void DMACH1WrapConfig(Uint16 srcwsize, int16 srcwstep, Uint16 deswsize, int16 deswstep);
|
||||
extern void DMACH1ModeConfig(Uint16 persel, Uint16 perinte, Uint16 oneshot, Uint16 cont, Uint16 synce, Uint16 syncsel, Uint16 ovrinte, Uint16 datasize, Uint16 chintmode, Uint16 chinte);
|
||||
extern void StartDMACH1(void);
|
||||
// DMA Channel 2
|
||||
extern void DMACH2AddrConfig(volatile Uint16 *DMA_Dest,volatile Uint16 *DMA_Source);
|
||||
extern void DMACH2BurstConfig(Uint16 bsize, int16 srcbstep, int16 desbstep);
|
||||
extern void DMACH2TransferConfig(Uint16 tsize, int16 srctstep, int16 deststep);
|
||||
extern void DMACH2WrapConfig(Uint16 srcwsize, int16 srcwstep, Uint16 deswsize, int16 deswstep);
|
||||
extern void DMACH2ModeConfig(Uint16 persel, Uint16 perinte, Uint16 oneshot, Uint16 cont, Uint16 synce, Uint16 syncsel, Uint16 ovrinte, Uint16 datasize, Uint16 chintmode, Uint16 chinte);
|
||||
extern void StartDMACH2(void);
|
||||
// DMA Channel 3
|
||||
extern void DMACH3AddrConfig(volatile Uint16 *DMA_Dest,volatile Uint16 *DMA_Source);
|
||||
extern void DMACH3BurstConfig(Uint16 bsize, int16 srcbstep, int16 desbstep);
|
||||
extern void DMACH3TransferConfig(Uint16 tsize, int16 srctstep, int16 deststep);
|
||||
extern void DMACH3WrapConfig(Uint16 srcwsize, int16 srcwstep, Uint16 deswsize, int16 deswstep);
|
||||
extern void DMACH3ModeConfig(Uint16 persel, Uint16 perinte, Uint16 oneshot, Uint16 cont, Uint16 synce, Uint16 syncsel, Uint16 ovrinte, Uint16 datasize, Uint16 chintmode, Uint16 chinte);
|
||||
extern void StartDMACH3(void);
|
||||
// DMA Channel 4
|
||||
extern void DMACH4AddrConfig(volatile Uint16 *DMA_Dest,volatile Uint16 *DMA_Source);
|
||||
extern void DMACH4BurstConfig(Uint16 bsize, int16 srcbstep, int16 desbstep);
|
||||
extern void DMACH4TransferConfig(Uint16 tsize, int16 srctstep, int16 deststep);
|
||||
extern void DMACH4WrapConfig(Uint16 srcwsize, int16 srcwstep, Uint16 deswsize, int16 deswstep);
|
||||
extern void DMACH4ModeConfig(Uint16 persel, Uint16 perinte, Uint16 oneshot, Uint16 cont, Uint16 synce, Uint16 syncsel, Uint16 ovrinte, Uint16 datasize, Uint16 chintmode, Uint16 chinte);
|
||||
extern void StartDMACH4(void);
|
||||
// DMA Channel 5
|
||||
extern void DMACH5AddrConfig(volatile Uint16 *DMA_Dest,volatile Uint16 *DMA_Source);
|
||||
extern void DMACH5BurstConfig(Uint16 bsize, int16 srcbstep, int16 desbstep);
|
||||
extern void DMACH5TransferConfig(Uint16 tsize, int16 srctstep, int16 deststep);
|
||||
extern void DMACH5WrapConfig(Uint16 srcwsize, int16 srcwstep, Uint16 deswsize, int16 deswstep);
|
||||
extern void DMACH5ModeConfig(Uint16 persel, Uint16 perinte, Uint16 oneshot, Uint16 cont, Uint16 synce, Uint16 syncsel, Uint16 ovrinte, Uint16 datasize, Uint16 chintmode, Uint16 chinte);
|
||||
extern void StartDMACH5(void);
|
||||
// DMA Channel 6
|
||||
extern void DMACH6AddrConfig(volatile Uint16 *DMA_Dest,volatile Uint16 *DMA_Source);
|
||||
extern void DMACH6BurstConfig(Uint16 bsize,Uint16 srcbstep, int16 desbstep);
|
||||
extern void DMACH6TransferConfig(Uint16 tsize, int16 srctstep, int16 deststep);
|
||||
extern void DMACH6WrapConfig(Uint16 srcwsize, int16 srcwstep, Uint16 deswsize, int16 deswstep);
|
||||
extern void DMACH6ModeConfig(Uint16 persel, Uint16 perinte, Uint16 oneshot, Uint16 cont, Uint16 synce, Uint16 syncsel, Uint16 ovrinte, Uint16 datasize, Uint16 chintmode, Uint16 chinte);
|
||||
extern void StartDMACH6(void);
|
||||
|
||||
extern void InitPeripherals(void);
|
||||
#if DSP28_ECANA
|
||||
extern void InitECan(void);
|
||||
extern void InitECana(void);
|
||||
extern void InitECanGpio(void);
|
||||
extern void InitECanaGpio(void);
|
||||
#endif // endif DSP28_ECANA
|
||||
#if DSP28_ECANB
|
||||
extern void InitECanb(void);
|
||||
extern void InitECanbGpio(void);
|
||||
#endif // endif DSP28_ECANB
|
||||
extern void InitECap(void);
|
||||
extern void InitECapGpio(void);
|
||||
extern void InitECap1Gpio(void);
|
||||
extern void InitECap2Gpio(void);
|
||||
#if DSP28_ECAP3
|
||||
extern void InitECap3Gpio(void);
|
||||
#endif // endif DSP28_ECAP3
|
||||
#if DSP28_ECAP4
|
||||
extern void InitECap4Gpio(void);
|
||||
#endif // endif DSP28_ECAP4
|
||||
#if DSP28_ECAP5
|
||||
extern void InitECap5Gpio(void);
|
||||
#endif // endif DSP28_ECAP5
|
||||
#if DSP28_ECAP6
|
||||
extern void InitECap6Gpio(void);
|
||||
#endif // endif DSP28_ECAP6
|
||||
extern void InitEPwm(void);
|
||||
extern void InitEPwmGpio(void);
|
||||
extern void InitEPwm1Gpio(void);
|
||||
extern void InitEPwm2Gpio(void);
|
||||
extern void InitEPwm3Gpio(void);
|
||||
#if DSP28_EPWM4
|
||||
extern void InitEPwm4Gpio(void);
|
||||
#endif // endif DSP28_EPWM4
|
||||
#if DSP28_EPWM5
|
||||
extern void InitEPwm5Gpio(void);
|
||||
#endif // endif DSP28_EPWM5
|
||||
#if DSP28_EPWM6
|
||||
extern void InitEPwm6Gpio(void);
|
||||
#endif // endif DSP28_EPWM6
|
||||
#if DSP28_EQEP1
|
||||
extern void InitEQep(void);
|
||||
extern void InitEQepGpio(void);
|
||||
extern void InitEQep1Gpio(void);
|
||||
#endif // if DSP28_EQEP1
|
||||
#if DSP28_EQEP2
|
||||
extern void InitEQep2Gpio(void);
|
||||
#endif // endif DSP28_EQEP2
|
||||
extern void InitGpio(void);
|
||||
extern void InitI2CGpio(void);
|
||||
|
||||
extern void InitMcbsp(void);
|
||||
extern void InitMcbspa(void);
|
||||
extern void delay_loop(void);
|
||||
extern void InitMcbspaGpio(void);
|
||||
extern void InitMcbspa8bit(void);
|
||||
extern void InitMcbspa12bit(void);
|
||||
extern void InitMcbspa16bit(void);
|
||||
extern void InitMcbspa20bit(void);
|
||||
extern void InitMcbspa24bit(void);
|
||||
extern void InitMcbspa32bit(void);
|
||||
#if DSP28_MCBSPB
|
||||
extern void InitMcbspb(void);
|
||||
extern void InitMcbspbGpio(void);
|
||||
extern void InitMcbspb8bit(void);
|
||||
extern void InitMcbspb12bit(void);
|
||||
extern void InitMcbspb16bit(void);
|
||||
extern void InitMcbspb20bit(void);
|
||||
extern void InitMcbspb24bit(void);
|
||||
extern void InitMcbspb32bit(void);
|
||||
#endif // endif DSP28_MCBSPB
|
||||
|
||||
extern void InitPieCtrl(void);
|
||||
extern void InitPieVectTable(void);
|
||||
|
||||
extern void InitSci(void);
|
||||
extern void InitSciGpio(void);
|
||||
extern void InitSciaGpio(void);
|
||||
#if DSP28_SCIB
|
||||
extern void InitScibGpio(void);
|
||||
#endif // endif DSP28_SCIB
|
||||
#if DSP28_SCIC
|
||||
extern void InitScicGpio(void);
|
||||
#endif
|
||||
extern void InitSpi(void);
|
||||
extern void InitSpiGpio(void);
|
||||
extern void InitSpiaGpio(void);
|
||||
extern void InitSysCtrl(void);
|
||||
extern void InitTzGpio(void);
|
||||
extern void InitXIntrupt(void);
|
||||
extern void XintfInit(void);
|
||||
extern void InitXintf16Gpio();
|
||||
extern void InitXintf32Gpio();
|
||||
extern void InitPll(Uint16 pllcr, Uint16 clkindiv);
|
||||
extern void InitPeripheralClocks(void);
|
||||
extern void EnableInterrupts(void);
|
||||
extern void DSP28x_usDelay(Uint32 Count);
|
||||
extern void ADC_cal (void);
|
||||
#define KickDog ServiceDog // For compatiblity with previous versions
|
||||
extern void ServiceDog(void);
|
||||
extern void DisableDog(void);
|
||||
extern Uint16 CsmUnlock(void);
|
||||
|
||||
// DSP28_DBGIER.asm
|
||||
extern void SetDBGIER(Uint16 dbgier);
|
||||
|
||||
// CAUTION
|
||||
// This function MUST be executed out of RAM. Executing it
|
||||
// out of OTP/Flash will yield unpredictable results
|
||||
extern void InitFlash(void);
|
||||
|
||||
|
||||
void MemCopy(Uint16 *SourceAddr, Uint16* SourceEndAddr, Uint16* DestAddr);
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// External symbols created by the linker cmd file
|
||||
// DSP28 examples will use these to relocate code from one LOAD location
|
||||
// in either Flash or XINTF to a different RUN location in internal
|
||||
// RAM
|
||||
extern Uint16 RamfuncsLoadStart;
|
||||
extern Uint16 RamfuncsLoadEnd;
|
||||
extern Uint16 RamfuncsRunStart;
|
||||
|
||||
extern Uint16 XintffuncsLoadStart;
|
||||
extern Uint16 XintffuncsLoadEnd;
|
||||
extern Uint16 XintffuncsRunStart;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* extern "C" */
|
||||
|
||||
#endif // - end of DSP2833x_GLOBALPROTOTYPES_H
|
||||
|
||||
//===========================================================================
|
||||
// End of file.
|
||||
//===========================================================================
|
117
Source/External/v120/DSP2833x_common/include/DSP2833x_I2c_defines.h
vendored
Normal file
117
Source/External/v120/DSP2833x_common/include/DSP2833x_I2c_defines.h
vendored
Normal file
@ -0,0 +1,117 @@
|
||||
// TI File $Revision: /main/2 $
|
||||
// Checkin $Date: April 16, 2008 17:16:47 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: DSP2833x_I2cExample.h
|
||||
//
|
||||
// TITLE: 2833x I2C Example Code Definitions.
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
|
||||
#ifndef DSP2833x_I2C_DEFINES_H
|
||||
#define DSP2833x_I2C_DEFINES_H
|
||||
|
||||
//--------------------------------------------
|
||||
// Defines
|
||||
//--------------------------------------------
|
||||
|
||||
// Error Messages
|
||||
#define I2C_ERROR 0xFFFF
|
||||
#define I2C_ARB_LOST_ERROR 0x0001
|
||||
#define I2C_NACK_ERROR 0x0002
|
||||
#define I2C_BUS_BUSY_ERROR 0x1000
|
||||
#define I2C_STP_NOT_READY_ERROR 0x5555
|
||||
#define I2C_NO_FLAGS 0xAAAA
|
||||
#define I2C_SUCCESS 0x0000
|
||||
|
||||
// Clear Status Flags
|
||||
#define I2C_CLR_AL_BIT 0x0001
|
||||
#define I2C_CLR_NACK_BIT 0x0002
|
||||
#define I2C_CLR_ARDY_BIT 0x0004
|
||||
#define I2C_CLR_RRDY_BIT 0x0008
|
||||
#define I2C_CLR_SCD_BIT 0x0020
|
||||
|
||||
// Interrupt Source Messages
|
||||
#define I2C_NO_ISRC 0x0000
|
||||
#define I2C_ARB_ISRC 0x0001
|
||||
#define I2C_NACK_ISRC 0x0002
|
||||
#define I2C_ARDY_ISRC 0x0003
|
||||
#define I2C_RX_ISRC 0x0004
|
||||
#define I2C_TX_ISRC 0x0005
|
||||
#define I2C_SCD_ISRC 0x0006
|
||||
#define I2C_AAS_ISRC 0x0007
|
||||
|
||||
// I2CMSG structure defines
|
||||
#define I2C_NO_STOP 0
|
||||
#define I2C_YES_STOP 1
|
||||
#define I2C_RECEIVE 0
|
||||
#define I2C_TRANSMIT 1
|
||||
#define I2C_MAX_BUFFER_SIZE 16
|
||||
|
||||
// I2C Slave State defines
|
||||
#define I2C_NOTSLAVE 0
|
||||
#define I2C_ADDR_AS_SLAVE 1
|
||||
#define I2C_ST_MSG_READY 2
|
||||
|
||||
// I2C Slave Receiver messages defines
|
||||
#define I2C_SND_MSG1 1
|
||||
#define I2C_SND_MSG2 2
|
||||
|
||||
// I2C State defines
|
||||
#define I2C_IDLE 0
|
||||
#define I2C_SLAVE_RECEIVER 1
|
||||
#define I2C_SLAVE_TRANSMITTER 2
|
||||
#define I2C_MASTER_RECEIVER 3
|
||||
#define I2C_MASTER_TRANSMITTER 4
|
||||
|
||||
// I2C Message Commands for I2CMSG struct
|
||||
#define I2C_MSGSTAT_INACTIVE 0x0000
|
||||
#define I2C_MSGSTAT_SEND_WITHSTOP 0x0010
|
||||
#define I2C_MSGSTAT_WRITE_BUSY 0x0011
|
||||
#define I2C_MSGSTAT_SEND_NOSTOP 0x0020
|
||||
#define I2C_MSGSTAT_SEND_NOSTOP_BUSY 0x0021
|
||||
#define I2C_MSGSTAT_RESTART 0x0022
|
||||
#define I2C_MSGSTAT_READ_BUSY 0x0023
|
||||
|
||||
// Generic defines
|
||||
#define I2C_TRUE 1
|
||||
#define I2C_FALSE 0
|
||||
#define I2C_YES 1
|
||||
#define I2C_NO 0
|
||||
#define I2C_DUMMY_BYTE 0
|
||||
|
||||
|
||||
//--------------------------------------------
|
||||
// Structures
|
||||
//--------------------------------------------
|
||||
|
||||
// I2C Message Structure
|
||||
struct I2CMSG {
|
||||
Uint16 MsgStatus; // Word stating what state msg is in:
|
||||
// I2C_MSGCMD_INACTIVE = do not send msg
|
||||
// I2C_MSGCMD_BUSY = msg start has been sent,
|
||||
// awaiting stop
|
||||
// I2C_MSGCMD_SEND_WITHSTOP = command to send
|
||||
// master trans msg complete with a stop bit
|
||||
// I2C_MSGCMD_SEND_NOSTOP = command to send
|
||||
// master trans msg without the stop bit
|
||||
// I2C_MSGCMD_RESTART = command to send a restart
|
||||
// as a master receiver with a stop bit
|
||||
Uint16 SlaveAddress; // I2C address of slave msg is intended for
|
||||
Uint16 NumOfBytes; // Num of valid bytes in (or to be put in MsgBuffer)
|
||||
Uint16 MemoryHighAddr; // EEPROM address of data associated with msg (high byte)
|
||||
Uint16 MemoryLowAddr; // EEPROM address of data associated with msg (low byte)
|
||||
Uint16 MsgBuffer[I2C_MAX_BUFFER_SIZE]; // Array holding msg data - max that
|
||||
// MAX_BUFFER_SIZE can be is 16 due to
|
||||
// the FIFO's
|
||||
};
|
||||
|
||||
|
||||
#endif // end of DSP2833x_I2C_DEFINES_H definition
|
||||
|
||||
//===========================================================================
|
||||
// End of file.
|
||||
//===========================================================================
|
5850
Source/External/v120/DSP2833x_common/include/DSP2833x_SWPrioritizedIsrLevels.h
vendored
Normal file
5850
Source/External/v120/DSP2833x_common/include/DSP2833x_SWPrioritizedIsrLevels.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
22
Source/External/v120/DSP2833x_common/include/DSP28x_Project.h
vendored
Normal file
22
Source/External/v120/DSP2833x_common/include/DSP28x_Project.h
vendored
Normal file
@ -0,0 +1,22 @@
|
||||
|
||||
// TI File $Revision: /main/1 $
|
||||
// Checkin $Date: April 22, 2008 14:35:56 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: DSP28x_Project.h
|
||||
//
|
||||
// TITLE: DSP28x Project Headerfile and Examples Include File
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
|
||||
#ifndef DSP28x_PROJECT_H
|
||||
#define DSP28x_PROJECT_H
|
||||
|
||||
#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File
|
||||
#include "DSP2833x_Examples.h" // DSP2833x Examples Include File
|
||||
|
||||
#endif // end of DSP28x_PROJECT_H definition
|
||||
|
4493
Source/External/v120/DSP2833x_common/include/IQmathLib.h
vendored
Normal file
4493
Source/External/v120/DSP2833x_common/include/IQmathLib.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
52
Source/External/v120/DSP2833x_common/include/SFO.h
vendored
Normal file
52
Source/External/v120/DSP2833x_common/include/SFO.h
vendored
Normal file
@ -0,0 +1,52 @@
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: SFO.H
|
||||
//
|
||||
// TITLE: Scale Factor Optimizer Library Interface Header
|
||||
//
|
||||
//
|
||||
//###########################################################################
|
||||
//
|
||||
// Ver | dd mmm yyyy | Who | Description of changes
|
||||
// =====|=============|======|===============================================
|
||||
// 0.01| 09 Jan 2004 | TI | New module
|
||||
//###########################################################################
|
||||
|
||||
|
||||
//============================================================================
|
||||
// Description: This header provides the function call interface
|
||||
// for the scale factor optimizer for the 'F2833x.
|
||||
//============================================================================
|
||||
|
||||
|
||||
//============================================================================
|
||||
// Multiple include Guard
|
||||
//============================================================================
|
||||
#ifndef __4090522384024n8273240x3438jx43087401r34ru32r0___
|
||||
#define __4090522384024n8273240x3438jx43087401r34ru32r0___
|
||||
|
||||
//============================================================================
|
||||
// C++ namespace
|
||||
//============================================================================
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
//============================================================================
|
||||
// Function prototypes for MEP SFO
|
||||
//============================================================================
|
||||
void SFO_MepEn(int nEpwmModule);
|
||||
void SFO_MepDis(int nEpwmModule);
|
||||
|
||||
//============================================================================
|
||||
// Multiple include Guard
|
||||
//============================================================================
|
||||
#endif // End: Multiple include Guard
|
||||
|
||||
//============================================================================
|
||||
// C++ namespace
|
||||
//============================================================================
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* extern "C" */
|
70
Source/External/v120/DSP2833x_common/include/SFO_V5.h
vendored
Normal file
70
Source/External/v120/DSP2833x_common/include/SFO_V5.h
vendored
Normal file
@ -0,0 +1,70 @@
|
||||
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: SFO_V5.H
|
||||
//
|
||||
// TITLE: Scale Factor Optimizer Library V5 Interface Header
|
||||
//
|
||||
//
|
||||
//###########################################################################
|
||||
//
|
||||
// Ver | dd mmm yyyy | Who | Description of changes
|
||||
// =====|=============|======|===============================================
|
||||
// 0.01| 09 Jan 2004 | TI | New module
|
||||
// 0.02| 22 Jun 2007 | TI | New version (V5) with support for more channels
|
||||
//###########################################################################
|
||||
|
||||
|
||||
//============================================================================
|
||||
// Description: This header provides the function call interface
|
||||
// for the scale factor optimizer V5. For more
|
||||
// information on the SFO function usage and
|
||||
// limitations, see the HRPWM Reference Guide
|
||||
// (spru924) on the TI website.
|
||||
//============================================================================
|
||||
|
||||
|
||||
//============================================================================
|
||||
// Multiple include Guard
|
||||
//============================================================================
|
||||
#ifndef _SFO_V5_H
|
||||
#define _SFO_V5_H
|
||||
|
||||
//============================================================================
|
||||
// C++ namespace
|
||||
//============================================================================
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
//============================================================================
|
||||
// USER MUST UPDATE THIS CONSTANT FOR NUMBER OF HRPWM CHANNELS USED + 1
|
||||
//============================================================================
|
||||
#define PWM_CH 7 // Equal # of HRPWM channels PLUS 1
|
||||
// i.e. PWM_CH is 7 for 6 channels, 5 for 4 channels etc.
|
||||
|
||||
//============================================================================
|
||||
// Function prototypes for MEP SFO
|
||||
//============================================================================
|
||||
|
||||
int SFO_MepEn_V5(int nEpwmModule); // MEP-Enable V5 Calibration Function
|
||||
int SFO_MepDis_V5(int nEpwmModule); // MEP-Disable V5 Calibration Function
|
||||
|
||||
//============================================================================
|
||||
// Useful Defines when Using SFO Functions
|
||||
//============================================================================
|
||||
#define SFO_INCOMPLETE 0
|
||||
#define SFO_COMPLETE 1
|
||||
#define SFO_OUTRANGE_ERROR 2
|
||||
|
||||
//============================================================================
|
||||
// Multiple include Guard
|
||||
//============================================================================
|
||||
#endif // End: Multiple include Guard
|
||||
|
||||
//============================================================================
|
||||
// C++ namespace
|
||||
//============================================================================
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* extern "C" */
|
BIN
Source/External/v120/DSP2833x_common/lib/IQmath.lib
vendored
Normal file
BIN
Source/External/v120/DSP2833x_common/lib/IQmath.lib
vendored
Normal file
Binary file not shown.
BIN
Source/External/v120/DSP2833x_common/lib/IQmath_fpu32.lib
vendored
Normal file
BIN
Source/External/v120/DSP2833x_common/lib/IQmath_fpu32.lib
vendored
Normal file
Binary file not shown.
BIN
Source/External/v120/DSP2833x_common/lib/SFO_TI_Build.lib
vendored
Normal file
BIN
Source/External/v120/DSP2833x_common/lib/SFO_TI_Build.lib
vendored
Normal file
Binary file not shown.
BIN
Source/External/v120/DSP2833x_common/lib/SFO_TI_Build_V5.lib
vendored
Normal file
BIN
Source/External/v120/DSP2833x_common/lib/SFO_TI_Build_V5.lib
vendored
Normal file
Binary file not shown.
BIN
Source/External/v120/DSP2833x_common/lib/SFO_TI_Build_V5B.lib
vendored
Normal file
BIN
Source/External/v120/DSP2833x_common/lib/SFO_TI_Build_V5B.lib
vendored
Normal file
Binary file not shown.
BIN
Source/External/v120/DSP2833x_common/lib/SFO_TI_Build_V5B_fpu.lib
vendored
Normal file
BIN
Source/External/v120/DSP2833x_common/lib/SFO_TI_Build_V5B_fpu.lib
vendored
Normal file
Binary file not shown.
BIN
Source/External/v120/DSP2833x_common/lib/SFO_TI_Build_V5_fpu.lib
vendored
Normal file
BIN
Source/External/v120/DSP2833x_common/lib/SFO_TI_Build_V5_fpu.lib
vendored
Normal file
Binary file not shown.
BIN
Source/External/v120/DSP2833x_common/lib/SFO_TI_Build_fpu.lib
vendored
Normal file
BIN
Source/External/v120/DSP2833x_common/lib/SFO_TI_Build_fpu.lib
vendored
Normal file
Binary file not shown.
42
Source/External/v120/DSP2833x_common/source/DSP2833x_ADC_cal.asm
vendored
Normal file
42
Source/External/v120/DSP2833x_common/source/DSP2833x_ADC_cal.asm
vendored
Normal file
@ -0,0 +1,42 @@
|
||||
;; TI File $Revision: /main/1 $
|
||||
;; Checkin $Date: July 30, 2007 10:29:23 $
|
||||
;;###########################################################################
|
||||
;;
|
||||
;; FILE: ADC_cal.asm
|
||||
;;
|
||||
;; TITLE: 2833x Boot Rom ADC Cal routine.
|
||||
;;
|
||||
;; Functions:
|
||||
;;
|
||||
;; _ADC_cal - Copies device specific calibration data into ADCREFSEL and ADCOFFTRIM registers
|
||||
;; Notes:
|
||||
;;
|
||||
;;###########################################################################
|
||||
;; $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
;; $Release Date: August 1, 2008 $
|
||||
;;###########################################################################
|
||||
|
||||
.def _ADC_cal
|
||||
.asg "0x711C", ADCREFSEL_LOC
|
||||
|
||||
;-----------------------------------------------
|
||||
; _ADC_cal
|
||||
;-----------------------------------------------
|
||||
;-----------------------------------------------
|
||||
; This is the ADC cal routine.This routine is programmed into
|
||||
; reserved memory by the factory. 0xAAAA and 0xBBBB are place-
|
||||
; holders for calibration data.
|
||||
;The actual values programmed by TI are device specific.
|
||||
;
|
||||
; This function assumes that the clocks have been
|
||||
; enabled to the ADC module.
|
||||
;-----------------------------------------------
|
||||
|
||||
.sect ".adc_cal"
|
||||
|
||||
_ADC_cal
|
||||
MOVW DP, #ADCREFSEL_LOC >> 6
|
||||
MOV @28, #0xAAAA ; actual value may not be 0xAAAA
|
||||
MOV @29, #0xBBBB ; actual value may not be 0xBBBB
|
||||
LRETR
|
||||
;eof ----------
|
64
Source/External/v120/DSP2833x_common/source/DSP2833x_Adc.c
vendored
Normal file
64
Source/External/v120/DSP2833x_common/source/DSP2833x_Adc.c
vendored
Normal file
@ -0,0 +1,64 @@
|
||||
// TI File $Revision: /main/5 $
|
||||
// Checkin $Date: October 23, 2007 13:34:09 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: DSP2833x_Adc.c
|
||||
//
|
||||
// TITLE: DSP2833x ADC Initialization & Support Functions.
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
|
||||
#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File
|
||||
#include "DSP2833x_Examples.h" // DSP2833x Examples Include File
|
||||
|
||||
#define ADC_usDELAY 5000L
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// InitAdc:
|
||||
//---------------------------------------------------------------------------
|
||||
// This function initializes ADC to a known state.
|
||||
//
|
||||
void InitAdc(void)
|
||||
{
|
||||
extern void DSP28x_usDelay(Uint32 Count);
|
||||
|
||||
|
||||
// *IMPORTANT*
|
||||
// The ADC_cal function, which copies the ADC calibration values from TI reserved
|
||||
// OTP into the ADCREFSEL and ADCOFFTRIM registers, occurs automatically in the
|
||||
// Boot ROM. If the boot ROM code is bypassed during the debug process, the
|
||||
// following function MUST be called for the ADC to function according
|
||||
// to specification. The clocks to the ADC MUST be enabled before calling this
|
||||
// function.
|
||||
// See the device data manual and/or the ADC Reference
|
||||
// Manual for more information.
|
||||
|
||||
EALLOW;
|
||||
SysCtrlRegs.PCLKCR0.bit.ADCENCLK = 1;
|
||||
ADC_cal();
|
||||
EDIS;
|
||||
|
||||
|
||||
|
||||
|
||||
// To powerup the ADC the ADCENCLK bit should be set first to enable
|
||||
// clocks, followed by powering up the bandgap, reference circuitry, and ADC core.
|
||||
// Before the first conversion is performed a 5ms delay must be observed
|
||||
// after power up to give all analog circuits time to power up and settle
|
||||
|
||||
// Please note that for the delay function below to operate correctly the
|
||||
// CPU_RATE define statement in the DSP2833x_Examples.h file must
|
||||
// contain the correct CPU clock period in nanoseconds.
|
||||
|
||||
AdcRegs.ADCTRL3.all = 0x00E0; // Power up bandgap/reference/ADC circuits
|
||||
DELAY_US(ADC_usDELAY); // Delay before converting ADC channels
|
||||
//pause_us(50L);
|
||||
}
|
||||
|
||||
|
||||
//===========================================================================
|
||||
// End of file.
|
||||
//===========================================================================
|
67
Source/External/v120/DSP2833x_common/source/DSP2833x_CSMPasswords.asm
vendored
Normal file
67
Source/External/v120/DSP2833x_common/source/DSP2833x_CSMPasswords.asm
vendored
Normal file
@ -0,0 +1,67 @@
|
||||
;// TI File $Revision: /main/3 $
|
||||
;// Checkin $Date: June 26, 2007 16:41:07 $
|
||||
;//###########################################################################
|
||||
;//
|
||||
;// FILE: DSP2833x_CSMPasswords.asm
|
||||
;//
|
||||
;// TITLE: DSP2833x Code Security Module Passwords.
|
||||
;//
|
||||
;// DESCRIPTION:
|
||||
;//
|
||||
;// This file is used to specify password values to
|
||||
;// program into the CSM password locations in Flash
|
||||
;// at 0x33FFF8 - 0x33FFFF.
|
||||
;//
|
||||
;// In addition, the reserved locations 0x33FF80 - 0X33fff5 are
|
||||
;// all programmed to 0x0000
|
||||
;//
|
||||
;//###########################################################################
|
||||
;//
|
||||
;// Original source based on D.A.
|
||||
;//
|
||||
;// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
;// $Release Date: August 1, 2008 $
|
||||
;//###########################################################################
|
||||
|
||||
; The "csmpasswords" section contains the actual CSM passwords that will be
|
||||
; linked and programmed into to the CSM password locations (PWL) in flash.
|
||||
; These passwords must be known in order to unlock the CSM module.
|
||||
; All 0xFFFF's (erased) is the default value for the password locations (PWL).
|
||||
|
||||
; It is recommended that all passwords be left as 0xFFFF during code
|
||||
; development. Passwords of 0xFFFF do not activate code security and dummy
|
||||
; reads of the CSM PWL registers is all that is required to unlock the CSM.
|
||||
; When code development is complete, modify the passwords to activate the
|
||||
; code security module.
|
||||
|
||||
.sect "csmpasswds"
|
||||
|
||||
.int 0xFFFF ;PWL0 (LSW of 128-bit password)
|
||||
.int 0xFFFF ;PWL1
|
||||
.int 0xFFFF ;PWL2
|
||||
.int 0xFFFF ;PWL3
|
||||
.int 0xFFFF ;PWL4
|
||||
.int 0xFFFF ;PWL5
|
||||
.int 0xFFFF ;PWL6
|
||||
.int 0xFFFF ;PWL7 (MSW of 128-bit password)
|
||||
|
||||
;----------------------------------------------------------------------
|
||||
|
||||
; For code security operation, all addresses between 0x33FF80 and
|
||||
; 0X33fff5 cannot be used as program code or data. These locations
|
||||
; must be programmed to 0x0000 when the code security password locations
|
||||
; (PWL) are programmed. If security is not a concern, then these addresses
|
||||
; can be used for code or data.
|
||||
|
||||
; The section "csm_rsvd" can be used to program these locations to 0x0000.
|
||||
|
||||
.sect "csm_rsvd"
|
||||
.loop (33FFF5h - 33FF80h + 1)
|
||||
.int 0x0000
|
||||
.endloop
|
||||
|
||||
;//===========================================================================
|
||||
;// End of file.
|
||||
;//===========================================================================
|
||||
|
||||
|
86
Source/External/v120/DSP2833x_common/source/DSP2833x_CodeStartBranch.asm
vendored
Normal file
86
Source/External/v120/DSP2833x_common/source/DSP2833x_CodeStartBranch.asm
vendored
Normal file
@ -0,0 +1,86 @@
|
||||
;// TI File $Revision: /main/1 $
|
||||
;// Checkin $Date: August 18, 2006 13:45:55 $
|
||||
;//###########################################################################
|
||||
;//
|
||||
;// FILE: DSP2833x_CodeStartBranch.asm
|
||||
;//
|
||||
;// TITLE: Branch for redirecting code execution after boot.
|
||||
;//
|
||||
;// For these examples, code_start is the first code that is executed after
|
||||
;// exiting the boot ROM code.
|
||||
;//
|
||||
;// The codestart section in the linker cmd file is used to physically place
|
||||
;// this code at the correct memory location. This section should be placed
|
||||
;// at the location the BOOT ROM will re-direct the code to. For example,
|
||||
;// for boot to FLASH this code will be located at 0x3f7ff6.
|
||||
;//
|
||||
;// In addition, the example DSP2833x projects are setup such that the codegen
|
||||
;// entry point is also set to the code_start label. This is done by linker
|
||||
;// option -e in the project build options. When the debugger loads the code,
|
||||
;// it will automatically set the PC to the "entry point" address indicated by
|
||||
;// the -e linker option. In this case the debugger is simply assigning the PC,
|
||||
;// it is not the same as a full reset of the device.
|
||||
;//
|
||||
;// The compiler may warn that the entry point for the project is other then
|
||||
;// _c_init00. _c_init00 is the C environment setup and is run before
|
||||
;// main() is entered. The code_start code will re-direct the execution
|
||||
;// to _c_init00 and thus there is no worry and this warning can be ignored.
|
||||
;//
|
||||
;//###########################################################################
|
||||
;// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
;// $Release Date: August 1, 2008 $
|
||||
;//###########################################################################
|
||||
|
||||
|
||||
***********************************************************************
|
||||
|
||||
WD_DISABLE .set 1 ;set to 1 to disable WD, else set to 0
|
||||
|
||||
.ref _c_int00
|
||||
.global code_start
|
||||
|
||||
***********************************************************************
|
||||
* Function: codestart section
|
||||
*
|
||||
* Description: Branch to code starting point
|
||||
***********************************************************************
|
||||
|
||||
.sect "codestart"
|
||||
|
||||
code_start:
|
||||
.if WD_DISABLE == 1
|
||||
LB wd_disable ;Branch to watchdog disable code
|
||||
.else
|
||||
LB _c_int00 ;Branch to start of boot.asm in RTS library
|
||||
.endif
|
||||
|
||||
;end codestart section
|
||||
|
||||
|
||||
***********************************************************************
|
||||
* Function: wd_disable
|
||||
*
|
||||
* Description: Disables the watchdog timer
|
||||
***********************************************************************
|
||||
.if WD_DISABLE == 1
|
||||
|
||||
.text
|
||||
wd_disable:
|
||||
SETC OBJMODE ;Set OBJMODE for 28x object code
|
||||
EALLOW ;Enable EALLOW protected register access
|
||||
MOVZ DP, #7029h>>6 ;Set data page for WDCR register
|
||||
MOV @7029h, #0068h ;Set WDDIS bit in WDCR to disable WD
|
||||
EDIS ;Disable EALLOW protected register access
|
||||
LB _c_int00 ;Branch to start of boot.asm in RTS library
|
||||
|
||||
.endif
|
||||
|
||||
;end wd_disable
|
||||
|
||||
|
||||
|
||||
.end
|
||||
|
||||
;//===========================================================================
|
||||
;// End of file.
|
||||
;//===========================================================================
|
115
Source/External/v120/DSP2833x_common/source/DSP2833x_CpuTimers.c
vendored
Normal file
115
Source/External/v120/DSP2833x_common/source/DSP2833x_CpuTimers.c
vendored
Normal file
@ -0,0 +1,115 @@
|
||||
// TI File $Revision: /main/3 $
|
||||
// Checkin $Date: March 16, 2007 08:37:30 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: DSP2833x_CpuTimers.c
|
||||
//
|
||||
// TITLE: CPU 32-bit Timers Initialization & Support Functions.
|
||||
//
|
||||
// NOTES: CpuTimer1 and CpuTimer2 are reserved for use with DSP BIOS and
|
||||
// other realtime operating systems.
|
||||
//
|
||||
// Do not use these two timers in your application if you ever plan
|
||||
// on integrating DSP-BIOS or another realtime OS.
|
||||
//
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
|
||||
#include "DSP2833x_Device.h" // Headerfile Include File
|
||||
#include "DSP2833x_Examples.h" // Examples Include File
|
||||
|
||||
struct CPUTIMER_VARS CpuTimer0;
|
||||
|
||||
// CpuTimer 1 and CpuTimer2 are used by DSP BIOS & other RTOS. Comment out if using DSP BIOS or other RTOS.
|
||||
struct CPUTIMER_VARS CpuTimer1;
|
||||
struct CPUTIMER_VARS CpuTimer2;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// InitCpuTimers:
|
||||
//---------------------------------------------------------------------------
|
||||
// This function initializes all three CPU timers to a known state.
|
||||
//
|
||||
void InitCpuTimers(void)
|
||||
{
|
||||
// CPU Timer 0
|
||||
// Initialize address pointers to respective timer registers:
|
||||
CpuTimer0.RegsAddr = &CpuTimer0Regs;
|
||||
// Initialize timer period to maximum:
|
||||
CpuTimer0Regs.PRD.all = 0xFFFFFFFF;
|
||||
// Initialize pre-scale counter to divide by 1 (SYSCLKOUT):
|
||||
CpuTimer0Regs.TPR.all = 0;
|
||||
CpuTimer0Regs.TPRH.all = 0;
|
||||
// Make sure timer is stopped:
|
||||
CpuTimer0Regs.TCR.bit.TSS = 1;
|
||||
// Reload all counter register with period value:
|
||||
CpuTimer0Regs.TCR.bit.TRB = 1;
|
||||
// Reset interrupt counters:
|
||||
CpuTimer0.InterruptCount = 0;
|
||||
|
||||
|
||||
// CpuTimer 1 and CpuTimer2 are reserved for DSP BIOS & other RTOS
|
||||
// Do not use these two timers if you ever plan on integrating
|
||||
// DSP-BIOS or another realtime OS.
|
||||
//
|
||||
// Initialize address pointers to respective timer registers:
|
||||
CpuTimer1.RegsAddr = &CpuTimer1Regs;
|
||||
CpuTimer2.RegsAddr = &CpuTimer2Regs;
|
||||
// Initialize timer period to maximum:
|
||||
CpuTimer1Regs.PRD.all = 0xFFFFFFFF;
|
||||
CpuTimer2Regs.PRD.all = 0xFFFFFFFF;
|
||||
// Initialize pre-scale counter to divide by 1 (SYSCLKOUT):
|
||||
CpuTimer1Regs.TPR.all = 0;
|
||||
CpuTimer1Regs.TPRH.all = 0;
|
||||
CpuTimer2Regs.TPR.all = 0;
|
||||
CpuTimer2Regs.TPRH.all = 0;
|
||||
// Make sure timers are stopped:
|
||||
CpuTimer1Regs.TCR.bit.TSS = 1;
|
||||
CpuTimer2Regs.TCR.bit.TSS = 1;
|
||||
// Reload all counter register with period value:
|
||||
CpuTimer1Regs.TCR.bit.TRB = 1;
|
||||
CpuTimer2Regs.TCR.bit.TRB = 1;
|
||||
// Reset interrupt counters:
|
||||
CpuTimer1.InterruptCount = 0;
|
||||
CpuTimer2.InterruptCount = 0;
|
||||
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// ConfigCpuTimer:
|
||||
//---------------------------------------------------------------------------
|
||||
// This function initializes the selected timer to the period specified
|
||||
// by the "Freq" and "Period" parameters. The "Freq" is entered as "MHz"
|
||||
// and the period in "uSeconds". The timer is held in the stopped state
|
||||
// after configuration.
|
||||
//
|
||||
void ConfigCpuTimer(struct CPUTIMER_VARS *Timer, float Freq, float Period)
|
||||
{
|
||||
Uint32 temp;
|
||||
|
||||
// Initialize timer period:
|
||||
Timer->CPUFreqInMHz = Freq;
|
||||
Timer->PeriodInUSec = Period;
|
||||
temp = (long) (Freq * Period);
|
||||
Timer->RegsAddr->PRD.all = temp;
|
||||
|
||||
// Set pre-scale counter to divide by 1 (SYSCLKOUT):
|
||||
Timer->RegsAddr->TPR.all = 0;
|
||||
Timer->RegsAddr->TPRH.all = 0;
|
||||
|
||||
// Initialize timer control register:
|
||||
Timer->RegsAddr->TCR.bit.TSS = 1; // 1 = Stop timer, 0 = Start/Restart Timer
|
||||
Timer->RegsAddr->TCR.bit.TRB = 1; // 1 = reload timer
|
||||
Timer->RegsAddr->TCR.bit.SOFT = 0;
|
||||
Timer->RegsAddr->TCR.bit.FREE = 0; // Timer Free Run Disabled
|
||||
Timer->RegsAddr->TCR.bit.TIE = 1; // 0 = Disable/ 1 = Enable Timer Interrupt
|
||||
|
||||
// Reset interrupt counter:
|
||||
Timer->InterruptCount = 0;
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
// End of file.
|
||||
//===========================================================================
|
28
Source/External/v120/DSP2833x_common/source/DSP2833x_DBGIER.asm
vendored
Normal file
28
Source/External/v120/DSP2833x_common/source/DSP2833x_DBGIER.asm
vendored
Normal file
@ -0,0 +1,28 @@
|
||||
;// TI File $Revision: /main/1 $
|
||||
;// Checkin $Date: August 18, 2006 13:46:03 $
|
||||
;//###########################################################################
|
||||
;//
|
||||
;// FILE: DSP2833x_DBGIER.asm
|
||||
;//
|
||||
;// TITLE: Set the DBGIER register
|
||||
;//
|
||||
;// DESCRIPTION:
|
||||
;//
|
||||
;// Function to set the DBGIER register (for realtime emulation).
|
||||
;// Function Prototype: void SetDBGIER(Uint16)
|
||||
;// Useage: SetDBGIER(value);
|
||||
;// Input Parameters: Uint16 value = value to put in DBGIER register.
|
||||
;// Return Value: none
|
||||
;//
|
||||
;//###########################################################################
|
||||
;// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
;// $Release Date: August 1, 2008 $
|
||||
;//###########################################################################
|
||||
.global _SetDBGIER
|
||||
.text
|
||||
|
||||
_SetDBGIER:
|
||||
MOV *SP++,AL
|
||||
POP DBGIER
|
||||
LRETR
|
||||
|
590
Source/External/v120/DSP2833x_common/source/DSP2833x_DMA.c
vendored
Normal file
590
Source/External/v120/DSP2833x_common/source/DSP2833x_DMA.c
vendored
Normal file
@ -0,0 +1,590 @@
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: DSP2833x_DMA.c
|
||||
//
|
||||
// TITLE: DSP2833x Device DMA Initialization & Support Functions.
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
|
||||
#include "DSP2833x_Device.h" // Headerfile Include File
|
||||
#include "DSP2833x_Examples.h" // Examples Include File
|
||||
|
||||
// This function initializes the DMA to a known state.
|
||||
//
|
||||
void DMAInitialize(void)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
// Perform a hard reset on DMA
|
||||
DmaRegs.DMACTRL.bit.HARDRESET = 1;
|
||||
asm (" nop"); // one NOP required after HARDRESET
|
||||
|
||||
// Allow DMA to run free on emulation suspend
|
||||
DmaRegs.DEBUGCTRL.bit.FREE = 1;
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
|
||||
void DMACH1AddrConfig(volatile Uint16 *DMA_Dest,volatile Uint16 *DMA_Source)
|
||||
{
|
||||
EALLOW;
|
||||
// Set up SOURCE address:
|
||||
DmaRegs.CH1.SRC_BEG_ADDR_SHADOW = (Uint32)DMA_Source; // Point to beginning of source buffer
|
||||
DmaRegs.CH1.SRC_ADDR_SHADOW = (Uint32)DMA_Source;
|
||||
|
||||
// Set up DESTINATION address:
|
||||
DmaRegs.CH1.DST_BEG_ADDR_SHADOW = (Uint32)DMA_Dest; // Point to beginning of destination buffer
|
||||
DmaRegs.CH1.DST_ADDR_SHADOW = (Uint32)DMA_Dest;
|
||||
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
void DMACH1BurstConfig(Uint16 bsize, int16 srcbstep, int16 desbstep)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
// Set up BURST registers:
|
||||
DmaRegs.CH1.BURST_SIZE.all = bsize; // Number of words(X-1) x-ferred in a burst
|
||||
DmaRegs.CH1.SRC_BURST_STEP = srcbstep; // Increment source addr between each word x-ferred
|
||||
DmaRegs.CH1.DST_BURST_STEP = desbstep; // Increment dest addr between each word x-ferred
|
||||
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
void DMACH1TransferConfig(Uint16 tsize, int16 srctstep, int16 deststep)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
// Set up TRANSFER registers:
|
||||
DmaRegs.CH1.TRANSFER_SIZE = tsize; // Number of bursts per transfer, DMA interrupt will occur after completed transfer
|
||||
DmaRegs.CH1.SRC_TRANSFER_STEP = srctstep; // TRANSFER_STEP is ignored when WRAP occurs
|
||||
DmaRegs.CH1.DST_TRANSFER_STEP = deststep; // TRANSFER_STEP is ignored when WRAP occurs
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
void DMACH1WrapConfig(Uint16 srcwsize, int16 srcwstep, Uint16 deswsize, int16 deswstep)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
// Set up WRAP registers:
|
||||
DmaRegs.CH1.SRC_WRAP_SIZE = srcwsize; // Wrap source address after N bursts
|
||||
DmaRegs.CH1.SRC_WRAP_STEP = srcwstep; // Step for source wrap
|
||||
|
||||
DmaRegs.CH1.DST_WRAP_SIZE = deswsize; // Wrap destination address after N bursts
|
||||
DmaRegs.CH1.DST_WRAP_STEP = deswstep; // Step for destination wrap
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
|
||||
void DMACH1ModeConfig(Uint16 persel, Uint16 perinte, Uint16 oneshot, Uint16 cont, Uint16 synce, Uint16 syncsel, Uint16 ovrinte, Uint16 datasize, Uint16 chintmode, Uint16 chinte)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
// Set up MODE Register:
|
||||
DmaRegs.CH1.MODE.bit.PERINTSEL = persel; // Passed DMA channel as peripheral interrupt source
|
||||
DmaRegs.CH1.MODE.bit.PERINTE = perinte; // Peripheral interrupt enable
|
||||
DmaRegs.CH1.MODE.bit.ONESHOT = oneshot; // Oneshot enable
|
||||
DmaRegs.CH1.MODE.bit.CONTINUOUS = cont; // Continous enable
|
||||
DmaRegs.CH1.MODE.bit.SYNCE = synce; // Peripheral sync enable/disable
|
||||
DmaRegs.CH1.MODE.bit.SYNCSEL = syncsel; // Sync effects source or destination
|
||||
DmaRegs.CH1.MODE.bit.OVRINTE = ovrinte; // Enable/disable the overflow interrupt
|
||||
DmaRegs.CH1.MODE.bit.DATASIZE = datasize; // 16-bit/32-bit data size transfers
|
||||
DmaRegs.CH1.MODE.bit.CHINTMODE = chintmode; // Generate interrupt to CPU at beginning/end of transfer
|
||||
DmaRegs.CH1.MODE.bit.CHINTE = chinte; // Channel Interrupt to CPU enable
|
||||
|
||||
// Clear any spurious flags:
|
||||
DmaRegs.CH1.CONTROL.bit.PERINTCLR = 1; // Clear any spurious interrupt flags
|
||||
DmaRegs.CH1.CONTROL.bit.SYNCCLR = 1; // Clear any spurious sync flags
|
||||
DmaRegs.CH1.CONTROL.bit.ERRCLR = 1; // Clear any spurious sync error flags
|
||||
|
||||
// Initialize PIE vector for CPU interrupt:
|
||||
PieCtrlRegs.PIEIER7.bit.INTx1 = 1; // Enable DMA CH1 interrupt in PIE
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
// This function starts DMA Channel 1.
|
||||
void StartDMACH1(void)
|
||||
{
|
||||
EALLOW;
|
||||
DmaRegs.CH1.CONTROL.bit.RUN = 1;
|
||||
EDIS;
|
||||
}
|
||||
|
||||
void DMACH2AddrConfig(volatile Uint16 *DMA_Dest,volatile Uint16 *DMA_Source)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
// Set up SOURCE address:
|
||||
DmaRegs.CH2.SRC_BEG_ADDR_SHADOW = (Uint32)DMA_Source; // Point to beginning of source buffer
|
||||
DmaRegs.CH2.SRC_ADDR_SHADOW = (Uint32)DMA_Source;
|
||||
|
||||
// Set up DESTINATION address:
|
||||
DmaRegs.CH2.DST_BEG_ADDR_SHADOW = (Uint32)DMA_Dest; // Point to beginning of destination buffer
|
||||
DmaRegs.CH2.DST_ADDR_SHADOW = (Uint32)DMA_Dest;
|
||||
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
void DMACH2BurstConfig(Uint16 bsize, int16 srcbstep, int16 desbstep)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
// Set up BURST registers:
|
||||
DmaRegs.CH2.BURST_SIZE.all = bsize; // Number of words(X-1) x-ferred in a burst
|
||||
DmaRegs.CH2.SRC_BURST_STEP = srcbstep; // Increment source addr between each word x-ferred
|
||||
DmaRegs.CH2.DST_BURST_STEP = desbstep; // Increment dest addr between each word x-ferred
|
||||
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
void DMACH2TransferConfig(Uint16 tsize, int16 srctstep, int16 deststep)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
// Set up TRANSFER registers:
|
||||
DmaRegs.CH2.TRANSFER_SIZE = tsize; // Number of bursts per transfer, DMA interrupt will occur after completed transfer
|
||||
DmaRegs.CH2.SRC_TRANSFER_STEP = srctstep; // TRANSFER_STEP is ignored when WRAP occurs
|
||||
DmaRegs.CH2.DST_TRANSFER_STEP = deststep; // TRANSFER_STEP is ignored when WRAP occurs
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
void DMACH2WrapConfig(Uint16 srcwsize, int16 srcwstep, Uint16 deswsize, int16 deswstep)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
// Set up WRAP registers:
|
||||
DmaRegs.CH2.SRC_WRAP_SIZE = srcwsize; // Wrap source address after N bursts
|
||||
DmaRegs.CH2.SRC_WRAP_STEP = srcwstep; // Step for source wrap
|
||||
|
||||
DmaRegs.CH2.DST_WRAP_SIZE = deswsize; // Wrap destination address after N bursts
|
||||
DmaRegs.CH2.DST_WRAP_STEP = deswstep; // Step for destination wrap
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
|
||||
void DMACH2ModeConfig(Uint16 persel, Uint16 perinte, Uint16 oneshot, Uint16 cont, Uint16 synce, Uint16 syncsel, Uint16 ovrinte, Uint16 datasize, Uint16 chintmode, Uint16 chinte)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
// Set up MODE Register:
|
||||
DmaRegs.CH2.MODE.bit.PERINTSEL = persel; // Passed DMA channel as peripheral interrupt source
|
||||
DmaRegs.CH2.MODE.bit.PERINTE = perinte; // Peripheral interrupt enable
|
||||
DmaRegs.CH2.MODE.bit.ONESHOT = oneshot; // Oneshot enable
|
||||
DmaRegs.CH2.MODE.bit.CONTINUOUS = cont; // Continous enable
|
||||
DmaRegs.CH2.MODE.bit.SYNCE = synce; // Peripheral sync enable/disable
|
||||
DmaRegs.CH2.MODE.bit.SYNCSEL = syncsel; // Sync effects source or destination
|
||||
DmaRegs.CH2.MODE.bit.OVRINTE = ovrinte; // Enable/disable the overflow interrupt
|
||||
DmaRegs.CH2.MODE.bit.DATASIZE = datasize; // 16-bit/32-bit data size transfers
|
||||
DmaRegs.CH2.MODE.bit.CHINTMODE = chintmode; // Generate interrupt to CPU at beginning/end of transfer
|
||||
DmaRegs.CH2.MODE.bit.CHINTE = chinte; // Channel Interrupt to CPU enable
|
||||
|
||||
// Clear any spurious flags:
|
||||
DmaRegs.CH2.CONTROL.bit.PERINTCLR = 1; // Clear any spurious interrupt flags
|
||||
DmaRegs.CH2.CONTROL.bit.SYNCCLR = 1; // Clear any spurious sync flags
|
||||
DmaRegs.CH2.CONTROL.bit.ERRCLR = 1; // Clear any spurious sync error flags
|
||||
|
||||
// Initialize PIE vector for CPU interrupt:
|
||||
PieCtrlRegs.PIEIER7.bit.INTx2 = 1; // Enable DMA CH2 interrupt in PIE
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// This function starts DMA Channel 2.
|
||||
void StartDMACH2(void)
|
||||
{
|
||||
EALLOW;
|
||||
DmaRegs.CH2.CONTROL.bit.RUN = 1;
|
||||
EDIS;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void DMACH3AddrConfig(volatile Uint16 *DMA_Dest,volatile Uint16 *DMA_Source)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
// Set up SOURCE address:
|
||||
DmaRegs.CH3.SRC_BEG_ADDR_SHADOW = (Uint32)DMA_Source; // Point to beginning of source buffer
|
||||
DmaRegs.CH3.SRC_ADDR_SHADOW = (Uint32)DMA_Source;
|
||||
|
||||
// Set up DESTINATION address:
|
||||
DmaRegs.CH3.DST_BEG_ADDR_SHADOW = (Uint32)DMA_Dest; // Point to beginning of destination buffer
|
||||
DmaRegs.CH3.DST_ADDR_SHADOW = (Uint32)DMA_Dest;
|
||||
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
void DMACH3BurstConfig(Uint16 bsize, int16 srcbstep, int16 desbstep)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
// Set up BURST registers:
|
||||
DmaRegs.CH3.BURST_SIZE.all = bsize; // Number of words(X-1) x-ferred in a burst
|
||||
DmaRegs.CH3.SRC_BURST_STEP = srcbstep; // Increment source addr between each word x-ferred
|
||||
DmaRegs.CH3.DST_BURST_STEP = desbstep; // Increment dest addr between each word x-ferred
|
||||
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
void DMACH3TransferConfig(Uint16 tsize, int16 srctstep, int16 deststep)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
// Set up TRANSFER registers:
|
||||
DmaRegs.CH3.TRANSFER_SIZE = tsize; // Number of bursts per transfer, DMA interrupt will occur after completed transfer
|
||||
DmaRegs.CH3.SRC_TRANSFER_STEP = srctstep; // TRANSFER_STEP is ignored when WRAP occurs
|
||||
DmaRegs.CH3.DST_TRANSFER_STEP = deststep; // TRANSFER_STEP is ignored when WRAP occurs
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
void DMACH3WrapConfig(Uint16 srcwsize, int16 srcwstep, Uint16 deswsize, int16 deswstep)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
// Set up WRAP registers:
|
||||
DmaRegs.CH3.SRC_WRAP_SIZE = srcwsize; // Wrap source address after N bursts
|
||||
DmaRegs.CH3.SRC_WRAP_STEP = srcwstep; // Step for source wrap
|
||||
|
||||
DmaRegs.CH3.DST_WRAP_SIZE = deswsize; // Wrap destination address after N bursts
|
||||
DmaRegs.CH3.DST_WRAP_STEP = deswstep; // Step for destination wrap
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
|
||||
void DMACH3ModeConfig(Uint16 persel, Uint16 perinte, Uint16 oneshot, Uint16 cont, Uint16 synce, Uint16 syncsel, Uint16 ovrinte, Uint16 datasize, Uint16 chintmode, Uint16 chinte)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
// Set up MODE Register:
|
||||
DmaRegs.CH3.MODE.bit.PERINTSEL = persel; // Passed DMA channel as peripheral interrupt source
|
||||
DmaRegs.CH3.MODE.bit.PERINTE = perinte; // Peripheral interrupt enable
|
||||
DmaRegs.CH3.MODE.bit.ONESHOT = oneshot; // Oneshot enable
|
||||
DmaRegs.CH3.MODE.bit.CONTINUOUS = cont; // Continous enable
|
||||
DmaRegs.CH3.MODE.bit.SYNCE = synce; // Peripheral sync enable/disable
|
||||
DmaRegs.CH3.MODE.bit.SYNCSEL = syncsel; // Sync effects source or destination
|
||||
DmaRegs.CH3.MODE.bit.OVRINTE = ovrinte; // Enable/disable the overflow interrupt
|
||||
DmaRegs.CH3.MODE.bit.DATASIZE = datasize; // 16-bit/32-bit data size transfers
|
||||
DmaRegs.CH3.MODE.bit.CHINTMODE = chintmode; // Generate interrupt to CPU at beginning/end of transfer
|
||||
DmaRegs.CH3.MODE.bit.CHINTE = chinte; // Channel Interrupt to CPU enable
|
||||
|
||||
// Clear any spurious flags:
|
||||
DmaRegs.CH3.CONTROL.bit.PERINTCLR = 1; // Clear any spurious interrupt flags
|
||||
DmaRegs.CH3.CONTROL.bit.SYNCCLR = 1; // Clear any spurious sync flags
|
||||
DmaRegs.CH3.CONTROL.bit.ERRCLR = 1; // Clear any spurious sync error flags
|
||||
|
||||
// Initialize PIE vector for CPU interrupt:
|
||||
PieCtrlRegs.PIEIER7.bit.INTx3 = 1; // Enable DMA CH3 interrupt in PIE
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
// This function starts DMA Channel 3.
|
||||
void StartDMACH3(void)
|
||||
{
|
||||
EALLOW;
|
||||
DmaRegs.CH3.CONTROL.bit.RUN = 1;
|
||||
EDIS;
|
||||
}
|
||||
|
||||
|
||||
void DMACH4AddrConfig(volatile Uint16 *DMA_Dest,volatile Uint16 *DMA_Source)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
// Set up SOURCE address:
|
||||
DmaRegs.CH4.SRC_BEG_ADDR_SHADOW = (Uint32)DMA_Source; // Point to beginning of source buffer
|
||||
DmaRegs.CH4.SRC_ADDR_SHADOW = (Uint32)DMA_Source;
|
||||
|
||||
// Set up DESTINATION address:
|
||||
DmaRegs.CH4.DST_BEG_ADDR_SHADOW = (Uint32)DMA_Dest; // Point to beginning of destination buffer
|
||||
DmaRegs.CH4.DST_ADDR_SHADOW = (Uint32)DMA_Dest;
|
||||
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
void DMACH4BurstConfig(Uint16 bsize, int16 srcbstep, int16 desbstep)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
// Set up BURST registers:
|
||||
DmaRegs.CH4.BURST_SIZE.all = bsize; // Number of words(X-1) x-ferred in a burst
|
||||
DmaRegs.CH4.SRC_BURST_STEP = srcbstep; // Increment source addr between each word x-ferred
|
||||
DmaRegs.CH4.DST_BURST_STEP = desbstep; // Increment dest addr between each word x-ferred
|
||||
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
void DMACH4TransferConfig(Uint16 tsize, int16 srctstep, int16 deststep)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
// Set up TRANSFER registers:
|
||||
DmaRegs.CH4.TRANSFER_SIZE = tsize; // Number of bursts per transfer, DMA interrupt will occur after completed transfer
|
||||
DmaRegs.CH4.SRC_TRANSFER_STEP = srctstep; // TRANSFER_STEP is ignored when WRAP occurs
|
||||
DmaRegs.CH4.DST_TRANSFER_STEP = deststep; // TRANSFER_STEP is ignored when WRAP occurs
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
void DMACH4WrapConfig(Uint16 srcwsize, int16 srcwstep, Uint16 deswsize, int16 deswstep)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
// Set up WRAP registers:
|
||||
DmaRegs.CH4.SRC_WRAP_SIZE = srcwsize; // Wrap source address after N bursts
|
||||
DmaRegs.CH4.SRC_WRAP_STEP = srcwstep; // Step for source wrap
|
||||
|
||||
DmaRegs.CH4.DST_WRAP_SIZE = deswsize; // Wrap destination address after N bursts
|
||||
DmaRegs.CH4.DST_WRAP_STEP = deswstep; // Step for destination wrap
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
|
||||
void DMACH4ModeConfig(Uint16 persel, Uint16 perinte, Uint16 oneshot, Uint16 cont, Uint16 synce, Uint16 syncsel, Uint16 ovrinte, Uint16 datasize, Uint16 chintmode, Uint16 chinte)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
// Set up MODE Register:
|
||||
DmaRegs.CH4.MODE.bit.PERINTSEL = persel; // Passed DMA channel as peripheral interrupt source
|
||||
DmaRegs.CH4.MODE.bit.PERINTE = perinte; // Peripheral interrupt enable
|
||||
DmaRegs.CH4.MODE.bit.ONESHOT = oneshot; // Oneshot enable
|
||||
DmaRegs.CH4.MODE.bit.CONTINUOUS = cont; // Continous enable
|
||||
DmaRegs.CH4.MODE.bit.SYNCE = synce; // Peripheral sync enable/disable
|
||||
DmaRegs.CH4.MODE.bit.SYNCSEL = syncsel; // Sync effects source or destination
|
||||
DmaRegs.CH4.MODE.bit.OVRINTE = ovrinte; // Enable/disable the overflow interrupt
|
||||
DmaRegs.CH4.MODE.bit.DATASIZE = datasize; // 16-bit/32-bit data size transfers
|
||||
DmaRegs.CH4.MODE.bit.CHINTMODE = chintmode; // Generate interrupt to CPU at beginning/end of transfer
|
||||
DmaRegs.CH4.MODE.bit.CHINTE = chinte; // Channel Interrupt to CPU enable
|
||||
|
||||
// Clear any spurious flags:
|
||||
DmaRegs.CH4.CONTROL.bit.PERINTCLR = 1; // Clear any spurious interrupt flags
|
||||
DmaRegs.CH4.CONTROL.bit.SYNCCLR = 1; // Clear any spurious sync flags
|
||||
DmaRegs.CH4.CONTROL.bit.ERRCLR = 1; // Clear any spurious sync error flags
|
||||
|
||||
// Initialize PIE vector for CPU interrupt:
|
||||
PieCtrlRegs.PIEIER7.bit.INTx4 = 1; // Enable DMA CH4 interrupt in PIE
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
|
||||
// This function starts DMA Channel 4.
|
||||
void StartDMACH4(void)
|
||||
{
|
||||
EALLOW;
|
||||
DmaRegs.CH4.CONTROL.bit.RUN = 1;
|
||||
EDIS;
|
||||
}
|
||||
|
||||
|
||||
void DMACH5AddrConfig(volatile Uint16 *DMA_Dest,volatile Uint16 *DMA_Source)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
// Set up SOURCE address:
|
||||
DmaRegs.CH5.SRC_BEG_ADDR_SHADOW = (Uint32)DMA_Source; // Point to beginning of source buffer
|
||||
DmaRegs.CH5.SRC_ADDR_SHADOW = (Uint32)DMA_Source;
|
||||
|
||||
// Set up DESTINATION address:
|
||||
DmaRegs.CH5.DST_BEG_ADDR_SHADOW = (Uint32)DMA_Dest; // Point to beginning of destination buffer
|
||||
DmaRegs.CH5.DST_ADDR_SHADOW = (Uint32)DMA_Dest;
|
||||
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
void DMACH5BurstConfig(Uint16 bsize, int16 srcbstep, int16 desbstep)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
|
||||
// Set up BURST registers:
|
||||
DmaRegs.CH5.BURST_SIZE.all = bsize; // Number of words(X-1) x-ferred in a burst
|
||||
DmaRegs.CH5.SRC_BURST_STEP = srcbstep; // Increment source addr between each word x-ferred
|
||||
DmaRegs.CH5.DST_BURST_STEP = desbstep; // Increment dest addr between each word x-ferred
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
void DMACH5TransferConfig(Uint16 tsize, int16 srctstep, int16 deststep)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
|
||||
// Set up TRANSFER registers:
|
||||
DmaRegs.CH5.TRANSFER_SIZE = tsize; // Number of bursts per transfer, DMA interrupt will occur after completed transfer
|
||||
DmaRegs.CH5.SRC_TRANSFER_STEP = srctstep; // TRANSFER_STEP is ignored when WRAP occurs
|
||||
DmaRegs.CH5.DST_TRANSFER_STEP = deststep; // TRANSFER_STEP is ignored when WRAP occurs
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
void DMACH5WrapConfig(Uint16 srcwsize, int16 srcwstep, Uint16 deswsize, int16 deswstep)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
|
||||
// Set up WRAP registers:
|
||||
DmaRegs.CH5.SRC_WRAP_SIZE = srcwsize; // Wrap source address after N bursts
|
||||
DmaRegs.CH5.SRC_WRAP_STEP = srcwstep; // Step for source wrap
|
||||
|
||||
DmaRegs.CH5.DST_WRAP_SIZE = deswsize; // Wrap destination address after N bursts
|
||||
DmaRegs.CH5.DST_WRAP_STEP = deswstep; // Step for destination wrap
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
|
||||
void DMACH5ModeConfig(Uint16 persel, Uint16 perinte, Uint16 oneshot, Uint16 cont, Uint16 synce, Uint16 syncsel, Uint16 ovrinte, Uint16 datasize, Uint16 chintmode, Uint16 chinte)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
// Set up MODE Register:
|
||||
DmaRegs.CH5.MODE.bit.PERINTSEL = persel; // Passed DMA channel as peripheral interrupt source
|
||||
DmaRegs.CH5.MODE.bit.PERINTE = perinte; // Peripheral interrupt enable
|
||||
DmaRegs.CH5.MODE.bit.ONESHOT = oneshot; // Oneshot enable
|
||||
DmaRegs.CH5.MODE.bit.CONTINUOUS = cont; // Continous enable
|
||||
DmaRegs.CH5.MODE.bit.SYNCE = synce; // Peripheral sync enable/disable
|
||||
DmaRegs.CH5.MODE.bit.SYNCSEL = syncsel; // Sync effects source or destination
|
||||
DmaRegs.CH5.MODE.bit.OVRINTE = ovrinte; // Enable/disable the overflow interrupt
|
||||
DmaRegs.CH5.MODE.bit.DATASIZE = datasize; // 16-bit/32-bit data size transfers
|
||||
DmaRegs.CH5.MODE.bit.CHINTMODE = chintmode; // Generate interrupt to CPU at beginning/end of transfer
|
||||
DmaRegs.CH5.MODE.bit.CHINTE = chinte; // Channel Interrupt to CPU enable
|
||||
|
||||
// Clear any spurious flags:
|
||||
DmaRegs.CH5.CONTROL.bit.PERINTCLR = 1; // Clear any spurious interrupt flags
|
||||
DmaRegs.CH5.CONTROL.bit.SYNCCLR = 1; // Clear any spurious sync flags
|
||||
DmaRegs.CH5.CONTROL.bit.ERRCLR = 1; // Clear any spurious sync error flags
|
||||
|
||||
// Initialize PIE vector for CPU interrupt:
|
||||
PieCtrlRegs.PIEIER7.bit.INTx5 = 1; // Enable DMA CH5 interrupt in PIE
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
// This function starts DMA Channel 5.
|
||||
void StartDMACH5(void)
|
||||
{
|
||||
EALLOW;
|
||||
DmaRegs.CH5.CONTROL.bit.RUN = 1;
|
||||
EDIS;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void DMACH6AddrConfig(volatile Uint16 *DMA_Dest,volatile Uint16 *DMA_Source)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
// Set up SOURCE address:
|
||||
DmaRegs.CH6.SRC_BEG_ADDR_SHADOW = (Uint32)DMA_Source; // Point to beginning of source buffer
|
||||
DmaRegs.CH6.SRC_ADDR_SHADOW = (Uint32)DMA_Source;
|
||||
|
||||
// Set up DESTINATION address:
|
||||
DmaRegs.CH6.DST_BEG_ADDR_SHADOW = (Uint32)DMA_Dest; // Point to beginning of destination buffer
|
||||
DmaRegs.CH6.DST_ADDR_SHADOW = (Uint32)DMA_Dest;
|
||||
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
void DMACH6BurstConfig(Uint16 bsize,Uint16 srcbstep, int16 desbstep)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
// Set up BURST registers:
|
||||
DmaRegs.CH6.BURST_SIZE.all = bsize; // Number of words(X-1) x-ferred in a burst
|
||||
DmaRegs.CH6.SRC_BURST_STEP = srcbstep; // Increment source addr between each word x-ferred
|
||||
DmaRegs.CH6.DST_BURST_STEP = desbstep; // Increment dest addr between each word x-ferred
|
||||
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
void DMACH6TransferConfig(Uint16 tsize, int16 srctstep, int16 deststep)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
// Set up TRANSFER registers:
|
||||
DmaRegs.CH6.TRANSFER_SIZE = tsize; // Number of bursts per transfer, DMA interrupt will occur after completed transfer
|
||||
DmaRegs.CH6.SRC_TRANSFER_STEP = srctstep; // TRANSFER_STEP is ignored when WRAP occurs
|
||||
DmaRegs.CH6.DST_TRANSFER_STEP = deststep; // TRANSFER_STEP is ignored when WRAP occurs
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
void DMACH6WrapConfig(Uint16 srcwsize, int16 srcwstep, Uint16 deswsize, int16 deswstep)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
// Set up WRAP registers:
|
||||
DmaRegs.CH6.SRC_WRAP_SIZE = srcwsize; // Wrap source address after N bursts
|
||||
DmaRegs.CH6.SRC_WRAP_STEP = srcwstep; // Step for source wrap
|
||||
|
||||
DmaRegs.CH6.DST_WRAP_SIZE = deswsize; // Wrap destination address after N bursts
|
||||
DmaRegs.CH6.DST_WRAP_STEP = deswstep; // Step for destination wrap
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
|
||||
void DMACH6ModeConfig(Uint16 persel, Uint16 perinte, Uint16 oneshot, Uint16 cont, Uint16 synce, Uint16 syncsel, Uint16 ovrinte, Uint16 datasize, Uint16 chintmode, Uint16 chinte)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
// Set up MODE Register:
|
||||
DmaRegs.CH6.MODE.bit.PERINTSEL = persel; // Passed DMA channel as peripheral interrupt source
|
||||
DmaRegs.CH6.MODE.bit.PERINTE = perinte; // Peripheral interrupt enable
|
||||
DmaRegs.CH6.MODE.bit.ONESHOT = oneshot; // Oneshot enable
|
||||
DmaRegs.CH6.MODE.bit.CONTINUOUS = cont; // Continous enable
|
||||
DmaRegs.CH6.MODE.bit.SYNCE = synce; // Peripheral sync enable/disable
|
||||
DmaRegs.CH6.MODE.bit.SYNCSEL = syncsel; // Sync effects source or destination
|
||||
DmaRegs.CH6.MODE.bit.OVRINTE = ovrinte; // Enable/disable the overflow interrupt
|
||||
DmaRegs.CH6.MODE.bit.DATASIZE = datasize; // 16-bit/32-bit data size transfers
|
||||
DmaRegs.CH6.MODE.bit.CHINTMODE = chintmode; // Generate interrupt to CPU at beginning/end of transfer
|
||||
DmaRegs.CH6.MODE.bit.CHINTE = chinte; // Channel Interrupt to CPU enable
|
||||
|
||||
// Clear any spurious flags:
|
||||
DmaRegs.CH6.CONTROL.bit.PERINTCLR = 1; // Clear any spurious interrupt flags
|
||||
DmaRegs.CH6.CONTROL.bit.SYNCCLR = 1; // Clear any spurious sync flags
|
||||
DmaRegs.CH6.CONTROL.bit.ERRCLR = 1; // Clear any spurious sync error flags
|
||||
|
||||
// Initialize PIE vector for CPU interrupt:
|
||||
PieCtrlRegs.PIEIER7.bit.INTx6 = 1; // Enable DMA CH6 interrupt in PIE
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
// This function starts DMA Channel 6.
|
||||
void StartDMACH6(void)
|
||||
{
|
||||
EALLOW;
|
||||
DmaRegs.CH6.CONTROL.bit.RUN = 1;
|
||||
EDIS;
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
// No more.
|
||||
//===========================================================================
|
1187
Source/External/v120/DSP2833x_common/source/DSP2833x_DefaultIsr.c
vendored
Normal file
1187
Source/External/v120/DSP2833x_common/source/DSP2833x_DefaultIsr.c
vendored
Normal file
File diff suppressed because it is too large
Load Diff
65
Source/External/v120/DSP2833x_common/source/DSP2833x_DisInt.asm
vendored
Normal file
65
Source/External/v120/DSP2833x_common/source/DSP2833x_DisInt.asm
vendored
Normal file
@ -0,0 +1,65 @@
|
||||
;// TI File $Revision: /main/1 $
|
||||
;// Checkin $Date: August 18, 2006 13:46:09 $
|
||||
;//###########################################################################
|
||||
;//
|
||||
;// FILE: DSP2833x_DisInt.asm
|
||||
;//
|
||||
;// TITLE: Disable and Restore INTM and DBGM
|
||||
;//
|
||||
;// Function Prototypes:
|
||||
;//
|
||||
;// Uint16 DSP28x_DisableInt();
|
||||
;// and void DSP28x_RestoreInt(Uint16 Stat0);
|
||||
;//
|
||||
;// Usage:
|
||||
;//
|
||||
;// DSP28x_DisableInt() sets both the INTM and DBGM
|
||||
;// bits to disable maskable interrupts. Before doing
|
||||
;// this, the current value of ST1 is stored on the stack
|
||||
;// so that the values can be restored later. The value
|
||||
;// of ST1 before the masks are set is returned to the
|
||||
;// user in AL. This is then used to restore their state
|
||||
;// via the DSP28x_RestoreInt(Uint16 ST1) function.
|
||||
;//
|
||||
;// Example
|
||||
;//
|
||||
;// Uint16 StatusReg1
|
||||
;// StatusReg1 = DSP28x_DisableInt();
|
||||
;//
|
||||
;// ... May also want to disable INTM here
|
||||
;//
|
||||
;// ... code here
|
||||
;//
|
||||
;// DSP28x_RestoreInt(StatusReg1);
|
||||
;//
|
||||
;// ... Restore INTM enable
|
||||
;//
|
||||
;//###########################################################################
|
||||
;// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
;// $Release Date: August 1, 2008 $
|
||||
;//###########################################################################
|
||||
|
||||
|
||||
|
||||
|
||||
.def _DSP28x_DisableInt
|
||||
.def _DSP28x_RestoreInt
|
||||
|
||||
|
||||
_DSP28x_DisableInt:
|
||||
PUSH ST1
|
||||
SETC INTM,DBGM
|
||||
MOV AL, *--SP
|
||||
LRETR
|
||||
|
||||
_DSP28x_RestoreInt:
|
||||
MOV *SP++, AL
|
||||
POP ST1
|
||||
LRETR
|
||||
|
||||
|
||||
;//===========================================================================
|
||||
;// End of file.
|
||||
;//===========================================================================
|
||||
|
||||
|
404
Source/External/v120/DSP2833x_common/source/DSP2833x_ECan.c
vendored
Normal file
404
Source/External/v120/DSP2833x_common/source/DSP2833x_ECan.c
vendored
Normal file
@ -0,0 +1,404 @@
|
||||
// TI File $Revision: /main/8 $
|
||||
// Checkin $Date: June 25, 2008 15:19:07 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: DSP2833x_ECan.c
|
||||
//
|
||||
// TITLE: DSP2833x Enhanced CAN Initialization & Support Functions.
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
|
||||
#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File
|
||||
#include "DSP2833x_Examples.h" // DSP2833x Examples Include File
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// InitECan:
|
||||
//---------------------------------------------------------------------------
|
||||
// This function initializes the eCAN module to a known state.
|
||||
//
|
||||
void InitECan(void)
|
||||
{
|
||||
InitECana();
|
||||
#if DSP28_ECANB
|
||||
InitECanb();
|
||||
#endif // if DSP28_ECANB
|
||||
}
|
||||
|
||||
void InitECana(void) // Initialize eCAN-A module
|
||||
{
|
||||
/* Create a shadow register structure for the CAN control registers. This is
|
||||
needed, since only 32-bit access is allowed to these registers. 16-bit access
|
||||
to these registers could potentially corrupt the register contents or return
|
||||
false data. This is especially true while writing to/reading from a bit
|
||||
(or group of bits) among bits 16 - 31 */
|
||||
|
||||
struct ECAN_REGS ECanaShadow;
|
||||
|
||||
EALLOW; // EALLOW enables access to protected bits
|
||||
|
||||
/* Configure eCAN RX and TX pins for CAN operation using eCAN regs*/
|
||||
|
||||
ECanaShadow.CANTIOC.all = ECanaRegs.CANTIOC.all;
|
||||
ECanaShadow.CANTIOC.bit.TXFUNC = 1;
|
||||
ECanaRegs.CANTIOC.all = ECanaShadow.CANTIOC.all;
|
||||
|
||||
ECanaShadow.CANRIOC.all = ECanaRegs.CANRIOC.all;
|
||||
ECanaShadow.CANRIOC.bit.RXFUNC = 1;
|
||||
ECanaRegs.CANRIOC.all = ECanaShadow.CANRIOC.all;
|
||||
|
||||
/* Configure eCAN for HECC mode - (reqd to access mailboxes 16 thru 31) */
|
||||
// HECC mode also enables time-stamping feature
|
||||
|
||||
ECanaShadow.CANMC.all = ECanaRegs.CANMC.all;
|
||||
ECanaShadow.CANMC.bit.SCB = 1;
|
||||
ECanaRegs.CANMC.all = ECanaShadow.CANMC.all;
|
||||
|
||||
/* Initialize all bits of 'Master Control Field' to zero */
|
||||
// Some bits of MSGCTRL register come up in an unknown state. For proper operation,
|
||||
// all bits (including reserved bits) of MSGCTRL must be initialized to zero
|
||||
|
||||
ECanaMboxes.MBOX0.MSGCTRL.all = 0x00000000;
|
||||
ECanaMboxes.MBOX1.MSGCTRL.all = 0x00000000;
|
||||
ECanaMboxes.MBOX2.MSGCTRL.all = 0x00000000;
|
||||
ECanaMboxes.MBOX3.MSGCTRL.all = 0x00000000;
|
||||
ECanaMboxes.MBOX4.MSGCTRL.all = 0x00000000;
|
||||
ECanaMboxes.MBOX5.MSGCTRL.all = 0x00000000;
|
||||
ECanaMboxes.MBOX6.MSGCTRL.all = 0x00000000;
|
||||
ECanaMboxes.MBOX7.MSGCTRL.all = 0x00000000;
|
||||
ECanaMboxes.MBOX8.MSGCTRL.all = 0x00000000;
|
||||
ECanaMboxes.MBOX9.MSGCTRL.all = 0x00000000;
|
||||
ECanaMboxes.MBOX10.MSGCTRL.all = 0x00000000;
|
||||
ECanaMboxes.MBOX11.MSGCTRL.all = 0x00000000;
|
||||
ECanaMboxes.MBOX12.MSGCTRL.all = 0x00000000;
|
||||
ECanaMboxes.MBOX13.MSGCTRL.all = 0x00000000;
|
||||
ECanaMboxes.MBOX14.MSGCTRL.all = 0x00000000;
|
||||
ECanaMboxes.MBOX15.MSGCTRL.all = 0x00000000;
|
||||
ECanaMboxes.MBOX16.MSGCTRL.all = 0x00000000;
|
||||
ECanaMboxes.MBOX17.MSGCTRL.all = 0x00000000;
|
||||
ECanaMboxes.MBOX18.MSGCTRL.all = 0x00000000;
|
||||
ECanaMboxes.MBOX19.MSGCTRL.all = 0x00000000;
|
||||
ECanaMboxes.MBOX20.MSGCTRL.all = 0x00000000;
|
||||
ECanaMboxes.MBOX21.MSGCTRL.all = 0x00000000;
|
||||
ECanaMboxes.MBOX22.MSGCTRL.all = 0x00000000;
|
||||
ECanaMboxes.MBOX23.MSGCTRL.all = 0x00000000;
|
||||
ECanaMboxes.MBOX24.MSGCTRL.all = 0x00000000;
|
||||
ECanaMboxes.MBOX25.MSGCTRL.all = 0x00000000;
|
||||
ECanaMboxes.MBOX26.MSGCTRL.all = 0x00000000;
|
||||
ECanaMboxes.MBOX27.MSGCTRL.all = 0x00000000;
|
||||
ECanaMboxes.MBOX28.MSGCTRL.all = 0x00000000;
|
||||
ECanaMboxes.MBOX29.MSGCTRL.all = 0x00000000;
|
||||
ECanaMboxes.MBOX30.MSGCTRL.all = 0x00000000;
|
||||
ECanaMboxes.MBOX31.MSGCTRL.all = 0x00000000;
|
||||
|
||||
// TAn, RMPn, GIFn bits are all zero upon reset and are cleared again
|
||||
// as a matter of precaution.
|
||||
|
||||
ECanaRegs.CANTA.all = 0xFFFFFFFF; /* Clear all TAn bits */
|
||||
|
||||
ECanaRegs.CANRMP.all = 0xFFFFFFFF; /* Clear all RMPn bits */
|
||||
|
||||
ECanaRegs.CANGIF0.all = 0xFFFFFFFF; /* Clear all interrupt flag bits */
|
||||
ECanaRegs.CANGIF1.all = 0xFFFFFFFF;
|
||||
|
||||
|
||||
/* Configure bit timing parameters for eCANA*/
|
||||
ECanaShadow.CANMC.all = ECanaRegs.CANMC.all;
|
||||
ECanaShadow.CANMC.bit.CCR = 1 ; // Set CCR = 1
|
||||
ECanaRegs.CANMC.all = ECanaShadow.CANMC.all;
|
||||
|
||||
ECanaShadow.CANES.all = ECanaRegs.CANES.all;
|
||||
|
||||
do
|
||||
{
|
||||
ECanaShadow.CANES.all = ECanaRegs.CANES.all;
|
||||
} while(ECanaShadow.CANES.bit.CCE != 1 ); // Wait for CCE bit to be set..
|
||||
|
||||
ECanaShadow.CANBTC.all = 0;
|
||||
|
||||
#if (CPU_FRQ_150MHZ) // CPU_FRQ_150MHz is defined in DSP2833x_Examples.h
|
||||
/* The following block for all 150 MHz SYSCLKOUT (75 MHz CAN clock) - default. Bit rate = 1 Mbps
|
||||
See Note at End of File */
|
||||
ECanaShadow.CANBTC.bit.BRPREG = 4;
|
||||
ECanaShadow.CANBTC.bit.TSEG2REG = 2;
|
||||
ECanaShadow.CANBTC.bit.TSEG1REG = 10;
|
||||
#endif
|
||||
#if (CPU_FRQ_100MHZ) // CPU_FRQ_100MHz is defined in DSP2833x_Examples.h
|
||||
/* The following block is only for 100 MHz SYSCLKOUT (50 MHz CAN clock). Bit rate = 1 Mbps
|
||||
See Note at End of File */
|
||||
ECanaShadow.CANBTC.bit.BRPREG = 4;
|
||||
ECanaShadow.CANBTC.bit.TSEG2REG = 1;
|
||||
ECanaShadow.CANBTC.bit.TSEG1REG = 6;
|
||||
#endif
|
||||
|
||||
|
||||
ECanaShadow.CANBTC.bit.SAM = 1;
|
||||
ECanaRegs.CANBTC.all = ECanaShadow.CANBTC.all;
|
||||
|
||||
ECanaShadow.CANMC.all = ECanaRegs.CANMC.all;
|
||||
ECanaShadow.CANMC.bit.CCR = 0 ; // Set CCR = 0
|
||||
ECanaRegs.CANMC.all = ECanaShadow.CANMC.all;
|
||||
|
||||
ECanaShadow.CANES.all = ECanaRegs.CANES.all;
|
||||
|
||||
do
|
||||
{
|
||||
ECanaShadow.CANES.all = ECanaRegs.CANES.all;
|
||||
} while(ECanaShadow.CANES.bit.CCE != 0 ); // Wait for CCE bit to be cleared..
|
||||
|
||||
/* Disable all Mailboxes */
|
||||
ECanaRegs.CANME.all = 0; // Required before writing the MSGIDs
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
|
||||
#if (DSP28_ECANB)
|
||||
void InitECanb(void) // Initialize eCAN-B module
|
||||
{
|
||||
/* Create a shadow register structure for the CAN control registers. This is
|
||||
needed, since only 32-bit access is allowed to these registers. 16-bit access
|
||||
to these registers could potentially corrupt the register contents or return
|
||||
false data. This is especially true while writing to/reading from a bit
|
||||
(or group of bits) among bits 16 - 31 */
|
||||
|
||||
struct ECAN_REGS ECanbShadow;
|
||||
|
||||
EALLOW; // EALLOW enables access to protected bits
|
||||
|
||||
/* Configure eCAN RX and TX pins for CAN operation using eCAN regs*/
|
||||
|
||||
ECanbShadow.CANTIOC.all = ECanbRegs.CANTIOC.all;
|
||||
ECanbShadow.CANTIOC.bit.TXFUNC = 1;
|
||||
ECanbRegs.CANTIOC.all = ECanbShadow.CANTIOC.all;
|
||||
|
||||
ECanbShadow.CANRIOC.all = ECanbRegs.CANRIOC.all;
|
||||
ECanbShadow.CANRIOC.bit.RXFUNC = 1;
|
||||
ECanbRegs.CANRIOC.all = ECanbShadow.CANRIOC.all;
|
||||
|
||||
/* Configure eCAN for HECC mode - (reqd to access mailboxes 16 thru 31) */
|
||||
|
||||
ECanbShadow.CANMC.all = ECanbRegs.CANMC.all;
|
||||
ECanbShadow.CANMC.bit.SCB = 1;
|
||||
ECanbRegs.CANMC.all = ECanbShadow.CANMC.all;
|
||||
|
||||
/* Initialize all bits of 'Master Control Field' to zero */
|
||||
// Some bits of MSGCTRL register come up in an unknown state. For proper operation,
|
||||
// all bits (including reserved bits) of MSGCTRL must be initialized to zero
|
||||
|
||||
ECanbMboxes.MBOX0.MSGCTRL.all = 0x00000000;
|
||||
ECanbMboxes.MBOX1.MSGCTRL.all = 0x00000000;
|
||||
ECanbMboxes.MBOX2.MSGCTRL.all = 0x00000000;
|
||||
ECanbMboxes.MBOX3.MSGCTRL.all = 0x00000000;
|
||||
ECanbMboxes.MBOX4.MSGCTRL.all = 0x00000000;
|
||||
ECanbMboxes.MBOX5.MSGCTRL.all = 0x00000000;
|
||||
ECanbMboxes.MBOX6.MSGCTRL.all = 0x00000000;
|
||||
ECanbMboxes.MBOX7.MSGCTRL.all = 0x00000000;
|
||||
ECanbMboxes.MBOX8.MSGCTRL.all = 0x00000000;
|
||||
ECanbMboxes.MBOX9.MSGCTRL.all = 0x00000000;
|
||||
ECanbMboxes.MBOX10.MSGCTRL.all = 0x00000000;
|
||||
ECanbMboxes.MBOX11.MSGCTRL.all = 0x00000000;
|
||||
ECanbMboxes.MBOX12.MSGCTRL.all = 0x00000000;
|
||||
ECanbMboxes.MBOX13.MSGCTRL.all = 0x00000000;
|
||||
ECanbMboxes.MBOX14.MSGCTRL.all = 0x00000000;
|
||||
ECanbMboxes.MBOX15.MSGCTRL.all = 0x00000000;
|
||||
ECanbMboxes.MBOX16.MSGCTRL.all = 0x00000000;
|
||||
ECanbMboxes.MBOX17.MSGCTRL.all = 0x00000000;
|
||||
ECanbMboxes.MBOX18.MSGCTRL.all = 0x00000000;
|
||||
ECanbMboxes.MBOX19.MSGCTRL.all = 0x00000000;
|
||||
ECanbMboxes.MBOX20.MSGCTRL.all = 0x00000000;
|
||||
ECanbMboxes.MBOX21.MSGCTRL.all = 0x00000000;
|
||||
ECanbMboxes.MBOX22.MSGCTRL.all = 0x00000000;
|
||||
ECanbMboxes.MBOX23.MSGCTRL.all = 0x00000000;
|
||||
ECanbMboxes.MBOX24.MSGCTRL.all = 0x00000000;
|
||||
ECanbMboxes.MBOX25.MSGCTRL.all = 0x00000000;
|
||||
ECanbMboxes.MBOX26.MSGCTRL.all = 0x00000000;
|
||||
ECanbMboxes.MBOX27.MSGCTRL.all = 0x00000000;
|
||||
ECanbMboxes.MBOX28.MSGCTRL.all = 0x00000000;
|
||||
ECanbMboxes.MBOX29.MSGCTRL.all = 0x00000000;
|
||||
ECanbMboxes.MBOX30.MSGCTRL.all = 0x00000000;
|
||||
ECanbMboxes.MBOX31.MSGCTRL.all = 0x00000000;
|
||||
|
||||
// TAn, RMPn, GIFn bits are all zero upon reset and are cleared again
|
||||
// as a matter of precaution.
|
||||
|
||||
ECanbRegs.CANTA.all = 0xFFFFFFFF; /* Clear all TAn bits */
|
||||
|
||||
ECanbRegs.CANRMP.all = 0xFFFFFFFF; /* Clear all RMPn bits */
|
||||
|
||||
ECanbRegs.CANGIF0.all = 0xFFFFFFFF; /* Clear all interrupt flag bits */
|
||||
ECanbRegs.CANGIF1.all = 0xFFFFFFFF;
|
||||
|
||||
|
||||
/* Configure bit timing parameters for eCANB*/
|
||||
|
||||
ECanbShadow.CANMC.all = ECanbRegs.CANMC.all;
|
||||
ECanbShadow.CANMC.bit.CCR = 1 ; // Set CCR = 1
|
||||
ECanbRegs.CANMC.all = ECanbShadow.CANMC.all;
|
||||
|
||||
ECanbShadow.CANES.all = ECanbRegs.CANES.all;
|
||||
|
||||
do
|
||||
{
|
||||
ECanbShadow.CANES.all = ECanbRegs.CANES.all;
|
||||
} while(ECanbShadow.CANES.bit.CCE != 1 ); // Wait for CCE bit to be cleared..
|
||||
|
||||
|
||||
ECanbShadow.CANBTC.all = 0;
|
||||
|
||||
#if (CPU_FRQ_150MHZ) // CPU_FRQ_150MHz is defined in DSP2833x_Examples.h
|
||||
/* The following block for all 150 MHz SYSCLKOUT (75 MHz CAN clock) - default. Bit rate = 1 Mbps
|
||||
See Note at end of file */
|
||||
ECanbShadow.CANBTC.bit.BRPREG = 4;
|
||||
ECanbShadow.CANBTC.bit.TSEG2REG = 2;
|
||||
ECanbShadow.CANBTC.bit.TSEG1REG = 10;
|
||||
#endif
|
||||
#if (CPU_FRQ_100MHZ) // CPU_FRQ_100MHz is defined in DSP2833x_Examples.h
|
||||
/* The following block is only for 100 MHz SYSCLKOUT (50 MHz CAN clock). Bit rate = 1 Mbps
|
||||
See Note at end of file */
|
||||
ECanbShadow.CANBTC.bit.BRPREG = 4;
|
||||
ECanbShadow.CANBTC.bit.TSEG2REG = 1;
|
||||
ECanbShadow.CANBTC.bit.TSEG1REG = 6;
|
||||
#endif
|
||||
|
||||
ECanbShadow.CANBTC.bit.SAM = 1;
|
||||
ECanbRegs.CANBTC.all = ECanbShadow.CANBTC.all;
|
||||
|
||||
ECanbShadow.CANMC.all = ECanbRegs.CANMC.all;
|
||||
ECanbShadow.CANMC.bit.CCR = 0 ; // Set CCR = 0
|
||||
ECanbRegs.CANMC.all = ECanbShadow.CANMC.all;
|
||||
|
||||
ECanbShadow.CANES.all = ECanbRegs.CANES.all;
|
||||
|
||||
do
|
||||
{
|
||||
ECanbShadow.CANES.all = ECanbRegs.CANES.all;
|
||||
} while(ECanbShadow.CANES.bit.CCE != 0 ); // Wait for CCE bit to be cleared..
|
||||
|
||||
|
||||
/* Disable all Mailboxes */
|
||||
ECanbRegs.CANME.all = 0; // Required before writing the MSGIDs
|
||||
|
||||
EDIS;
|
||||
}
|
||||
#endif // if DSP28_ECANB
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Example: InitECanGpio:
|
||||
//---------------------------------------------------------------------------
|
||||
// This function initializes GPIO pins to function as eCAN pins
|
||||
//
|
||||
// Each GPIO pin can be configured as a GPIO pin or up to 3 different
|
||||
// peripheral functional pins. By default all pins come up as GPIO
|
||||
// inputs after reset.
|
||||
//
|
||||
// Caution:
|
||||
// Only one GPIO pin should be enabled for CANTXA/B operation.
|
||||
// Only one GPIO pin shoudl be enabled for CANRXA/B operation.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
|
||||
void InitECanGpio(void)
|
||||
{
|
||||
InitECanaGpio();
|
||||
#if (DSP28_ECANB)
|
||||
InitECanbGpio();
|
||||
#endif // if DSP28_ECANB
|
||||
}
|
||||
|
||||
void InitECanaGpio(void)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
/* Enable internal pull-up for the selected CAN pins */
|
||||
// Pull-ups can be enabled or disabled by the user.
|
||||
// This will enable the pullups for the specified pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO30 = 0; // Enable pull-up for GPIO30 (CANRXA)
|
||||
// GpioCtrlRegs.GPAPUD.bit.GPIO18 = 0; // Enable pull-up for GPIO18 (CANRXA)
|
||||
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO31 = 0; // Enable pull-up for GPIO31 (CANTXA)
|
||||
// GpioCtrlRegs.GPAPUD.bit.GPIO19 = 0; // Enable pull-up for GPIO19 (CANTXA)
|
||||
|
||||
/* Set qualification for selected CAN pins to asynch only */
|
||||
// Inputs are synchronized to SYSCLKOUT by default.
|
||||
// This will select asynch (no qualification) for the selected pins.
|
||||
|
||||
GpioCtrlRegs.GPAQSEL2.bit.GPIO30 = 3; // Asynch qual for GPIO30 (CANRXA)
|
||||
// GpioCtrlRegs.GPAQSEL2.bit.GPIO18 = 3; // Asynch qual for GPIO18 (CANRXA)
|
||||
|
||||
|
||||
/* Configure eCAN-A pins using GPIO regs*/
|
||||
// This specifies which of the possible GPIO pins will be eCAN functional pins.
|
||||
|
||||
GpioCtrlRegs.GPAMUX2.bit.GPIO30 = 1; // Configure GPIO30 for CANRXA operation
|
||||
// GpioCtrlRegs.GPAMUX2.bit.GPIO18 = 3; // Configure GPIO18 for CANRXA operation
|
||||
GpioCtrlRegs.GPAMUX2.bit.GPIO31 = 1; // Configure GPIO31 for CANTXA operation
|
||||
// GpioCtrlRegs.GPAMUX2.bit.GPIO19 = 3; // Configure GPIO19 for CANTXA operation
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
#if (DSP28_ECANB)
|
||||
void InitECanbGpio(void)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
/* Enable internal pull-up for the selected CAN pins */
|
||||
// Pull-ups can be enabled or disabled by the user.
|
||||
// This will enable the pullups for the specified pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO8 = 0; // Enable pull-up for GPIO8 (CANTXB)
|
||||
// GpioCtrlRegs.GPAPUD.bit.GPIO12 = 0; // Enable pull-up for GPIO12 (CANTXB)
|
||||
// GpioCtrlRegs.GPAPUD.bit.GPIO16 = 0; // Enable pull-up for GPIO16 (CANTXB)
|
||||
// GpioCtrlRegs.GPAPUD.bit.GPIO20 = 0; // Enable pull-up for GPIO20 (CANTXB)
|
||||
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO10 = 0; // Enable pull-up for GPIO10 (CANRXB)
|
||||
// GpioCtrlRegs.GPAPUD.bit.GPIO13 = 0; // Enable pull-up for GPIO13 (CANRXB)
|
||||
// GpioCtrlRegs.GPAPUD.bit.GPIO17 = 0; // Enable pull-up for GPIO17 (CANRXB)
|
||||
// GpioCtrlRegs.GPAPUD.bit.GPIO21 = 0; // Enable pull-up for GPIO21 (CANRXB)
|
||||
|
||||
/* Set qualification for selected CAN pins to asynch only */
|
||||
// Inputs are synchronized to SYSCLKOUT by default.
|
||||
// This will select asynch (no qualification) for the selected pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAQSEL1.bit.GPIO10 = 3; // Asynch qual for GPIO10 (CANRXB)
|
||||
// GpioCtrlRegs.GPAQSEL1.bit.GPIO13 = 3; // Asynch qual for GPIO13 (CANRXB)
|
||||
// GpioCtrlRegs.GPAQSEL2.bit.GPIO17 = 3; // Asynch qual for GPIO17 (CANRXB)
|
||||
// GpioCtrlRegs.GPAQSEL2.bit.GPIO21 = 3; // Asynch qual for GPIO21 (CANRXB)
|
||||
|
||||
/* Configure eCAN-B pins using GPIO regs*/
|
||||
// This specifies which of the possible GPIO pins will be eCAN functional pins.
|
||||
|
||||
GpioCtrlRegs.GPAMUX1.bit.GPIO8 = 2; // Configure GPIO8 for CANTXB operation
|
||||
// GpioCtrlRegs.GPAMUX1.bit.GPIO12 = 2; // Configure GPIO12 for CANTXB operation
|
||||
// GpioCtrlRegs.GPAMUX2.bit.GPIO16 = 2; // Configure GPIO16 for CANTXB operation
|
||||
// GpioCtrlRegs.GPAMUX2.bit.GPIO20 = 3; // Configure GPIO20 for CANTXB operation
|
||||
|
||||
GpioCtrlRegs.GPAMUX1.bit.GPIO10 = 2; // Configure GPIO10 for CANRXB operation
|
||||
// GpioCtrlRegs.GPAMUX1.bit.GPIO13 = 2; // Configure GPIO13 for CANRXB operation
|
||||
// GpioCtrlRegs.GPAMUX2.bit.GPIO17 = 2; // Configure GPIO17 for CANRXB operation
|
||||
// GpioCtrlRegs.GPAMUX2.bit.GPIO21 = 3; // Configure GPIO21 for CANRXB operation
|
||||
|
||||
EDIS;
|
||||
}
|
||||
#endif // if DSP28_ECANB
|
||||
|
||||
/*
|
||||
Note: Bit timing parameters must be chosen based on the network parameters such
|
||||
as the sampling point desired and the propagation delay of the network.
|
||||
The propagation delay is a function of length of the cable, delay introduced by
|
||||
the transceivers and opto/galvanic-isolators (if any).
|
||||
|
||||
The parameters used in this file must be changed taking into account the above
|
||||
mentioned factors in order to arrive at the bit-timing parameters suitable
|
||||
for a network.
|
||||
|
||||
*/
|
255
Source/External/v120/DSP2833x_common/source/DSP2833x_ECap.c
vendored
Normal file
255
Source/External/v120/DSP2833x_common/source/DSP2833x_ECap.c
vendored
Normal file
@ -0,0 +1,255 @@
|
||||
// TI File $Revision: /main/2 $
|
||||
// Checkin $Date: March 15, 2007 16:54:36 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: DSP2833x_ECap.c
|
||||
//
|
||||
// TITLE: DSP2833x eCAP Initialization & Support Functions.
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
|
||||
#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File
|
||||
#include "DSP2833x_Examples.h" // DSP2833x Examples Include File
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// InitECap:
|
||||
//---------------------------------------------------------------------------
|
||||
// This function initializes the eCAP(s) to a known state.
|
||||
//
|
||||
void InitECap(void)
|
||||
{
|
||||
// Initialize eCAP1/2/3
|
||||
|
||||
//tbd...
|
||||
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Example: InitECapGpio:
|
||||
//---------------------------------------------------------------------------
|
||||
// This function initializes GPIO pins to function as ECAP pins
|
||||
//
|
||||
// Each GPIO pin can be configured as a GPIO pin or up to 3 different
|
||||
// peripheral functional pins. By default all pins come up as GPIO
|
||||
// inputs after reset.
|
||||
//
|
||||
// Caution:
|
||||
// For each eCAP peripheral
|
||||
// Only one GPIO pin should be enabled for ECAP operation.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
void InitECapGpio()
|
||||
{
|
||||
|
||||
InitECap1Gpio();
|
||||
#if (DSP28_ECAP2)
|
||||
InitECap2Gpio();
|
||||
#endif // endif DSP28_ECAP2
|
||||
#if (DSP28_ECAP3)
|
||||
InitECap3Gpio();
|
||||
#endif // endif DSP28_ECAP3
|
||||
#if (DSP28_ECAP4)
|
||||
InitECap4Gpio();
|
||||
#endif // endif DSP28_ECAP4
|
||||
#if (DSP28_ECAP5)
|
||||
InitECap5Gpio();
|
||||
#endif // endif DSP28_ECAP5
|
||||
#if (DSP28_ECAP6)
|
||||
InitECap6Gpio();
|
||||
#endif // endif DSP28_ECAP6
|
||||
}
|
||||
|
||||
void InitECap1Gpio(void)
|
||||
{
|
||||
EALLOW;
|
||||
/* Enable internal pull-up for the selected pins */
|
||||
// Pull-ups can be enabled or disabled by the user.
|
||||
// This will enable the pullups for the specified pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
// GpioCtrlRegs.GPAPUD.bit.GPIO5 = 0; // Enable pull-up on GPIO5 (CAP1)
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO24 = 0; // Enable pull-up on GPIO24 (CAP1)
|
||||
// GpioCtrlRegs.GPBPUD.bit.GPIO34 = 0; // Enable pull-up on GPIO34 (CAP1)
|
||||
|
||||
|
||||
// Inputs are synchronized to SYSCLKOUT by default.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
// GpioCtrlRegs.GPAQSEL1.bit.GPIO5 = 0; // Synch to SYSCLKOUT GPIO5 (CAP1)
|
||||
GpioCtrlRegs.GPAQSEL2.bit.GPIO24 = 0; // Synch to SYSCLKOUT GPIO24 (CAP1)
|
||||
// GpioCtrlRegs.GPBQSEL1.bit.GPIO34 = 0; // Synch to SYSCLKOUT GPIO34 (CAP1)
|
||||
|
||||
/* Configure eCAP-1 pins using GPIO regs*/
|
||||
// This specifies which of the possible GPIO pins will be eCAP1 functional pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
// GpioCtrlRegs.GPAMUX1.bit.GPIO5 = 3; // Configure GPIO5 as CAP1
|
||||
GpioCtrlRegs.GPAMUX2.bit.GPIO24 = 1; // Configure GPIO24 as CAP1
|
||||
// GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 1; // Configure GPIO24 as CAP1
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
#if DSP28_ECAP2
|
||||
void InitECap2Gpio(void)
|
||||
{
|
||||
EALLOW;
|
||||
/* Enable internal pull-up for the selected pins */
|
||||
// Pull-ups can be enabled or disabled by the user.
|
||||
// This will enable the pullups for the specified pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO7 = 0; // Enable pull-up on GPIO7 (CAP2)
|
||||
// GpioCtrlRegs.GPAPUD.bit.GPIO25 = 0; // Enable pull-up on GPIO25 (CAP2)
|
||||
// GpioCtrlRegs.GPBPUD.bit.GPIO37 = 0; // Enable pull-up on GPIO37 (CAP2)
|
||||
|
||||
// Inputs are synchronized to SYSCLKOUT by default.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAQSEL1.bit.GPIO7 = 0; // Synch to SYSCLKOUT GPIO7 (CAP2)
|
||||
// GpioCtrlRegs.GPAQSEL2.bit.GPIO25 = 0; // Synch to SYSCLKOUT GPIO25 (CAP2)
|
||||
// GpioCtrlRegs.GPBQSEL1.bit.GPIO37 = 0; // Synch to SYSCLKOUT GPIO37 (CAP2)
|
||||
|
||||
/* Configure eCAP-2 pins using GPIO regs*/
|
||||
// This specifies which of the possible GPIO pins will be eCAP2 functional pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAMUX1.bit.GPIO7 = 3; // Configure GPIO7 as CAP2
|
||||
// GpioCtrlRegs.GPAMUX2.bit.GPIO25 = 1; // Configure GPIO25 as CAP2
|
||||
// GpioCtrlRegs.GPBMUX1.bit.GPIO37 = 3; // Configure GPIO37 as CAP2
|
||||
|
||||
EDIS;
|
||||
}
|
||||
#endif // endif DSP28_ECAP2
|
||||
|
||||
#if DSP28_ECAP3
|
||||
void InitECap3Gpio(void)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
/* Enable internal pull-up for the selected pins */
|
||||
// Pull-ups can be enabled or disabled by the user.
|
||||
// This will enable the pullups for the specified pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO9 = 0; // Enable pull-up on GPIO9 (CAP3)
|
||||
// GpioCtrlRegs.GPAPUD.bit.GPIO26 = 0; // Enable pull-up on GPIO26 (CAP3)
|
||||
|
||||
// Inputs are synchronized to SYSCLKOUT by default.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAQSEL1.bit.GPIO9 = 0; // Synch to SYSCLKOUT GPIO9 (CAP3)
|
||||
// GpioCtrlRegs.GPAQSEL2.bit.GPIO26 = 0; // Synch to SYSCLKOUT GPIO26 (CAP3)
|
||||
|
||||
/* Configure eCAP-3 pins using GPIO regs*/
|
||||
// This specifies which of the possible GPIO pins will be eCAP3 functional pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAMUX1.bit.GPIO9 = 3; // Configure GPIO9 as CAP3
|
||||
// GpioCtrlRegs.GPAMUX2.bit.GPIO26 = 1; // Configure GPIO26 as CAP3
|
||||
|
||||
EDIS;
|
||||
}
|
||||
#endif // endif DSP28_ECAP3
|
||||
|
||||
|
||||
#if DSP28_ECAP4
|
||||
void InitECap4Gpio(void)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
/* Enable internal pull-up for the selected pins */
|
||||
// Pull-ups can be enabled or disabled by the user.
|
||||
// This will enable the pullups for the specified pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO11 = 0; // Enable pull-up on GPIO11 (CAP4)
|
||||
// GpioCtrlRegs.GPAPUD.bit.GPIO27 = 0; // Enable pull-up on GPIO27 (CAP4)
|
||||
|
||||
// Inputs are synchronized to SYSCLKOUT by default.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAQSEL1.bit.GPIO11 = 0; // Synch to SYSCLKOUT GPIO11 (CAP4)
|
||||
// GpioCtrlRegs.GPAQSEL2.bit.GPIO27 = 0; // Synch to SYSCLKOUT GPIO27 (CAP4)
|
||||
|
||||
/* Configure eCAP-4 pins using GPIO regs*/
|
||||
// This specifies which of the possible GPIO pins will be eCAP4 functional pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAMUX1.bit.GPIO11 = 3; // Configure GPIO11 as CAP4
|
||||
// GpioCtrlRegs.GPAMUX2.bit.GPIO27 = 1; // Configure GPIO27 as CAP4
|
||||
|
||||
EDIS;
|
||||
}
|
||||
#endif // endif DSP28_ECAP4
|
||||
|
||||
|
||||
#if DSP28_ECAP5
|
||||
void InitECap5Gpio(void)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
/* Enable internal pull-up for the selected pins */
|
||||
// Pull-ups can be enabled or disabled by the user.
|
||||
// This will enable the pullups for the specified pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO3 = 0; // Enable pull-up on GPIO3 (CAP5)
|
||||
// GpioCtrlRegs.GPBPUD.bit.GPIO48 = 0; // Enable pull-up on GPIO48 (CAP5)
|
||||
|
||||
// Inputs are synchronized to SYSCLKOUT by default.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAQSEL1.bit.GPIO3 = 0; // Synch to SYSCLKOUT GPIO3 (CAP5)
|
||||
// GpioCtrlRegs.GPBQSEL2.bit.GPIO48 = 0; // Synch to SYSCLKOUT GPIO48 (CAP5)
|
||||
|
||||
/* Configure eCAP-5 pins using GPIO regs*/
|
||||
// This specifies which of the possible GPIO pins will be eCAP5 functional pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAMUX1.bit.GPIO3 = 2; // Configure GPIO3 as CAP5
|
||||
// GpioCtrlRegs.GPBMUX2.bit.GPIO48 = 1; // Configure GPIO48 as CAP5
|
||||
|
||||
EDIS;
|
||||
}
|
||||
#endif // endif DSP28_ECAP5
|
||||
|
||||
|
||||
#if DSP28_ECAP6
|
||||
void InitECap6Gpio(void)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
/* Enable internal pull-up for the selected pins */
|
||||
// Pull-ups can be enabled or disabled by the user.
|
||||
// This will enable the pullups for the specified pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO1 = 0; // Enable pull-up on GPIO1 (CAP6)
|
||||
// GpioCtrlRegs.GPBPUD.bit.GPIO49 = 0; // Enable pull-up on GPIO49 (CAP6)
|
||||
|
||||
// Inputs are synchronized to SYSCLKOUT by default.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAQSEL1.bit.GPIO1 = 0; // Synch to SYSCLKOUT GPIO1 (CAP6)
|
||||
// GpioCtrlRegs.GPBQSEL2.bit.GPIO49 = 0; // Synch to SYSCLKOUT GPIO49 (CAP6)
|
||||
|
||||
/* Configure eCAP-5 pins using GPIO regs*/
|
||||
// This specifies which of the possible GPIO pins will be eCAP6 functional pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAMUX1.bit.GPIO1 = 2; // Configure GPIO1 as CAP6
|
||||
// GpioCtrlRegs.GPBMUX2.bit.GPIO49 = 1; // Configure GPIO49 as CAP6
|
||||
|
||||
EDIS;
|
||||
}
|
||||
#endif // endif DSP28_ECAP6
|
||||
|
||||
|
||||
|
||||
//===========================================================================
|
||||
// End of file.
|
||||
//===========================================================================
|
316
Source/External/v120/DSP2833x_common/source/DSP2833x_EPwm.c
vendored
Normal file
316
Source/External/v120/DSP2833x_common/source/DSP2833x_EPwm.c
vendored
Normal file
@ -0,0 +1,316 @@
|
||||
// TI File $Revision: /main/1 $
|
||||
// Checkin $Date: August 18, 2006 13:46:19 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: DSP2833x_EPwm.c
|
||||
//
|
||||
// TITLE: DSP2833x ePWM Initialization & Support Functions.
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
|
||||
#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File
|
||||
#include "DSP2833x_Examples.h" // DSP2833x Examples Include File
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// InitEPwm:
|
||||
//---------------------------------------------------------------------------
|
||||
// This function initializes the ePWM(s) to a known state.
|
||||
//
|
||||
void InitEPwm(void)
|
||||
{
|
||||
// Initialize ePWM1/2/3/4/5/6
|
||||
|
||||
//tbd...
|
||||
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Example: InitEPwmGpio:
|
||||
//---------------------------------------------------------------------------
|
||||
// This function initializes GPIO pins to function as ePWM pins
|
||||
//
|
||||
// Each GPIO pin can be configured as a GPIO pin or up to 3 different
|
||||
// peripheral functional pins. By default all pins come up as GPIO
|
||||
// inputs after reset.
|
||||
//
|
||||
|
||||
void InitEPwmGpio(void)
|
||||
{
|
||||
InitEPwm1Gpio();
|
||||
InitEPwm2Gpio();
|
||||
InitEPwm3Gpio();
|
||||
#if DSP28_EPWM4
|
||||
InitEPwm4Gpio();
|
||||
#endif // endif DSP28_EPWM4
|
||||
#if DSP28_EPWM5
|
||||
InitEPwm5Gpio();
|
||||
#endif // endif DSP28_EPWM5
|
||||
#if DSP28_EPWM6
|
||||
InitEPwm6Gpio();
|
||||
#endif // endif DSP28_EPWM6
|
||||
}
|
||||
|
||||
void InitEPwm1Gpio(void)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
/* Enable internal pull-up for the selected pins */
|
||||
// Pull-ups can be enabled or disabled by the user.
|
||||
// This will enable the pullups for the specified pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO0 = 0; // Enable pull-up on GPIO0 (EPWM1A)
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO1 = 0; // Enable pull-up on GPIO1 (EPWM1B)
|
||||
|
||||
/* Configure ePWM-1 pins using GPIO regs*/
|
||||
// This specifies which of the possible GPIO pins will be ePWM1 functional pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 1; // Configure GPIO0 as EPWM1A
|
||||
GpioCtrlRegs.GPAMUX1.bit.GPIO1 = 1; // Configure GPIO1 as EPWM1B
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
void InitEPwm2Gpio(void)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
/* Enable internal pull-up for the selected pins */
|
||||
// Pull-ups can be enabled or disabled by the user.
|
||||
// This will enable the pullups for the specified pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO2 = 0; // Enable pull-up on GPIO2 (EPWM2A)
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO3 = 0; // Enable pull-up on GPIO3 (EPWM3B)
|
||||
|
||||
/* Configure ePWM-2 pins using GPIO regs*/
|
||||
// This specifies which of the possible GPIO pins will be ePWM2 functional pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAMUX1.bit.GPIO2 = 1; // Configure GPIO2 as EPWM2A
|
||||
GpioCtrlRegs.GPAMUX1.bit.GPIO3 = 1; // Configure GPIO3 as EPWM2B
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
void InitEPwm3Gpio(void)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
/* Enable internal pull-up for the selected pins */
|
||||
// Pull-ups can be enabled or disabled by the user.
|
||||
// This will enable the pullups for the specified pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO4 = 0; // Enable pull-up on GPIO4 (EPWM3A)
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO5 = 0; // Enable pull-up on GPIO5 (EPWM3B)
|
||||
|
||||
/* Configure ePWM-3 pins using GPIO regs*/
|
||||
// This specifies which of the possible GPIO pins will be ePWM3 functional pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAMUX1.bit.GPIO4 = 1; // Configure GPIO4 as EPWM3A
|
||||
GpioCtrlRegs.GPAMUX1.bit.GPIO5 = 1; // Configure GPIO5 as EPWM3B
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
|
||||
#if DSP28_EPWM4
|
||||
void InitEPwm4Gpio(void)
|
||||
{
|
||||
EALLOW;
|
||||
/* Enable internal pull-up for the selected pins */
|
||||
// Pull-ups can be enabled or disabled by the user.
|
||||
// This will enable the pullups for the specified pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO6 = 0; // Enable pull-up on GPIO6 (EPWM4A)
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO7 = 0; // Enable pull-up on GPIO7 (EPWM4B)
|
||||
|
||||
/* Configure ePWM-4 pins using GPIO regs*/
|
||||
// This specifies which of the possible GPIO pins will be ePWM4 functional pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAMUX1.bit.GPIO6 = 1; // Configure GPIO6 as EPWM4A
|
||||
GpioCtrlRegs.GPAMUX1.bit.GPIO7 = 1; // Configure GPIO7 as EPWM4B
|
||||
|
||||
EDIS;
|
||||
}
|
||||
#endif // endif DSP28_EPWM4
|
||||
|
||||
|
||||
#if DSP28_EPWM5
|
||||
void InitEPwm5Gpio(void)
|
||||
{
|
||||
EALLOW;
|
||||
/* Enable internal pull-up for the selected pins */
|
||||
// Pull-ups can be enabled or disabled by the user.
|
||||
// This will enable the pullups for the specified pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO8 = 0; // Enable pull-up on GPIO8 (EPWM5A)
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO9 = 0; // Enable pull-up on GPIO9 (EPWM5B)
|
||||
|
||||
/* Configure ePWM-5 pins using GPIO regs*/
|
||||
// This specifies which of the possible GPIO pins will be ePWM5 functional pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAMUX1.bit.GPIO8 = 1; // Configure GPIO8 as EPWM5A
|
||||
GpioCtrlRegs.GPAMUX1.bit.GPIO9 = 1; // Configure GPIO9 as EPWM5B
|
||||
|
||||
EDIS;
|
||||
}
|
||||
#endif // endif DSP28_EPWM5
|
||||
|
||||
|
||||
#if DSP28_EPWM6
|
||||
void InitEPwm6Gpio(void)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
/* Enable internal pull-up for the selected pins */
|
||||
// Pull-ups can be enabled or disabled by the user.
|
||||
// This will enable the pullups for the specified pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO10 = 0; // Enable pull-up on GPIO10 (EPWM6A)
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO11 = 0; // Enable pull-up on GPIO11 (EPWM6B)
|
||||
|
||||
/* Configure ePWM-6 pins using GPIO regs*/
|
||||
// This specifies which of the possible GPIO pins will be ePWM6 functional pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAMUX1.bit.GPIO10 = 1; // Configure GPIO10 as EPWM6A
|
||||
GpioCtrlRegs.GPAMUX1.bit.GPIO11 = 1; // Configure GPIO11 as EPWM6B
|
||||
|
||||
EDIS;
|
||||
}
|
||||
#endif // endif DSP28_EPWM6
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Example: InitEPwmSyncGpio:
|
||||
//---------------------------------------------------------------------------
|
||||
// This function initializes GPIO pins to function as ePWM Synch pins
|
||||
//
|
||||
|
||||
void InitEPwmSyncGpio(void)
|
||||
{
|
||||
|
||||
EALLOW;
|
||||
|
||||
/* Configure EPWMSYNCI */
|
||||
|
||||
/* Enable internal pull-up for the selected pins */
|
||||
// Pull-ups can be enabled or disabled by the user.
|
||||
// This will enable the pullups for the specified pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO6 = 0; // Enable pull-up on GPIO6 (EPWMSYNCI)
|
||||
// GpioCtrlRegs.GPBPUD.bit.GPIO32 = 0; // Enable pull-up on GPIO32 (EPWMSYNCI)
|
||||
|
||||
/* Set qualification for selected pins to asynch only */
|
||||
// This will select synch to SYSCLKOUT for the selected pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAQSEL1.bit.GPIO6 = 0; // Synch to SYSCLKOUT GPIO6 (EPWMSYNCI)
|
||||
// GpioCtrlRegs.GPBQSEL1.bit.GPIO32 = 0; // Synch to SYSCLKOUT GPIO32 (EPWMSYNCI)
|
||||
|
||||
/* Configure EPwmSync pins using GPIO regs*/
|
||||
// This specifies which of the possible GPIO pins will be EPwmSync functional pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAMUX1.bit.GPIO6 = 2; // Enable pull-up on GPIO6 (EPWMSYNCI)
|
||||
// GpioCtrlRegs.GPBMUX1.bit.GPIO32 = 2; // Enable pull-up on GPIO32 (EPWMSYNCI)
|
||||
|
||||
|
||||
|
||||
/* Configure EPWMSYNC0 */
|
||||
|
||||
/* Enable internal pull-up for the selected pins */
|
||||
// Pull-ups can be enabled or disabled by the user.
|
||||
// This will enable the pullups for the specified pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
// GpioCtrlRegs.GPAPUD.bit.GPIO6 = 0; // Enable pull-up on GPIO6 (EPWMSYNC0)
|
||||
GpioCtrlRegs.GPBPUD.bit.GPIO33 = 0; // Enable pull-up on GPIO33 (EPWMSYNC0)
|
||||
|
||||
// GpioCtrlRegs.GPAMUX1.bit.GPIO6 = 3; // Enable pull-up on GPIO6 (EPWMSYNC0)
|
||||
GpioCtrlRegs.GPBMUX1.bit.GPIO33 = 2; // Enable pull-up on GPIO33 (EPWMSYNC0)
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Example: InitTzGpio:
|
||||
//---------------------------------------------------------------------------
|
||||
// This function initializes GPIO pins to function as Trip Zone (TZ) pins
|
||||
//
|
||||
// Each GPIO pin can be configured as a GPIO pin or up to 3 different
|
||||
// peripheral functional pins. By default all pins come up as GPIO
|
||||
// inputs after reset.
|
||||
//
|
||||
|
||||
void InitTzGpio(void)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
/* Enable internal pull-up for the selected pins */
|
||||
// Pull-ups can be enabled or disabled by the user.
|
||||
// This will enable the pullups for the specified pins.
|
||||
// Comment out other unwanted lines.
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO12 = 0; // Enable pull-up on GPIO12 (TZ1)
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO13 = 0; // Enable pull-up on GPIO13 (TZ2)
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO14 = 0; // Enable pull-up on GPIO14 (TZ3)
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO15 = 0; // Enable pull-up on GPIO15 (TZ4)
|
||||
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO16 = 0; // Enable pull-up on GPIO16 (TZ5)
|
||||
// GpioCtrlRegs.GPAPUD.bit.GPIO28 = 0; // Enable pull-up on GPIO28 (TZ5)
|
||||
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO17 = 0; // Enable pull-up on GPIO17 (TZ6)
|
||||
// GpioCtrlRegs.GPAPUD.bit.GPIO29 = 0; // Enable pull-up on GPIO29 (TZ6)
|
||||
|
||||
/* Set qualification for selected pins to asynch only */
|
||||
// Inputs are synchronized to SYSCLKOUT by default.
|
||||
// This will select asynch (no qualification) for the selected pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAQSEL1.bit.GPIO12 = 3; // Asynch input GPIO12 (TZ1)
|
||||
GpioCtrlRegs.GPAQSEL1.bit.GPIO13 = 3; // Asynch input GPIO13 (TZ2)
|
||||
GpioCtrlRegs.GPAQSEL1.bit.GPIO14 = 3; // Asynch input GPIO14 (TZ3)
|
||||
GpioCtrlRegs.GPAQSEL1.bit.GPIO15 = 3; // Asynch input GPIO15 (TZ4)
|
||||
|
||||
GpioCtrlRegs.GPAQSEL2.bit.GPIO16 = 3; // Asynch input GPIO16 (TZ5)
|
||||
// GpioCtrlRegs.GPAQSEL2.bit.GPIO28 = 3; // Asynch input GPIO28 (TZ5)
|
||||
|
||||
GpioCtrlRegs.GPAQSEL2.bit.GPIO17 = 3; // Asynch input GPIO17 (TZ6)
|
||||
// GpioCtrlRegs.GPAQSEL2.bit.GPIO29 = 3; // Asynch input GPIO29 (TZ6)
|
||||
|
||||
|
||||
/* Configure TZ pins using GPIO regs*/
|
||||
// This specifies which of the possible GPIO pins will be TZ functional pins.
|
||||
// Comment out other unwanted lines.
|
||||
GpioCtrlRegs.GPAMUX1.bit.GPIO12 = 1; // Configure GPIO12 as TZ1
|
||||
GpioCtrlRegs.GPAMUX1.bit.GPIO13 = 1; // Configure GPIO13 as TZ2
|
||||
GpioCtrlRegs.GPAMUX1.bit.GPIO14 = 1; // Configure GPIO14 as TZ3
|
||||
GpioCtrlRegs.GPAMUX1.bit.GPIO15 = 1; // Configure GPIO15 as TZ4
|
||||
|
||||
GpioCtrlRegs.GPAMUX2.bit.GPIO16 = 3; // Configure GPIO16 as TZ5
|
||||
// GpioCtrlRegs.GPAMUX2.bit.GPIO28 = 3; // Configure GPIO28 as TZ5
|
||||
|
||||
GpioCtrlRegs.GPAMUX2.bit.GPIO17 = 3; // Configure GPIO17 as TZ6
|
||||
// GpioCtrlRegs.GPAMUX2.bit.GPIO29 = 3; // Configure GPIO29 as TZ6
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//===========================================================================
|
||||
// End of file.
|
||||
//===========================================================================
|
154
Source/External/v120/DSP2833x_common/source/DSP2833x_EQep.c
vendored
Normal file
154
Source/External/v120/DSP2833x_common/source/DSP2833x_EQep.c
vendored
Normal file
@ -0,0 +1,154 @@
|
||||
// TI File $Revision: /main/3 $
|
||||
// Checkin $Date: July 27, 2007 11:55:20 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: DSP2833x_EQep.c
|
||||
//
|
||||
// TITLE: DSP2833x eQEP Initialization & Support Functions.
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
|
||||
#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File
|
||||
#include "DSP2833x_Examples.h" // DSP2833x Examples Include File
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// InitEQep:
|
||||
//---------------------------------------------------------------------------
|
||||
// This function initializes the eQEP(s) to a known state.
|
||||
//
|
||||
void InitEQep(void)
|
||||
{
|
||||
// Initialize eQEP1/2
|
||||
|
||||
//tbd...
|
||||
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Example: InitEQepGpio:
|
||||
//---------------------------------------------------------------------------
|
||||
// This function initializes GPIO pins to function as eQEP pins
|
||||
//
|
||||
// Each GPIO pin can be configured as a GPIO pin or up to 3 different
|
||||
// peripheral functional pins. By default all pins come up as GPIO
|
||||
// inputs after reset.
|
||||
//
|
||||
// Caution:
|
||||
// For each eQEP peripheral
|
||||
// Only one GPIO pin should be enabled for EQEPxA operation.
|
||||
// Only one GPIO pin should be enabled for EQEPxB operation.
|
||||
// Only one GPIO pin should be enabled for EQEPxS operation.
|
||||
// Only one GPIO pin should be enabled for EQEPxI operation.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
void InitEQepGpio()
|
||||
{
|
||||
#if DSP28_EQEP1
|
||||
InitEQep1Gpio();
|
||||
#endif // endif DSP28_EQEP1
|
||||
#if DSP28_EQEP2
|
||||
InitEQep2Gpio();
|
||||
#endif // endif DSP28_EQEP2
|
||||
}
|
||||
|
||||
#if DSP28_EQEP1
|
||||
void InitEQep1Gpio(void)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
/* Enable internal pull-up for the selected pins */
|
||||
// Pull-ups can be enabled or disabled by the user.
|
||||
// This will enable the pullups for the specified pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO20 = 0; // Enable pull-up on GPIO20 (EQEP1A)
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO21 = 0; // Enable pull-up on GPIO21 (EQEP1B)
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO22 = 0; // Enable pull-up on GPIO22 (EQEP1S)
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO23 = 0; // Enable pull-up on GPIO23 (EQEP1I)
|
||||
|
||||
// GpioCtrlRegs.GPBPUD.bit.GPIO50 = 0; // Enable pull-up on GPIO50 (EQEP1A)
|
||||
// GpioCtrlRegs.GPBPUD.bit.GPIO51 = 0; // Enable pull-up on GPIO51 (EQEP1B)
|
||||
// GpioCtrlRegs.GPBPUD.bit.GPIO52 = 0; // Enable pull-up on GPIO52 (EQEP1S)
|
||||
// GpioCtrlRegs.GPBPUD.bit.GPIO53 = 0; // Enable pull-up on GPIO53 (EQEP1I)
|
||||
|
||||
|
||||
// Inputs are synchronized to SYSCLKOUT by default.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAQSEL2.bit.GPIO20 = 0; // Sync to SYSCLKOUT GPIO20 (EQEP1A)
|
||||
GpioCtrlRegs.GPAQSEL2.bit.GPIO21 = 0; // Sync to SYSCLKOUT GPIO21 (EQEP1B)
|
||||
GpioCtrlRegs.GPAQSEL2.bit.GPIO22 = 0; // Sync to SYSCLKOUT GPIO22 (EQEP1S)
|
||||
GpioCtrlRegs.GPAQSEL2.bit.GPIO23 = 0; // Sync to SYSCLKOUT GPIO23 (EQEP1I)
|
||||
|
||||
// GpioCtrlRegs.GPBQSEL2.bit.GPIO50 = 0; // Sync to SYSCLKOUT GPIO50 (EQEP1A)
|
||||
// GpioCtrlRegs.GPBQSEL2.bit.GPIO51 = 0; // Sync to SYSCLKOUT GPIO51 (EQEP1B)
|
||||
// GpioCtrlRegs.GPBQSEL2.bit.GPIO52 = 0; // Sync to SYSCLKOUT GPIO52 (EQEP1S)
|
||||
// GpioCtrlRegs.GPBQSEL2.bit.GPIO53 = 0; // Sync to SYSCLKOUT GPIO53 (EQEP1I)
|
||||
|
||||
/* Configure eQEP-1 pins using GPIO regs*/
|
||||
// This specifies which of the possible GPIO pins will be eQEP1 functional pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAMUX2.bit.GPIO20 = 1; // Configure GPIO20 as EQEP1A
|
||||
GpioCtrlRegs.GPAMUX2.bit.GPIO21 = 1; // Configure GPIO21 as EQEP1B
|
||||
GpioCtrlRegs.GPAMUX2.bit.GPIO22 = 1; // Configure GPIO22 as EQEP1S
|
||||
GpioCtrlRegs.GPAMUX2.bit.GPIO23 = 1; // Configure GPIO23 as EQEP1I
|
||||
|
||||
// GpioCtrlRegs.GPBMUX2.bit.GPIO50 = 1; // Configure GPIO50 as EQEP1A
|
||||
// GpioCtrlRegs.GPBMUX2.bit.GPIO51 = 1; // Configure GPIO51 as EQEP1B
|
||||
// GpioCtrlRegs.GPBMUX2.bit.GPIO52 = 1; // Configure GPIO52 as EQEP1S
|
||||
// GpioCtrlRegs.GPBMUX2.bit.GPIO53 = 1; // Configure GPIO53 as EQEP1I
|
||||
|
||||
|
||||
EDIS;
|
||||
}
|
||||
#endif // if DSP28_EQEP1
|
||||
|
||||
|
||||
|
||||
#if DSP28_EQEP2
|
||||
void InitEQep2Gpio(void)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
/* Enable internal pull-up for the selected pins */
|
||||
// Pull-ups can be enabled or disabled by the user.
|
||||
// This will enable the pullups for the specified pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO24 = 0; // Enable pull-up on GPIO24 (EQEP2A)
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO25 = 0; // Enable pull-up on GPIO25 (EQEP2B)
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO26 = 0; // Enable pull-up on GPIO26 (EQEP2I)
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO27 = 0; // Enable pull-up on GPIO27 (EQEP2S)
|
||||
|
||||
// Inputs are synchronized to SYSCLKOUT by default.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAQSEL2.bit.GPIO24 = 0; // Sync to SYSCLKOUT GPIO24 (EQEP2A)
|
||||
GpioCtrlRegs.GPAQSEL2.bit.GPIO25 = 0; // Sync to SYSCLKOUT GPIO25 (EQEP2B)
|
||||
GpioCtrlRegs.GPAQSEL2.bit.GPIO26 = 0; // Sync to SYSCLKOUT GPIO26 (EQEP2I)
|
||||
GpioCtrlRegs.GPAQSEL2.bit.GPIO27 = 0; // Sync to SYSCLKOUT GPIO27 (EQEP2S)
|
||||
|
||||
/* Configure eQEP-2 pins using GPIO regs*/
|
||||
// This specifies which of the possible GPIO pins will be eQEP2 functional pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAMUX2.bit.GPIO24 = 2; // Configure GPIO24 as EQEP2A
|
||||
GpioCtrlRegs.GPAMUX2.bit.GPIO25 = 2; // Configure GPIO25 as EQEP2B
|
||||
GpioCtrlRegs.GPAMUX2.bit.GPIO26 = 2; // Configure GPIO26 as EQEP2I
|
||||
GpioCtrlRegs.GPAMUX2.bit.GPIO27 = 2; // Configure GPIO27 as EQEP2S
|
||||
|
||||
|
||||
EDIS;
|
||||
}
|
||||
#endif // endif DSP28_EQEP2
|
||||
|
||||
|
||||
|
||||
|
||||
//===========================================================================
|
||||
// End of file.
|
||||
//===========================================================================
|
69
Source/External/v120/DSP2833x_common/source/DSP2833x_Gpio.c
vendored
Normal file
69
Source/External/v120/DSP2833x_common/source/DSP2833x_Gpio.c
vendored
Normal file
@ -0,0 +1,69 @@
|
||||
// TI File $Revision: /main/1 $
|
||||
// Checkin $Date: August 18, 2006 13:46:25 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: DSP2833x_Gpio.c
|
||||
//
|
||||
// TITLE: DSP2833x General Purpose I/O Initialization & Support Functions.
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
|
||||
#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File
|
||||
#include "DSP2833x_Examples.h" // DSP2833x Examples Include File
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// InitGpio:
|
||||
//---------------------------------------------------------------------------
|
||||
// This function initializes the Gpio to a known (default) state.
|
||||
//
|
||||
// For more details on configuring GPIO's as peripheral functions,
|
||||
// refer to the individual peripheral examples and/or GPIO setup example.
|
||||
void InitGpio(void)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
// Each GPIO pin can be:
|
||||
// a) a GPIO input/output
|
||||
// b) peripheral function 1
|
||||
// c) peripheral function 2
|
||||
// d) peripheral function 3
|
||||
// By default, all are GPIO Inputs
|
||||
GpioCtrlRegs.GPAMUX1.all = 0x0000; // GPIO functionality GPIO0-GPIO15
|
||||
GpioCtrlRegs.GPAMUX2.all = 0x0000; // GPIO functionality GPIO16-GPIO31
|
||||
GpioCtrlRegs.GPBMUX1.all = 0x0000; // GPIO functionality GPIO32-GPIO39
|
||||
GpioCtrlRegs.GPBMUX2.all = 0x0000; // GPIO functionality GPIO48-GPIO63
|
||||
GpioCtrlRegs.GPCMUX1.all = 0x0000; // GPIO functionality GPIO64-GPIO79
|
||||
GpioCtrlRegs.GPCMUX2.all = 0x0000; // GPIO functionality GPIO80-GPIO95
|
||||
|
||||
GpioCtrlRegs.GPADIR.all = 0x0000; // GPIO0-GPIO31 are inputs
|
||||
GpioCtrlRegs.GPBDIR.all = 0x0000; // GPIO32-GPIO63 are inputs
|
||||
GpioCtrlRegs.GPCDIR.all = 0x0000; // GPI064-GPIO95 are inputs
|
||||
|
||||
// Each input can have different qualification
|
||||
// a) input synchronized to SYSCLKOUT
|
||||
// b) input qualified by a sampling window
|
||||
// c) input sent asynchronously (valid for peripheral inputs only)
|
||||
GpioCtrlRegs.GPAQSEL1.all = 0x0000; // GPIO0-GPIO15 Synch to SYSCLKOUT
|
||||
GpioCtrlRegs.GPAQSEL2.all = 0x0000; // GPIO16-GPIO31 Synch to SYSCLKOUT
|
||||
GpioCtrlRegs.GPBQSEL1.all = 0x0000; // GPIO32-GPIO39 Synch to SYSCLKOUT
|
||||
GpioCtrlRegs.GPBQSEL2.all = 0x0000; // GPIO48-GPIO63 Synch to SYSCLKOUT
|
||||
|
||||
// Pull-ups can be enabled or disabled.
|
||||
GpioCtrlRegs.GPAPUD.all = 0x0000; // Pullup's enabled GPIO0-GPIO31
|
||||
GpioCtrlRegs.GPBPUD.all = 0x0000; // Pullup's enabled GPIO32-GPIO63
|
||||
GpioCtrlRegs.GPCPUD.all = 0x0000; // Pullup's enabled GPIO64-GPIO79
|
||||
|
||||
//GpioCtrlRegs.GPAPUD.all = 0xFFFF; // Pullup's disabled GPIO0-GPIO31
|
||||
//GpioCtrlRegs.GPBPUD.all = 0xFFFF; // Pullup's disabled GPIO32-GPIO34
|
||||
//GpioCtrlRegs.GPCPUD.all = 0xFFFF // Pullup's disabled GPIO64-GPIO79
|
||||
|
||||
EDIS;
|
||||
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
// End of file.
|
||||
//===========================================================================
|
76
Source/External/v120/DSP2833x_common/source/DSP2833x_I2C.c
vendored
Normal file
76
Source/External/v120/DSP2833x_common/source/DSP2833x_I2C.c
vendored
Normal file
@ -0,0 +1,76 @@
|
||||
// TI File $Revision: /main/1 $
|
||||
// Checkin $Date: August 18, 2006 13:46:27 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: DSP2833x_I2C.c
|
||||
//
|
||||
// TITLE: DSP2833x SCI Initialization & Support Functions.
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
|
||||
#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File
|
||||
#include "DSP2833x_Examples.h" // DSP2833x Examples Include File
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// InitI2C:
|
||||
//---------------------------------------------------------------------------
|
||||
// This function initializes the I2C to a known state.
|
||||
//
|
||||
void InitI2C(void)
|
||||
{
|
||||
// Initialize I2C-A:
|
||||
|
||||
//tbd...
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Example: InitI2CGpio:
|
||||
//---------------------------------------------------------------------------
|
||||
// This function initializes GPIO pins to function as I2C pins
|
||||
//
|
||||
// Each GPIO pin can be configured as a GPIO pin or up to 3 different
|
||||
// peripheral functional pins. By default all pins come up as GPIO
|
||||
// inputs after reset.
|
||||
//
|
||||
// Caution:
|
||||
// Only one GPIO pin should be enabled for SDAA operation.
|
||||
// Only one GPIO pin shoudl be enabled for SCLA operation.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
void InitI2CGpio()
|
||||
{
|
||||
|
||||
EALLOW;
|
||||
/* Enable internal pull-up for the selected pins */
|
||||
// Pull-ups can be enabled or disabled disabled by the user.
|
||||
// This will enable the pullups for the specified pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPBPUD.bit.GPIO32 = 0; // Enable pull-up for GPIO32 (SDAA)
|
||||
GpioCtrlRegs.GPBPUD.bit.GPIO33 = 0; // Enable pull-up for GPIO33 (SCLA)
|
||||
|
||||
/* Set qualification for selected pins to asynch only */
|
||||
// This will select asynch (no qualification) for the selected pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPBQSEL1.bit.GPIO32 = 3; // Asynch input GPIO32 (SDAA)
|
||||
GpioCtrlRegs.GPBQSEL1.bit.GPIO33 = 3; // Asynch input GPIO33 (SCLA)
|
||||
|
||||
/* Configure SCI pins using GPIO regs*/
|
||||
// This specifies which of the possible GPIO pins will be I2C functional pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPBMUX1.bit.GPIO32 = 1; // Configure GPIO32 for SDAA operation
|
||||
GpioCtrlRegs.GPBMUX1.bit.GPIO33 = 1; // Configure GPIO33 for SCLA operation
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//===========================================================================
|
||||
// End of file.
|
||||
//===========================================================================
|
349
Source/External/v120/DSP2833x_common/source/DSP2833x_Mcbsp.c
vendored
Normal file
349
Source/External/v120/DSP2833x_common/source/DSP2833x_Mcbsp.c
vendored
Normal file
@ -0,0 +1,349 @@
|
||||
// TI File $Revision: /main/16 $
|
||||
// Checkin $Date: October 3, 2007 14:50:19 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: DSP2833x_McBSP.c
|
||||
//
|
||||
// TITLE: DSP2833x Device McBSP Initialization & Support Functions.
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
|
||||
#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File
|
||||
#include "DSP2833x_Examples.h" // DSP2833x Examples Include File
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// MCBSP_INIT_DELAY determines the amount of CPU cycles in the 2 sample rate
|
||||
// generator (SRG) cycles required for the Mcbsp initialization routine.
|
||||
// MCBSP_CLKG_DELAY determines the amount of CPU cycles in the 2 clock
|
||||
// generator (CLKG) cycles required for the Mcbsp initialization routine.
|
||||
// For the functions defined in Mcbsp.c, MCBSP_INIT_DELAY and MCBSP_CLKG_DELAY
|
||||
// are based off of either a 150 MHz SYSCLKOUT (default) or a 100 MHz SYSCLKOUT.
|
||||
//
|
||||
// CPU_FRQ_100MHZ and CPU_FRQ_150MHZ are defined in DSP2833x_Examples.h
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#if CPU_FRQ_150MHZ // For 150 MHz SYSCLKOUT(default)
|
||||
#define CPU_SPD 150E6
|
||||
#define MCBSP_SRG_FREQ CPU_SPD/4 // SRG input is LSPCLK (SYSCLKOUT/4) for examples
|
||||
#endif
|
||||
#if CPU_FRQ_100MHZ // For 100 MHz SYSCLKOUT
|
||||
#define CPU_SPD 100E6
|
||||
#define MCBSP_SRG_FREQ CPU_SPD/4 // SRG input is LSPCLK (SYSCLKOUT/4) for examples
|
||||
#endif
|
||||
|
||||
#define CLKGDV_VAL 1
|
||||
#define MCBSP_INIT_DELAY 2*(CPU_SPD/MCBSP_SRG_FREQ) // # of CPU cycles in 2 SRG cycles-init delay
|
||||
#define MCBSP_CLKG_DELAY 2*(CPU_SPD/(MCBSP_SRG_FREQ/(1+CLKGDV_VAL))) // # of CPU cycles in 2 CLKG cycles-init delay
|
||||
//---------------------------------------------------------------------------
|
||||
// InitMcbsp:
|
||||
//---------------------------------------------------------------------------
|
||||
// This function initializes the McBSP to a known state.
|
||||
//
|
||||
|
||||
void delay_loop(void); // Delay function used for SRG initialization
|
||||
void clkg_delay_loop(void); // Delay function used for CLKG initialization
|
||||
|
||||
void InitMcbsp(void)
|
||||
{
|
||||
InitMcbspa();
|
||||
#if DSP28_MCBSPB
|
||||
InitMcbspb();
|
||||
#endif // end DSP28_MCBSPB
|
||||
}
|
||||
|
||||
void InitMcbspa(void)
|
||||
{
|
||||
// McBSP-A register settings
|
||||
|
||||
McbspaRegs.SPCR2.all=0x0000; // Reset FS generator, sample rate generator & transmitter
|
||||
McbspaRegs.SPCR1.all=0x0000; // Reset Receiver, Right justify word
|
||||
McbspaRegs.SPCR1.bit.DLB = 1; // Enable loopback mode for test. Comment out for normal McBSP transfer mode.
|
||||
|
||||
|
||||
McbspaRegs.MFFINT.all=0x0; // Disable all interrupts
|
||||
|
||||
McbspaRegs.RCR2.all=0x0; // Single-phase frame, 1 word/frame, No companding (Receive)
|
||||
McbspaRegs.RCR1.all=0x0;
|
||||
|
||||
McbspaRegs.XCR2.all=0x0; // Single-phase frame, 1 word/frame, No companding (Transmit)
|
||||
McbspaRegs.XCR1.all=0x0;
|
||||
|
||||
McbspaRegs.PCR.bit.FSXM = 1; // FSX generated internally, FSR derived from an external source
|
||||
McbspaRegs.PCR.bit.CLKXM = 1; // CLKX generated internally, CLKR derived from an external source
|
||||
|
||||
McbspaRegs.SRGR2.bit.CLKSM = 1; // CLKSM=1 (If SCLKME=0, i/p clock to SRG is LSPCLK)
|
||||
McbspaRegs.SRGR2.bit.FPER = 31; // FPER = 32 CLKG periods
|
||||
|
||||
McbspaRegs.SRGR1.bit.FWID = 0; // Frame Width = 1 CLKG period
|
||||
McbspaRegs.SRGR1.bit.CLKGDV = CLKGDV_VAL; // CLKG frequency = LSPCLK/(CLKGDV+1)
|
||||
|
||||
delay_loop(); // Wait at least 2 SRG clock cycles
|
||||
|
||||
McbspaRegs.SPCR2.bit.GRST=1; // Enable the sample rate generator
|
||||
clkg_delay_loop(); // Wait at least 2 CLKG cycles
|
||||
McbspaRegs.SPCR2.bit.XRST=1; // Release TX from Reset
|
||||
McbspaRegs.SPCR1.bit.RRST=1; // Release RX from Reset
|
||||
McbspaRegs.SPCR2.bit.FRST=1; // Frame Sync Generator reset
|
||||
|
||||
}
|
||||
|
||||
|
||||
#if (DSP28_MCBSPB)
|
||||
void InitMcbspb(void)
|
||||
{
|
||||
|
||||
// McBSP-B register settings
|
||||
|
||||
McbspbRegs.SPCR2.all=0x0000; // Reset FS generator, sample rate generator & transmitter
|
||||
McbspbRegs.SPCR1.all=0x0000; // Reset Receiver, Right justify word
|
||||
McbspbRegs.SPCR1.bit.DLB = 1; // Enable loopback mode for test. Comment out for normal McBSP transfer mode.
|
||||
|
||||
McbspbRegs.MFFINT.all=0x0; // Disable all interrupts
|
||||
|
||||
McbspbRegs.RCR2.all=0x0; // Single-phase frame, 1 word/frame, No companding (Receive)
|
||||
McbspbRegs.RCR1.all=0x0;
|
||||
|
||||
McbspbRegs.XCR2.all=0x0; // Single-phase frame, 1 word/frame, No companding (Transmit)
|
||||
McbspbRegs.XCR1.all=0x0;
|
||||
|
||||
McbspbRegs.SRGR2.bit.CLKSM = 1; // CLKSM=1 (If SCLKME=0, i/p clock to SRG is LSPCLK)
|
||||
McbspbRegs.SRGR2.bit.FPER = 31; // FPER = 32 CLKG periods
|
||||
|
||||
McbspbRegs.SRGR1.bit.FWID = 0; // Frame Width = 1 CLKG period
|
||||
McbspbRegs.SRGR1.bit.CLKGDV = CLKGDV_VAL; // CLKG frequency = LSPCLK/(CLKGDV+1)
|
||||
|
||||
McbspbRegs.PCR.bit.FSXM = 1; // FSX generated internally, FSR derived from an external source
|
||||
McbspbRegs.PCR.bit.CLKXM = 1; // CLKX generated internally, CLKR derived from an external source
|
||||
delay_loop(); // Wait at least 2 SRG clock cycles
|
||||
McbspbRegs.SPCR2.bit.GRST=1; // Enable the sample rate generator
|
||||
clkg_delay_loop(); // Wait at least 2 CLKG cycles
|
||||
McbspbRegs.SPCR2.bit.XRST=1; // Release TX from Reset
|
||||
McbspbRegs.SPCR1.bit.RRST=1; // Release RX from Reset
|
||||
McbspbRegs.SPCR2.bit.FRST=1; // Frame Sync Generator reset
|
||||
|
||||
}
|
||||
|
||||
|
||||
#endif // end DSP28_MCBSPB
|
||||
|
||||
// McBSP-A Data Lengths
|
||||
void InitMcbspa8bit(void)
|
||||
{
|
||||
McbspaRegs.RCR1.bit.RWDLEN1=0; // 8-bit word
|
||||
McbspaRegs.XCR1.bit.XWDLEN1=0; // 8-bit word
|
||||
}
|
||||
|
||||
void InitMcbspa12bit(void)
|
||||
{
|
||||
McbspaRegs.RCR1.bit.RWDLEN1=1; // 12-bit word
|
||||
McbspaRegs.XCR1.bit.XWDLEN1=1; // 12-bit word
|
||||
}
|
||||
|
||||
void InitMcbspa16bit(void)
|
||||
{
|
||||
McbspaRegs.RCR1.bit.RWDLEN1=2; // 16-bit word
|
||||
McbspaRegs.XCR1.bit.XWDLEN1=2; // 16-bit word
|
||||
}
|
||||
|
||||
void InitMcbspa20bit(void)
|
||||
{
|
||||
McbspaRegs.RCR1.bit.RWDLEN1=3; // 20-bit word
|
||||
McbspaRegs.XCR1.bit.XWDLEN1=3; // 20-bit word
|
||||
}
|
||||
|
||||
void InitMcbspa24bit(void)
|
||||
{
|
||||
McbspaRegs.RCR1.bit.RWDLEN1=4; // 24-bit word
|
||||
McbspaRegs.XCR1.bit.XWDLEN1=4; // 24-bit word
|
||||
}
|
||||
|
||||
void InitMcbspa32bit(void)
|
||||
{
|
||||
McbspaRegs.RCR1.bit.RWDLEN1=5; // 32-bit word
|
||||
McbspaRegs.XCR1.bit.XWDLEN1=5; // 32-bit word
|
||||
}
|
||||
|
||||
// McBSP-B Data Lengths
|
||||
#if (DSP28_MCBSPB)
|
||||
|
||||
void InitMcbspb8bit(void)
|
||||
{
|
||||
McbspbRegs.RCR1.bit.RWDLEN1=0; // 8-bit word
|
||||
McbspbRegs.XCR1.bit.XWDLEN1=0; // 8-bit word
|
||||
}
|
||||
|
||||
void InitMcbspb12bit(void)
|
||||
{
|
||||
McbspbRegs.RCR1.bit.RWDLEN1=1; // 12-bit word
|
||||
McbspbRegs.XCR1.bit.XWDLEN1=1; // 12-bit word
|
||||
}
|
||||
|
||||
void InitMcbspb16bit(void)
|
||||
{
|
||||
McbspbRegs.RCR1.bit.RWDLEN1=2; // 16-bit word
|
||||
McbspbRegs.XCR1.bit.XWDLEN1=2; // 16-bit word
|
||||
}
|
||||
|
||||
void InitMcbspb20bit(void)
|
||||
{
|
||||
McbspbRegs.RCR1.bit.RWDLEN1=3; // 20-bit word
|
||||
McbspbRegs.XCR1.bit.XWDLEN1=3; // 20-bit word
|
||||
}
|
||||
|
||||
void InitMcbspb24bit(void)
|
||||
{
|
||||
McbspbRegs.RCR1.bit.RWDLEN1=4; // 24-bit word
|
||||
McbspbRegs.XCR1.bit.XWDLEN1=4; // 24-bit word
|
||||
}
|
||||
|
||||
void InitMcbspb32bit(void)
|
||||
{
|
||||
McbspbRegs.RCR1.bit.RWDLEN1=5; // 32-bit word
|
||||
McbspbRegs.XCR1.bit.XWDLEN1=5; // 32-bit word
|
||||
}
|
||||
|
||||
#endif //end DSP28_MCBSPB
|
||||
|
||||
|
||||
|
||||
void InitMcbspGpio(void)
|
||||
{
|
||||
InitMcbspaGpio();
|
||||
#if DSP28_MCBSPB
|
||||
InitMcbspbGpio();
|
||||
#endif // end DSP28_MCBSPB
|
||||
}
|
||||
|
||||
void InitMcbspaGpio(void)
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
/* Configure McBSP-A pins using GPIO regs*/
|
||||
// This specifies which of the possible GPIO pins will be McBSP functional pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAMUX2.bit.GPIO20 = 2; // GPIO20 is MDXA pin
|
||||
GpioCtrlRegs.GPAMUX2.bit.GPIO21 = 2; // GPIO21 is MDRA pin
|
||||
GpioCtrlRegs.GPAMUX2.bit.GPIO22 = 2; // GPIO22 is MCLKXA pin
|
||||
GpioCtrlRegs.GPAMUX1.bit.GPIO7 = 2; // GPIO7 is MCLKRA pin (Comment as needed)
|
||||
//GpioCtrlRegs.GPBMUX2.bit.GPIO58 = 1; // GPIO58 is MCLKRA pin (Comment as needed)
|
||||
GpioCtrlRegs.GPAMUX2.bit.GPIO23 = 2; // GPIO23 is MFSXA pin
|
||||
GpioCtrlRegs.GPAMUX1.bit.GPIO5 = 2; // GPIO5 is MFSRA pin (Comment as needed)
|
||||
//GpioCtrlRegs.GPBMUX2.bit.GPIO59 = 1; // GPIO59 is MFSRA pin (Comment as needed)
|
||||
|
||||
/* Enable internal pull-up for the selected pins */
|
||||
// Pull-ups can be enabled or disabled by the user.
|
||||
// This will enable the pullups for the specified pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO20 = 0; // Enable pull-up on GPIO20 (MDXA)
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO21 = 0; // Enable pull-up on GPIO21 (MDRA)
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO22 = 0; // Enable pull-up on GPIO22 (MCLKXA)
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO7 = 0; // Enable pull-up on GPIO7 (MCLKRA) (Comment as needed)
|
||||
//GpioCtrlRegs.GPBPUD.bit.GPIO58 = 0; // Enable pull-up on GPIO58 (MCLKRA) (Comment as needed)
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO23 = 0; // Enable pull-up on GPIO23 (MFSXA)
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO5 = 0; // Enable pull-up on GPIO5 (MFSRA) (Comment as needed)
|
||||
//GpioCtrlRegs.GPBPUD.bit.GPIO59 = 0; // Enable pull-up on GPIO59 (MFSRA) (Comment as needed)
|
||||
|
||||
/* Set qualification for selected input pins to asynch only */
|
||||
// This will select asynch (no qualification) for the selected pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
|
||||
GpioCtrlRegs.GPAQSEL2.bit.GPIO21 = 3; // Asynch input GPIO21 (MDRA)
|
||||
GpioCtrlRegs.GPAQSEL2.bit.GPIO22 = 3; // Asynch input GPIO22 (MCLKXA)
|
||||
GpioCtrlRegs.GPAQSEL1.bit.GPIO7 = 3; // Asynch input GPIO7 (MCLKRA) (Comment as needed)
|
||||
//GpioCtrlRegs.GPBQSEL2.bit.GPIO58 = 3; // Asynch input GPIO58(MCLKRA) (Comment as needed)
|
||||
GpioCtrlRegs.GPAQSEL2.bit.GPIO23 = 3; // Asynch input GPIO23 (MFSXA)
|
||||
GpioCtrlRegs.GPAQSEL1.bit.GPIO5 = 3; // Asynch input GPIO5 (MFSRA) (Comment as needed)
|
||||
//GpioCtrlRegs.GPBQSEL2.bit.GPIO59 = 3; // Asynch input GPIO59 (MFSRA) (Comment as needed)
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
#if DSP28_MCBSPB
|
||||
void InitMcbspbGpio(void)
|
||||
{
|
||||
EALLOW;
|
||||
/* Configure McBSP-A pins using GPIO regs*/
|
||||
// This specifies which of the possible GPIO pins will be McBSP functional pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
//GpioCtrlRegs.GPAMUX1.bit.GPIO12 = 3; // GPIO12 is MDXB pin (Comment as needed)
|
||||
GpioCtrlRegs.GPAMUX2.bit.GPIO24 = 3; // GPIO24 is MDXB pin (Comment as needed)
|
||||
//GpioCtrlRegs.GPAMUX1.bit.GPIO13 = 3; // GPIO13 is MDRB pin (Comment as needed)
|
||||
GpioCtrlRegs.GPAMUX2.bit.GPIO25 = 3; // GPIO25 is MDRB pin (Comment as needed)
|
||||
//GpioCtrlRegs.GPAMUX1.bit.GPIO14 = 3; // GPIO14 is MCLKXB pin (Comment as needed)
|
||||
GpioCtrlRegs.GPAMUX2.bit.GPIO26 = 3; // GPIO26 is MCLKXB pin (Comment as needed)
|
||||
GpioCtrlRegs.GPAMUX1.bit.GPIO3 = 3; // GPIO3 is MCLKRB pin (Comment as needed)
|
||||
//GpioCtrlRegs.GPBMUX2.bit.GPIO60 = 1; // GPIO60 is MCLKRB pin (Comment as needed)
|
||||
//GpioCtrlRegs.GPAMUX1.bit.GPIO15 = 3; // GPIO15 is MFSXB pin (Comment as needed)
|
||||
GpioCtrlRegs.GPAMUX2.bit.GPIO27 = 3; // GPIO27 is MFSXB pin (Comment as needed)
|
||||
GpioCtrlRegs.GPAMUX1.bit.GPIO1 = 3; // GPIO1 is MFSRB pin (Comment as needed)
|
||||
//GpioCtrlRegs.GPBMUX2.bit.GPIO61 = 1; // GPIO61 is MFSRB pin (Comment as needed)
|
||||
|
||||
/* Enable internal pull-up for the selected pins */
|
||||
// Pull-ups can be enabled or disabled by the user.
|
||||
// This will enable the pullups for the specified pins.
|
||||
// Comment out other unwanted lines.
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO24 = 0; // Enable pull-up on GPIO24 (MDXB) (Comment as needed)
|
||||
//GpioCtrlRegs.GPAPUD.bit.GPIO12 = 0; // Enable pull-up on GPIO12 (MDXB) (Comment as needed)
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO25 = 0; // Enable pull-up on GPIO25 (MDRB) (Comment as needed)
|
||||
//GpioCtrlRegs.GPAPUD.bit.GPIO13 = 0; // Enable pull-up on GPIO13 (MDRB) (Comment as needed)
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO26 = 0; // Enable pull-up on GPIO26 (MCLKXB) (Comment as needed)
|
||||
//GpioCtrlRegs.GPAPUD.bit.GPIO14 = 0; // Enable pull-up on GPIO14 (MCLKXB) (Comment as needed)
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO3 = 0; // Enable pull-up on GPIO3 (MCLKRB) (Comment as needed)
|
||||
//GpioCtrlRegs.GPBPUD.bit.GPIO60 = 0; // Enable pull-up on GPIO60 (MCLKRB) (Comment as needed)
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO27 = 0; // Enable pull-up on GPIO27 (MFSXB) (Comment as needed)
|
||||
//GpioCtrlRegs.GPAPUD.bit.GPIO15 = 0; // Enable pull-up on GPIO15 (MFSXB) (Comment as needed)
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO1 = 0; // Enable pull-up on GPIO1 (MFSRB) (Comment as needed)
|
||||
//GpioCtrlRegs.GPBPUD.bit.GPIO61 = 0; // Enable pull-up on GPIO61 (MFSRB) (Comment as needed)
|
||||
|
||||
|
||||
/* Set qualification for selected input pins to asynch only */
|
||||
// This will select asynch (no qualification) for the selected pins.
|
||||
// Comment out other unwanted lines.
|
||||
GpioCtrlRegs.GPAQSEL2.bit.GPIO25 = 3; // Asynch input GPIO25 (MDRB) (Comment as needed)
|
||||
//GpioCtrlRegs.GPAQSEL1.bit.GPIO13 = 3; // Asynch input GPIO13 (MDRB) (Comment as needed)
|
||||
GpioCtrlRegs.GPAQSEL2.bit.GPIO26 = 3; // Asynch input GPIO26(MCLKXB) (Comment as needed)
|
||||
//GpioCtrlRegs.GPAQSEL1.bit.GPIO14 = 3; // Asynch input GPIO14 (MCLKXB) (Comment as needed)
|
||||
GpioCtrlRegs.GPAQSEL1.bit.GPIO3 = 3; // Asynch input GPIO3 (MCLKRB) (Comment as needed)
|
||||
//GpioCtrlRegs.GPBQSEL2.bit.GPIO60 = 3; // Asynch input GPIO60 (MCLKRB) (Comment as needed)
|
||||
GpioCtrlRegs.GPAQSEL2.bit.GPIO27 = 3; // Asynch input GPIO27 (MFSXB) (Comment as needed)
|
||||
//GpioCtrlRegs.GPAQSEL1.bit.GPIO15 = 3; // Asynch input GPIO15 (MFSXB) (Comment as needed)
|
||||
GpioCtrlRegs.GPAQSEL1.bit.GPIO1 = 3; // Asynch input GPIO1 (MFSRB) (Comment as needed)
|
||||
//GpioCtrlRegs.GPBQSEL2.bit.GPIO61 = 3; // Asynch input GPIO61 (MFSRB) (Comment as needed)
|
||||
|
||||
|
||||
EDIS;
|
||||
}
|
||||
#endif // end DSP28_MCBSPB
|
||||
|
||||
void delay_loop(void)
|
||||
{
|
||||
long i;
|
||||
for (i = 0; i < MCBSP_INIT_DELAY; i++) {} //delay in McBsp init. must be at least 2 SRG cycles
|
||||
}
|
||||
|
||||
void clkg_delay_loop(void)
|
||||
{
|
||||
long i;
|
||||
for (i = 0; i < MCBSP_CLKG_DELAY; i++) {} //delay in McBsp init. must be at least 2 SRG cycles
|
||||
}
|
||||
//===========================================================================
|
||||
// No more.
|
||||
//===========================================================================
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
45
Source/External/v120/DSP2833x_common/source/DSP2833x_MemCopy.c
vendored
Normal file
45
Source/External/v120/DSP2833x_common/source/DSP2833x_MemCopy.c
vendored
Normal file
@ -0,0 +1,45 @@
|
||||
// TI File $Revision: /main/1 $
|
||||
// Checkin $Date: August 18, 2006 13:46:33 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: DSP2833x_MemCopy.c
|
||||
//
|
||||
// TITLE: Memory Copy Utility
|
||||
//
|
||||
// ASSUMPTIONS:
|
||||
//
|
||||
//
|
||||
//
|
||||
// DESCRIPTION:
|
||||
//
|
||||
// This function will copy the specified memory contents from
|
||||
// one location to another.
|
||||
//
|
||||
// Uint16 *SourceAddr Pointer to the first word to be moved
|
||||
// SourceAddr < SourceEndAddr
|
||||
// Uint16* SourceEndAddr Pointer to the last word to be moved
|
||||
// Uint16* DestAddr Pointer to the first destination word
|
||||
//
|
||||
// No checks are made for invalid memory locations or that the
|
||||
// end address is > then the first start address.
|
||||
//
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
|
||||
#include "DSP2833x_Device.h"
|
||||
|
||||
void MemCopy(Uint16 *SourceAddr, Uint16* SourceEndAddr, Uint16* DestAddr)
|
||||
{
|
||||
while(SourceAddr < SourceEndAddr)
|
||||
{
|
||||
*DestAddr++ = *SourceAddr++;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
// End of file.
|
||||
//===========================================================================
|
83
Source/External/v120/DSP2833x_common/source/DSP2833x_PieCtrl.c
vendored
Normal file
83
Source/External/v120/DSP2833x_common/source/DSP2833x_PieCtrl.c
vendored
Normal file
@ -0,0 +1,83 @@
|
||||
// TI File $Revision: /main/1 $
|
||||
// Checkin $Date: August 18, 2006 13:46:35 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: DSP2833x_PieCtrl.c
|
||||
//
|
||||
// TITLE: DSP2833x Device PIE Control Register Initialization Functions.
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
|
||||
#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File
|
||||
#include "DSP2833x_Examples.h" // DSP2833x Examples Include File
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// InitPieCtrl:
|
||||
//---------------------------------------------------------------------------
|
||||
// This function initializes the PIE control registers to a known state.
|
||||
//
|
||||
void InitPieCtrl(void)
|
||||
{
|
||||
// Disable Interrupts at the CPU level:
|
||||
DINT;
|
||||
|
||||
// Disable the PIE
|
||||
PieCtrlRegs.PIECTRL.bit.ENPIE = 0;
|
||||
|
||||
// Clear all PIEIER registers:
|
||||
PieCtrlRegs.PIEIER1.all = 0;
|
||||
PieCtrlRegs.PIEIER2.all = 0;
|
||||
PieCtrlRegs.PIEIER3.all = 0;
|
||||
PieCtrlRegs.PIEIER4.all = 0;
|
||||
PieCtrlRegs.PIEIER5.all = 0;
|
||||
PieCtrlRegs.PIEIER6.all = 0;
|
||||
PieCtrlRegs.PIEIER7.all = 0;
|
||||
PieCtrlRegs.PIEIER8.all = 0;
|
||||
PieCtrlRegs.PIEIER9.all = 0;
|
||||
PieCtrlRegs.PIEIER10.all = 0;
|
||||
PieCtrlRegs.PIEIER11.all = 0;
|
||||
PieCtrlRegs.PIEIER12.all = 0;
|
||||
|
||||
// Clear all PIEIFR registers:
|
||||
PieCtrlRegs.PIEIFR1.all = 0;
|
||||
PieCtrlRegs.PIEIFR2.all = 0;
|
||||
PieCtrlRegs.PIEIFR3.all = 0;
|
||||
PieCtrlRegs.PIEIFR4.all = 0;
|
||||
PieCtrlRegs.PIEIFR5.all = 0;
|
||||
PieCtrlRegs.PIEIFR6.all = 0;
|
||||
PieCtrlRegs.PIEIFR7.all = 0;
|
||||
PieCtrlRegs.PIEIFR8.all = 0;
|
||||
PieCtrlRegs.PIEIFR9.all = 0;
|
||||
PieCtrlRegs.PIEIFR10.all = 0;
|
||||
PieCtrlRegs.PIEIFR11.all = 0;
|
||||
PieCtrlRegs.PIEIFR12.all = 0;
|
||||
|
||||
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// EnableInterrupts:
|
||||
//---------------------------------------------------------------------------
|
||||
// This function enables the PIE module and CPU interrupts
|
||||
//
|
||||
void EnableInterrupts()
|
||||
{
|
||||
|
||||
// Enable the PIE
|
||||
PieCtrlRegs.PIECTRL.bit.ENPIE = 1;
|
||||
|
||||
// Enables PIE to drive a pulse into the CPU
|
||||
PieCtrlRegs.PIEACK.all = 0xFFFF;
|
||||
|
||||
// Enable Interrupts at the CPU level
|
||||
EINT;
|
||||
|
||||
}
|
||||
|
||||
|
||||
//===========================================================================
|
||||
// End of file.
|
||||
//===========================================================================
|
204
Source/External/v120/DSP2833x_common/source/DSP2833x_PieVect.c
vendored
Normal file
204
Source/External/v120/DSP2833x_common/source/DSP2833x_PieVect.c
vendored
Normal file
@ -0,0 +1,204 @@
|
||||
// TI File $Revision: /main/1 $
|
||||
// Checkin $Date: August 18, 2006 13:46:38 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: DSP2833x_PieVect.c
|
||||
//
|
||||
// TITLE: DSP2833x Devices PIE Vector Table Initialization Functions.
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
|
||||
#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File
|
||||
#include "DSP2833x_Examples.h" // DSP2833x Examples Include File
|
||||
|
||||
const struct PIE_VECT_TABLE PieVectTableInit = {
|
||||
|
||||
PIE_RESERVED, // 0 Reserved space
|
||||
PIE_RESERVED, // 1 Reserved space
|
||||
PIE_RESERVED, // 2 Reserved space
|
||||
PIE_RESERVED, // 3 Reserved space
|
||||
PIE_RESERVED, // 4 Reserved space
|
||||
PIE_RESERVED, // 5 Reserved space
|
||||
PIE_RESERVED, // 6 Reserved space
|
||||
PIE_RESERVED, // 7 Reserved space
|
||||
PIE_RESERVED, // 8 Reserved space
|
||||
PIE_RESERVED, // 9 Reserved space
|
||||
PIE_RESERVED, // 10 Reserved space
|
||||
PIE_RESERVED, // 11 Reserved space
|
||||
PIE_RESERVED, // 12 Reserved space
|
||||
|
||||
|
||||
// Non-Peripheral Interrupts
|
||||
INT13_ISR, // XINT13 or CPU-Timer 1
|
||||
INT14_ISR, // CPU-Timer2
|
||||
DATALOG_ISR, // Datalogging interrupt
|
||||
RTOSINT_ISR, // RTOS interrupt
|
||||
EMUINT_ISR, // Emulation interrupt
|
||||
NMI_ISR, // Non-maskable interrupt
|
||||
ILLEGAL_ISR, // Illegal operation TRAP
|
||||
USER1_ISR, // User Defined trap 1
|
||||
USER2_ISR, // User Defined trap 2
|
||||
USER3_ISR, // User Defined trap 3
|
||||
USER4_ISR, // User Defined trap 4
|
||||
USER5_ISR, // User Defined trap 5
|
||||
USER6_ISR, // User Defined trap 6
|
||||
USER7_ISR, // User Defined trap 7
|
||||
USER8_ISR, // User Defined trap 8
|
||||
USER9_ISR, // User Defined trap 9
|
||||
USER10_ISR, // User Defined trap 10
|
||||
USER11_ISR, // User Defined trap 11
|
||||
USER12_ISR, // User Defined trap 12
|
||||
|
||||
// Group 1 PIE Vectors
|
||||
SEQ1INT_ISR, // 1.1 ADC
|
||||
SEQ2INT_ISR, // 1.2 ADC
|
||||
rsvd_ISR, // 1.3
|
||||
XINT1_ISR, // 1.4
|
||||
XINT2_ISR, // 1.5
|
||||
ADCINT_ISR, // 1.6 ADC
|
||||
TINT0_ISR, // 1.7 Timer 0
|
||||
WAKEINT_ISR, // 1.8 WD, Low Power
|
||||
|
||||
// Group 2 PIE Vectors
|
||||
EPWM1_TZINT_ISR, // 2.1 EPWM-1 Trip Zone
|
||||
EPWM2_TZINT_ISR, // 2.2 EPWM-2 Trip Zone
|
||||
EPWM3_TZINT_ISR, // 2.3 EPWM-3 Trip Zone
|
||||
EPWM4_TZINT_ISR, // 2.4 EPWM-4 Trip Zone
|
||||
EPWM5_TZINT_ISR, // 2.5 EPWM-5 Trip Zone
|
||||
EPWM6_TZINT_ISR, // 2.6 EPWM-6 Trip Zone
|
||||
rsvd_ISR, // 2.7
|
||||
rsvd_ISR, // 2.8
|
||||
|
||||
// Group 3 PIE Vectors
|
||||
EPWM1_INT_ISR, // 3.1 EPWM-1 Interrupt
|
||||
EPWM2_INT_ISR, // 3.2 EPWM-2 Interrupt
|
||||
EPWM3_INT_ISR, // 3.3 EPWM-3 Interrupt
|
||||
EPWM4_INT_ISR, // 3.4 EPWM-4 Interrupt
|
||||
EPWM5_INT_ISR, // 3.5 EPWM-5 Interrupt
|
||||
EPWM6_INT_ISR, // 3.6 EPWM-6 Interrupt
|
||||
rsvd_ISR, // 3.7
|
||||
rsvd_ISR, // 3.8
|
||||
|
||||
// Group 4 PIE Vectors
|
||||
ECAP1_INT_ISR, // 4.1 ECAP-1
|
||||
ECAP2_INT_ISR, // 4.2 ECAP-2
|
||||
ECAP3_INT_ISR, // 4.3 ECAP-3
|
||||
ECAP4_INT_ISR, // 4.4 ECAP-4
|
||||
ECAP5_INT_ISR, // 4.5 ECAP-5
|
||||
ECAP6_INT_ISR, // 4.6 ECAP-6
|
||||
rsvd_ISR, // 4.7
|
||||
rsvd_ISR, // 4.8
|
||||
|
||||
// Group 5 PIE Vectors
|
||||
EQEP1_INT_ISR, // 5.1 EQEP-1
|
||||
EQEP2_INT_ISR, // 5.2 EQEP-2
|
||||
rsvd_ISR, // 5.3
|
||||
rsvd_ISR, // 5.4
|
||||
rsvd_ISR, // 5.5
|
||||
rsvd_ISR, // 5.6
|
||||
rsvd_ISR, // 5.7
|
||||
rsvd_ISR, // 5.8
|
||||
|
||||
|
||||
// Group 6 PIE Vectors
|
||||
SPIRXINTA_ISR, // 6.1 SPI-A
|
||||
SPITXINTA_ISR, // 6.2 SPI-A
|
||||
MRINTA_ISR, // 6.3 McBSP-A
|
||||
MXINTA_ISR, // 6.4 McBSP-A
|
||||
MRINTB_ISR, // 6.5 McBSP-B
|
||||
MXINTB_ISR, // 6.6 McBSP-B
|
||||
rsvd_ISR, // 6.7
|
||||
rsvd_ISR, // 6.8
|
||||
|
||||
|
||||
// Group 7 PIE Vectors
|
||||
DINTCH1_ISR, // 7.1 DMA channel 1
|
||||
DINTCH2_ISR, // 7.2 DMA channel 2
|
||||
DINTCH3_ISR, // 7.3 DMA channel 3
|
||||
DINTCH4_ISR, // 7.4 DMA channel 4
|
||||
DINTCH5_ISR, // 7.5 DMA channel 5
|
||||
DINTCH6_ISR, // 7.6 DMA channel 6
|
||||
rsvd_ISR, // 7.7
|
||||
rsvd_ISR, // 7.8
|
||||
|
||||
// Group 8 PIE Vectors
|
||||
I2CINT1A_ISR, // 8.1 I2C
|
||||
I2CINT2A_ISR, // 8.2 I2C
|
||||
rsvd_ISR, // 8.3
|
||||
rsvd_ISR, // 8.4
|
||||
SCIRXINTC_ISR, // 8.5 SCI-C
|
||||
SCITXINTC_ISR, // 8.6 SCI-C
|
||||
rsvd_ISR, // 8.7
|
||||
rsvd_ISR, // 8.8
|
||||
|
||||
// Group 9 PIE Vectors
|
||||
SCIRXINTA_ISR, // 9.1 SCI-A
|
||||
SCITXINTA_ISR, // 9.2 SCI-A
|
||||
SCIRXINTB_ISR, // 9.3 SCI-B
|
||||
SCITXINTB_ISR, // 9.4 SCI-B
|
||||
ECAN0INTA_ISR, // 9.5 eCAN-A
|
||||
ECAN1INTA_ISR, // 9.6 eCAN-A
|
||||
ECAN0INTB_ISR, // 9.7 eCAN-B
|
||||
ECAN1INTB_ISR, // 9.8 eCAN-B
|
||||
|
||||
// Group 10 PIE Vectors
|
||||
rsvd_ISR, // 10.1
|
||||
rsvd_ISR, // 10.2
|
||||
rsvd_ISR, // 10.3
|
||||
rsvd_ISR, // 10.4
|
||||
rsvd_ISR, // 10.5
|
||||
rsvd_ISR, // 10.6
|
||||
rsvd_ISR, // 10.7
|
||||
rsvd_ISR, // 10.8
|
||||
|
||||
// Group 11 PIE Vectors
|
||||
rsvd_ISR, // 11.1
|
||||
rsvd_ISR, // 11.2
|
||||
rsvd_ISR, // 11.3
|
||||
rsvd_ISR, // 11.4
|
||||
rsvd_ISR, // 11.5
|
||||
rsvd_ISR, // 11.6
|
||||
rsvd_ISR, // 11.7
|
||||
rsvd_ISR, // 11.8
|
||||
|
||||
// Group 12 PIE Vectors
|
||||
XINT3_ISR, // 12.1
|
||||
XINT4_ISR, // 12.2
|
||||
XINT5_ISR, // 12.3
|
||||
XINT6_ISR, // 12.4
|
||||
XINT7_ISR, // 12.5
|
||||
rsvd_ISR, // 12.6
|
||||
LVF_ISR, // 12.7
|
||||
LUF_ISR, // 12.8
|
||||
};
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// InitPieVectTable:
|
||||
//---------------------------------------------------------------------------
|
||||
// This function initializes the PIE vector table to a known state.
|
||||
// This function must be executed after boot time.
|
||||
//
|
||||
|
||||
void InitPieVectTable(void)
|
||||
{
|
||||
int16 i;
|
||||
Uint32 *Source = (void *) &PieVectTableInit;
|
||||
Uint32 *Dest = (void *) &PieVectTable;
|
||||
|
||||
EALLOW;
|
||||
for(i=0; i < 128; i++)
|
||||
*Dest++ = *Source++;
|
||||
EDIS;
|
||||
|
||||
// Enable the PIE Vector Table
|
||||
PieCtrlRegs.PIECTRL.bit.ENPIE = 1;
|
||||
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
// End of file.
|
||||
//===========================================================================
|
1863
Source/External/v120/DSP2833x_common/source/DSP2833x_SWPrioritizedDefaultIsr.c
vendored
Normal file
1863
Source/External/v120/DSP2833x_common/source/DSP2833x_SWPrioritizedDefaultIsr.c
vendored
Normal file
File diff suppressed because it is too large
Load Diff
511
Source/External/v120/DSP2833x_common/source/DSP2833x_SWPrioritizedPieVect.c
vendored
Normal file
511
Source/External/v120/DSP2833x_common/source/DSP2833x_SWPrioritizedPieVect.c
vendored
Normal file
@ -0,0 +1,511 @@
|
||||
// TI File $Revision: /main/2 $
|
||||
// Checkin $Date: April 4, 2007 14:25:31 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: DSP2833x_SWPiroritizedPieVect.c
|
||||
//
|
||||
// TITLE: DSP2833x Devices SW Prioritized PIE Vector Table Initialization.
|
||||
//
|
||||
//###########################################################################
|
||||
//
|
||||
// Original Source by A.T.
|
||||
//
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
|
||||
#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File
|
||||
#include "DSP2833x_Examples.h" // DSP2833x Examples Include File
|
||||
#include "DSP2833x_SWPrioritizedIsrLevels.h"
|
||||
|
||||
const struct PIE_VECT_TABLE PieVectTableInit = {
|
||||
|
||||
PIE_RESERVED, // Reserved space
|
||||
PIE_RESERVED, // reserved
|
||||
PIE_RESERVED, // reserved
|
||||
PIE_RESERVED, // reserved
|
||||
PIE_RESERVED, // reserved
|
||||
PIE_RESERVED, // reserved
|
||||
PIE_RESERVED, // reserved
|
||||
PIE_RESERVED, // reserved
|
||||
PIE_RESERVED, // reserved
|
||||
PIE_RESERVED, // reserved
|
||||
PIE_RESERVED, // reserved
|
||||
PIE_RESERVED, // reserved
|
||||
PIE_RESERVED, // reserved
|
||||
|
||||
// Non-Peripheral Interrupts:
|
||||
#if (INT13PL != 0)
|
||||
INT13_ISR, // XINT13
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (INT14PL != 0)
|
||||
INT14_ISR, // CPU-Timer2
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (INT15PL != 0)
|
||||
DATALOG_ISR, // Datalogging interrupt
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (INT16PL != 0)
|
||||
RTOSINT_ISR, // RTOS interrupt
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
rsvd_ISR, // reserved interrupt
|
||||
NMI_ISR, // Non-maskable interrupt
|
||||
ILLEGAL_ISR, // Illegal operation TRAP
|
||||
USER1_ISR, // User Defined trap 1
|
||||
USER2_ISR, // User Defined trap 2
|
||||
USER3_ISR, // User Defined trap 3
|
||||
USER4_ISR, // User Defined trap 4
|
||||
USER5_ISR, // User Defined trap 5
|
||||
USER6_ISR, // User Defined trap 6
|
||||
USER7_ISR, // User Defined trap 7
|
||||
USER8_ISR, // User Defined trap 8
|
||||
USER9_ISR, // User Defined trap 9
|
||||
USER10_ISR, // User Defined trap 10
|
||||
USER11_ISR, // User Defined trap 11
|
||||
USER12_ISR, // User Defined trap 12
|
||||
|
||||
// Group 1 PIE Vectors:
|
||||
#if (G11PL != 0)
|
||||
SEQ1INT_ISR, // ADC
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G12PL != 0)
|
||||
SEQ2INT_ISR, // ADC
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
rsvd_ISR,
|
||||
|
||||
#if (G14PL != 0)
|
||||
XINT1_ISR, // External
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G15PL != 0)
|
||||
XINT2_ISR, // External
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G16PL != 0)
|
||||
ADCINT_ISR, // ADC
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G17PL != 0)
|
||||
TINT0_ISR, // Timer 0
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G18PL != 0)
|
||||
WAKEINT_ISR, // WD & Low Power
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
// Group 2 PIE Vectors:
|
||||
#if (G21PL != 0)
|
||||
EPWM1_TZINT_ISR, // ePWM1 Trip Zone
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G22PL != 0)
|
||||
EPWM2_TZINT_ISR, // ePWM2 Trip Zone
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G23PL != 0)
|
||||
EPWM3_TZINT_ISR, // ePWM3 Trip Zone
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G24PL != 0)
|
||||
EPWM4_TZINT_ISR, // ePWM4 Trip Zone
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G25PL != 0)
|
||||
EPWM5_TZINT_ISR, // ePWM5 Trip Zone
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G26PL != 0)
|
||||
EPWM6_TZINT_ISR, // ePWM6 Trip Zone
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
rsvd_ISR,
|
||||
rsvd_ISR,
|
||||
|
||||
// Group 3 PIE Vectors:
|
||||
#if (G31PL != 0)
|
||||
EPWM1_INT_ISR, // ePWM1 Interrupt
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G32PL != 0)
|
||||
EPWM2_INT_ISR, // ePWM2 Interrupt
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G33PL != 0)
|
||||
EPWM3_INT_ISR, // ePWM3 Interrupt
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G34PL != 0)
|
||||
EPWM4_INT_ISR, // ePWM4 Interrupt
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G35PL != 0)
|
||||
EPWM5_INT_ISR, // ePWM5 Interrupt
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G36PL != 0)
|
||||
EPWM6_INT_ISR, // ePWM6 Interrupt
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
rsvd_ISR,
|
||||
rsvd_ISR,
|
||||
|
||||
// Group 4 PIE Vectors:
|
||||
#if (G41PL != 0)
|
||||
ECAP1_INT_ISR, // eCAP1 Interrupt
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G42PL != 0)
|
||||
ECAP2_INT_ISR, // eCAP2 Interrupt
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G43PL != 0)
|
||||
ECAP3_INT_ISR, // eCAP3 Interrupt
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G44PL != 0)
|
||||
ECAP4_INT_ISR, // eCAP4 Interrupt
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G45PL != 0)
|
||||
ECAP5_INT_ISR, // eCAP5 Interrupt
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G46PL != 0)
|
||||
ECAP6_INT_ISR, // eCAP6 Interrupt
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
rsvd_ISR,
|
||||
rsvd_ISR,
|
||||
|
||||
// Group 5 PIE Vectors:
|
||||
#if (G51PL != 0)
|
||||
EQEP1_INT_ISR, // eQEP1 Interrupt
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G52PL != 0)
|
||||
EQEP2_INT_ISR, // eQEP2 Interrupt
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
rsvd_ISR,
|
||||
rsvd_ISR,
|
||||
rsvd_ISR,
|
||||
rsvd_ISR,
|
||||
rsvd_ISR,
|
||||
rsvd_ISR,
|
||||
|
||||
// Group 6 PIE Vectors:
|
||||
#if (G61PL != 0)
|
||||
SPIRXINTA_ISR, // SPI-A
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G62PL != 0)
|
||||
SPITXINTA_ISR, // SPI-A
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G63PL != 0)
|
||||
MRINTB_ISR, // McBSP-B
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G64PL != 0)
|
||||
MXINTB_ISR, // McBSP-B
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G65PL != 0)
|
||||
MRINTA_ISR, // McBSP-A
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G66PL != 0)
|
||||
MXINTA_ISR, // McBSP-A
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
rsvd_ISR,
|
||||
rsvd_ISR,
|
||||
|
||||
// Group 7 PIE Vectors:
|
||||
#if (G71PL != 0)
|
||||
DINTCH1_ISR, // DMA-Channel 1 Interrupt
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G72PL != 0)
|
||||
DINTCH2_ISR, // DMA-Channel 2 Interrupt
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G73PL != 0)
|
||||
DINTCH3_ISR, // DMA-Channel 3 Interrupt
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G74PL != 0)
|
||||
DINTCH4_ISR, // DMA-Channel 4 Interrupt
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G75PL != 0)
|
||||
DINTCH5_ISR, // DMA-Channel 5 Interrupt
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G76PL != 0)
|
||||
DINTCH6_ISR, // DMA-Channel 6 Interrupt
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
rsvd_ISR,
|
||||
rsvd_ISR,
|
||||
|
||||
// Group 8 PIE Vectors:
|
||||
#if (G81PL != 0)
|
||||
I2CINT1A_ISR, // I2C-A
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G82PL != 0)
|
||||
I2CINT2A_ISR, // I2C-A
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
rsvd_ISR,
|
||||
rsvd_ISR,
|
||||
|
||||
#if (G85PL != 0)
|
||||
SCIRXINTC_ISR, // SCI-C
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G86PL != 0)
|
||||
SCITXINTC_ISR, // SCI-C
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
rsvd_ISR,
|
||||
rsvd_ISR,
|
||||
|
||||
// Group 9 PIE Vectors:
|
||||
#if (G91PL != 0)
|
||||
SCIRXINTA_ISR, // SCI-A
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G92PL != 0)
|
||||
SCITXINTA_ISR, // SCI-A
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G93PL != 0)
|
||||
SCIRXINTB_ISR, // SCI-B
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G94PL != 0)
|
||||
SCITXINTB_ISR, // SCI-B
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G95PL != 0)
|
||||
ECAN0INTA_ISR, // eCAN-A
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G96PL != 0)
|
||||
ECAN1INTA_ISR, // eCAN-A
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G97PL != 0)
|
||||
ECAN0INTB_ISR, // eCAN-B
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G98PL != 0)
|
||||
ECAN1INTB_ISR, // eCAN-B
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
// Group 10 PIE Vectors
|
||||
rsvd_ISR,
|
||||
rsvd_ISR,
|
||||
rsvd_ISR,
|
||||
rsvd_ISR,
|
||||
rsvd_ISR,
|
||||
rsvd_ISR,
|
||||
rsvd_ISR,
|
||||
rsvd_ISR,
|
||||
|
||||
// Group 11 PIE Vectors
|
||||
rsvd_ISR,
|
||||
rsvd_ISR,
|
||||
rsvd_ISR,
|
||||
rsvd_ISR,
|
||||
rsvd_ISR,
|
||||
rsvd_ISR,
|
||||
rsvd_ISR,
|
||||
rsvd_ISR,
|
||||
|
||||
// Group 12 PIE Vectors
|
||||
#if (G121PL != 0)
|
||||
XINT3_ISR, // External interrupt 3
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G122PL != 0)
|
||||
XINT4_ISR, // External interrupt 4
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G123PL != 0)
|
||||
XINT5_ISR, // External interrupt 5
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G124PL != 0)
|
||||
XINT6_ISR, // External interrupt 6
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G125PL != 0)
|
||||
XINT7_ISR, // External interrupt 7
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
rsvd_ISR,
|
||||
|
||||
#if (G127PL != 0)
|
||||
LVF_ISR, // Latched overflow flag
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
|
||||
#if (G128PL != 0)
|
||||
LUF_ISR, // Latched underflow flag
|
||||
#else
|
||||
INT_NOTUSED_ISR,
|
||||
#endif
|
||||
};
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// InitPieVectTable:
|
||||
//---------------------------------------------------------------------------
|
||||
// This function initializes the PIE vector table to a known state.
|
||||
// This function must be executed after boot time.
|
||||
//
|
||||
|
||||
void InitPieVectTable(void)
|
||||
{
|
||||
int16 i;
|
||||
Uint32 *Source = (void *) &PieVectTableInit;
|
||||
Uint32 *Dest = (void *) &PieVectTable;
|
||||
|
||||
EALLOW;
|
||||
for(i=0; i < 128; i++) {
|
||||
*Dest++ = *Source++;
|
||||
}
|
||||
EDIS;
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
// No more.
|
||||
//===========================================================================
|
168
Source/External/v120/DSP2833x_common/source/DSP2833x_Sci.c
vendored
Normal file
168
Source/External/v120/DSP2833x_common/source/DSP2833x_Sci.c
vendored
Normal file
@ -0,0 +1,168 @@
|
||||
// TI File $Revision: /main/2 $
|
||||
// Checkin $Date: March 1, 2007 16:06:07 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: DSP2833x_Sci.c
|
||||
//
|
||||
// TITLE: DSP2833x SCI Initialization & Support Functions.
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
|
||||
#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File
|
||||
#include "DSP2833x_Examples.h" // DSP2833x Examples Include File
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// InitSci:
|
||||
//---------------------------------------------------------------------------
|
||||
// This function initializes the SCI(s) to a known state.
|
||||
//
|
||||
void InitSci(void)
|
||||
{
|
||||
// Initialize SCI-A:
|
||||
|
||||
//tbd...
|
||||
|
||||
|
||||
// Initialize SCI-B:
|
||||
|
||||
//tbd...
|
||||
|
||||
// Initialize SCI-C:
|
||||
|
||||
//tbd...
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Example: InitSciGpio:
|
||||
//---------------------------------------------------------------------------
|
||||
// This function initializes GPIO pins to function as SCI pins
|
||||
//
|
||||
// Each GPIO pin can be configured as a GPIO pin or up to 3 different
|
||||
// peripheral functional pins. By default all pins come up as GPIO
|
||||
// inputs after reset.
|
||||
//
|
||||
// Caution:
|
||||
// Only one GPIO pin should be enabled for SCITXDA/B operation.
|
||||
// Only one GPIO pin shoudl be enabled for SCIRXDA/B operation.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
void InitSciGpio()
|
||||
{
|
||||
InitSciaGpio();
|
||||
#if DSP28_SCIB
|
||||
InitScibGpio();
|
||||
#endif // if DSP28_SCIB
|
||||
#if DSP28_SCIC
|
||||
InitScicGpio();
|
||||
#endif // if DSP28_SCIC
|
||||
}
|
||||
|
||||
void InitSciaGpio()
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
/* Enable internal pull-up for the selected pins */
|
||||
// Pull-ups can be enabled or disabled disabled by the user.
|
||||
// This will enable the pullups for the specified pins.
|
||||
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO28 = 0; // Enable pull-up for GPIO28 (SCIRXDA)
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO29 = 0; // Enable pull-up for GPIO29 (SCITXDA)
|
||||
|
||||
/* Set qualification for selected pins to asynch only */
|
||||
// Inputs are synchronized to SYSCLKOUT by default.
|
||||
// This will select asynch (no qualification) for the selected pins.
|
||||
|
||||
GpioCtrlRegs.GPAQSEL2.bit.GPIO28 = 3; // Asynch input GPIO28 (SCIRXDA)
|
||||
|
||||
/* Configure SCI-A pins using GPIO regs*/
|
||||
// This specifies which of the possible GPIO pins will be SCI functional pins.
|
||||
|
||||
GpioCtrlRegs.GPAMUX2.bit.GPIO28 = 1; // Configure GPIO28 for SCIRXDA operation
|
||||
GpioCtrlRegs.GPAMUX2.bit.GPIO29 = 1; // Configure GPIO29 for SCITXDA operation
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
#if DSP28_SCIB
|
||||
void InitScibGpio()
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
/* Enable internal pull-up for the selected pins */
|
||||
// Pull-ups can be enabled or disabled disabled by the user.
|
||||
// This will enable the pullups for the specified pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
// GpioCtrlRegs.GPAPUD.bit.GPIO9 = 0; // Enable pull-up for GPIO9 (SCITXDB)
|
||||
// GpioCtrlRegs.GPAPUD.bit.GPIO14 = 0; // Enable pull-up for GPIO14 (SCITXDB)
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO18 = 0; // Enable pull-up for GPIO18 (SCITXDB)
|
||||
// GpioCtrlRegs.GPAPUD.bit.GPIO22 = 0; // Enable pull-up for GPIO22 (SCITXDB)
|
||||
|
||||
|
||||
// GpioCtrlRegs.GPAPUD.bit.GPIO11 = 0; // Enable pull-up for GPIO11 (SCIRXDB)
|
||||
// GpioCtrlRegs.GPAPUD.bit.GPIO15 = 0; // Enable pull-up for GPIO15 (SCIRXDB)
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO19 = 0; // Enable pull-up for GPIO19 (SCIRXDB)
|
||||
// GpioCtrlRegs.GPAPUD.bit.GPIO23 = 0; // Enable pull-up for GPIO23 (SCIRXDB)
|
||||
|
||||
/* Set qualification for selected pins to asynch only */
|
||||
// This will select asynch (no qualification) for the selected pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
// GpioCtrlRegs.GPAQSEL1.bit.GPIO11 = 3; // Asynch input GPIO11 (SCIRXDB)
|
||||
// GpioCtrlRegs.GPAQSEL1.bit.GPIO15 = 3; // Asynch input GPIO15 (SCIRXDB)
|
||||
GpioCtrlRegs.GPAQSEL2.bit.GPIO19 = 3; // Asynch input GPIO19 (SCIRXDB)
|
||||
// GpioCtrlRegs.GPAQSEL2.bit.GPIO23 = 3; // Asynch input GPIO23 (SCIRXDB)
|
||||
|
||||
/* Configure SCI-B pins using GPIO regs*/
|
||||
// This specifies which of the possible GPIO pins will be SCI functional pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
// GpioCtrlRegs.GPAMUX1.bit.GPIO9 = 2; // Configure GPIO9 for SCITXDB operation
|
||||
// GpioCtrlRegs.GPAMUX1.bit.GPIO14 = 2; // Configure GPIO14 for SCITXDB operation
|
||||
GpioCtrlRegs.GPAMUX2.bit.GPIO18 = 2; // Configure GPIO18 for SCITXDB operation
|
||||
// GpioCtrlRegs.GPAMUX2.bit.GPIO22 = 3; // Configure GPIO22 for SCITXDB operation
|
||||
|
||||
// GpioCtrlRegs.GPAMUX1.bit.GPIO11 = 2; // Configure GPIO11 for SCIRXDB operation
|
||||
// GpioCtrlRegs.GPAMUX1.bit.GPIO15 = 2; // Configure GPIO15 for SCIRXDB operation
|
||||
GpioCtrlRegs.GPAMUX2.bit.GPIO19 = 2; // Configure GPIO19 for SCIRXDB operation
|
||||
// GpioCtrlRegs.GPAMUX2.bit.GPIO23 = 3; // Configure GPIO23 for SCIRXDB operation
|
||||
|
||||
EDIS;
|
||||
}
|
||||
#endif // if DSP28_SCIB
|
||||
|
||||
#if DSP28_SCIC
|
||||
void InitScicGpio()
|
||||
{
|
||||
EALLOW;
|
||||
|
||||
/* Enable internal pull-up for the selected pins */
|
||||
// Pull-ups can be enabled or disabled disabled by the user.
|
||||
// This will enable the pullups for the specified pins.
|
||||
|
||||
GpioCtrlRegs.GPBPUD.bit.GPIO62 = 0; // Enable pull-up for GPIO62 (SCIRXDC)
|
||||
GpioCtrlRegs.GPBPUD.bit.GPIO63 = 0; // Enable pull-up for GPIO63 (SCITXDC)
|
||||
|
||||
/* Set qualification for selected pins to asynch only */
|
||||
// Inputs are synchronized to SYSCLKOUT by default.
|
||||
// This will select asynch (no qualification) for the selected pins.
|
||||
|
||||
GpioCtrlRegs.GPBQSEL2.bit.GPIO62 = 3; // Asynch input GPIO62 (SCIRXDC)
|
||||
|
||||
/* Configure SCI-C pins using GPIO regs*/
|
||||
// This specifies which of the possible GPIO pins will be SCI functional pins.
|
||||
|
||||
GpioCtrlRegs.GPBMUX2.bit.GPIO62 = 1; // Configure GPIO62 for SCIRXDC operation
|
||||
GpioCtrlRegs.GPBMUX2.bit.GPIO63 = 1; // Configure GPIO63 for SCITXDC operation
|
||||
|
||||
EDIS;
|
||||
}
|
||||
#endif // if DSP28_SCIC
|
||||
|
||||
|
||||
//===========================================================================
|
||||
// End of file.
|
||||
//===========================================================================
|
107
Source/External/v120/DSP2833x_common/source/DSP2833x_Spi.c
vendored
Normal file
107
Source/External/v120/DSP2833x_common/source/DSP2833x_Spi.c
vendored
Normal file
@ -0,0 +1,107 @@
|
||||
// TI File $Revision: /main/1 $
|
||||
// Checkin $Date: August 18, 2006 13:46:44 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: DSP2833x_Spi.c
|
||||
//
|
||||
// TITLE: DSP2833x SPI Initialization & Support Functions.
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
|
||||
#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File
|
||||
#include "DSP2833x_Examples.h" // DSP2833x Examples Include File
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// InitSPI:
|
||||
//---------------------------------------------------------------------------
|
||||
// This function initializes the SPI(s) to a known state.
|
||||
//
|
||||
void InitSpi(void)
|
||||
{
|
||||
// Initialize SPI-A/B/C/D
|
||||
|
||||
//tbd...
|
||||
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Example: InitSpiGpio:
|
||||
//---------------------------------------------------------------------------
|
||||
// This function initializes GPIO pins to function as SPI pins
|
||||
//
|
||||
// Each GPIO pin can be configured as a GPIO pin or up to 3 different
|
||||
// peripheral functional pins. By default all pins come up as GPIO
|
||||
// inputs after reset.
|
||||
//
|
||||
// Caution:
|
||||
// For each SPI peripheral
|
||||
// Only one GPIO pin should be enabled for SPISOMO operation.
|
||||
// Only one GPIO pin should be enabled for SPISOMI operation.
|
||||
// Only one GPIO pin should be enabled for SPICLKA operation.
|
||||
// Only one GPIO pin should be enabled for SPISTEA operation.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
void InitSpiGpio()
|
||||
{
|
||||
|
||||
InitSpiaGpio();
|
||||
}
|
||||
|
||||
void InitSpiaGpio()
|
||||
{
|
||||
|
||||
EALLOW;
|
||||
/* Enable internal pull-up for the selected pins */
|
||||
// Pull-ups can be enabled or disabled by the user.
|
||||
// This will enable the pullups for the specified pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO16 = 0; // Enable pull-up on GPIO16 (SPISIMOA)
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO17 = 0; // Enable pull-up on GPIO17 (SPISOMIA)
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO18 = 0; // Enable pull-up on GPIO18 (SPICLKA)
|
||||
GpioCtrlRegs.GPAPUD.bit.GPIO19 = 0; // Enable pull-up on GPIO19 (SPISTEA)
|
||||
|
||||
|
||||
// GpioCtrlRegs.GPBPUD.bit.GPIO54 = 0; // Enable pull-up on GPIO54 (SPISIMOA)
|
||||
// GpioCtrlRegs.GPBPUD.bit.GPIO55 = 0; // Enable pull-up on GPIO55 (SPISOMIA)
|
||||
// GpioCtrlRegs.GPBPUD.bit.GPIO56 = 0; // Enable pull-up on GPIO56 (SPICLKA)
|
||||
// GpioCtrlRegs.GPBPUD.bit.GPIO57 = 0; // Enable pull-up on GPIO57 (SPISTEA)
|
||||
|
||||
/* Set qualification for selected pins to asynch only */
|
||||
// This will select asynch (no qualification) for the selected pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAQSEL2.bit.GPIO16 = 3; // Asynch input GPIO16 (SPISIMOA)
|
||||
GpioCtrlRegs.GPAQSEL2.bit.GPIO17 = 3; // Asynch input GPIO17 (SPISOMIA)
|
||||
GpioCtrlRegs.GPAQSEL2.bit.GPIO18 = 3; // Asynch input GPIO18 (SPICLKA)
|
||||
GpioCtrlRegs.GPAQSEL2.bit.GPIO19 = 3; // Asynch input GPIO19 (SPISTEA)
|
||||
|
||||
// GpioCtrlRegs.GPBQSEL2.bit.GPIO54 = 3; // Asynch input GPIO16 (SPISIMOA)
|
||||
// GpioCtrlRegs.GPBQSEL2.bit.GPIO55 = 3; // Asynch input GPIO17 (SPISOMIA)
|
||||
// GpioCtrlRegs.GPBQSEL2.bit.GPIO56 = 3; // Asynch input GPIO18 (SPICLKA)
|
||||
// GpioCtrlRegs.GPBQSEL2.bit.GPIO57 = 3; // Asynch input GPIO19 (SPISTEA)
|
||||
|
||||
|
||||
/* Configure SPI-A pins using GPIO regs*/
|
||||
// This specifies which of the possible GPIO pins will be SPI functional pins.
|
||||
// Comment out other unwanted lines.
|
||||
|
||||
GpioCtrlRegs.GPAMUX2.bit.GPIO16 = 1; // Configure GPIO16 as SPISIMOA
|
||||
GpioCtrlRegs.GPAMUX2.bit.GPIO17 = 1; // Configure GPIO17 as SPISOMIA
|
||||
GpioCtrlRegs.GPAMUX2.bit.GPIO18 = 1; // Configure GPIO18 as SPICLKA
|
||||
GpioCtrlRegs.GPAMUX2.bit.GPIO19 = 1; // Configure GPIO19 as SPISTEA
|
||||
|
||||
// GpioCtrlRegs.GPBMUX2.bit.GPIO54 = 1; // Configure GPIO54 as SPISIMOA
|
||||
// GpioCtrlRegs.GPBMUX2.bit.GPIO55 = 1; // Configure GPIO55 as SPISOMIA
|
||||
// GpioCtrlRegs.GPBMUX2.bit.GPIO56 = 1; // Configure GPIO56 as SPICLKA
|
||||
// GpioCtrlRegs.GPBMUX2.bit.GPIO57 = 1; // Configure GPIO57 as SPISTEA
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
// End of file.
|
||||
//===========================================================================
|
415
Source/External/v120/DSP2833x_common/source/DSP2833x_SysCtrl.c
vendored
Normal file
415
Source/External/v120/DSP2833x_common/source/DSP2833x_SysCtrl.c
vendored
Normal file
@ -0,0 +1,415 @@
|
||||
// TI File $Revision: /main/7 $
|
||||
// Checkin $Date: September 20, 2007 13:30:31 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: DSP2833x_SysCtrl.c
|
||||
//
|
||||
// TITLE: DSP2833x Device System Control Initialization & Support Functions.
|
||||
//
|
||||
// DESCRIPTION:
|
||||
//
|
||||
// Example initialization of system resources.
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
|
||||
|
||||
#include "DSP2833x_Device.h" // Headerfile Include File
|
||||
#include "DSP2833x_Examples.h" // Examples Include File
|
||||
|
||||
#include "RS485.h"
|
||||
#include "message.h"
|
||||
|
||||
// Functions that will be run from RAM need to be assigned to
|
||||
// a different section. This section will then be mapped to a load and
|
||||
// run address using the linker cmd file.
|
||||
|
||||
#pragma CODE_SECTION(InitFlash, "ramfuncs");
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// InitSysCtrl:
|
||||
//---------------------------------------------------------------------------
|
||||
// This function initializes the System Control registers to a known state.
|
||||
// - Disables the watchdog
|
||||
// - Set the PLLCR for proper SYSCLKOUT frequency
|
||||
// - Set the pre-scaler for the high and low frequency peripheral clocks
|
||||
// - Enable the clocks to the peripherals
|
||||
|
||||
long SYSCLKOUT, LSPCLK, HSPCLK;
|
||||
|
||||
void InitSysCtrl(void)
|
||||
{
|
||||
|
||||
// Disable the watchdog
|
||||
DisableDog();
|
||||
|
||||
// Initialize the PLL control: PLLCR and DIVSEL
|
||||
// DSP28_PLLCR and DSP28_DIVSEL are defined in DSP2833x_Examples.h
|
||||
InitPll(DSP28_PLLCR,DSP28_DIVSEL);
|
||||
|
||||
// Initialize the peripheral clocks
|
||||
InitPeripheralClocks();
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Example: InitFlash:
|
||||
//---------------------------------------------------------------------------
|
||||
// This function initializes the Flash Control registers
|
||||
|
||||
// CAUTION
|
||||
// This function MUST be executed out of RAM. Executing it
|
||||
// out of OTP/Flash will yield unpredictable results
|
||||
|
||||
void InitFlash(void)
|
||||
{
|
||||
EALLOW;
|
||||
//Enable Flash Pipeline mode to improve performance
|
||||
//of code executed from Flash.
|
||||
FlashRegs.FOPT.bit.ENPIPE = 1;
|
||||
|
||||
// CAUTION
|
||||
//Minimum waitstates required for the flash operating
|
||||
//at a given CPU rate must be characterized by TI.
|
||||
//Refer to the datasheet for the latest information.
|
||||
#if CPU_FRQ_150MHZ
|
||||
//Set the Paged Waitstate for the Flash
|
||||
FlashRegs.FBANKWAIT.bit.PAGEWAIT = 5;
|
||||
|
||||
//Set the Random Waitstate for the Flash
|
||||
FlashRegs.FBANKWAIT.bit.RANDWAIT = 5;
|
||||
|
||||
//Set the Waitstate for the OTP
|
||||
FlashRegs.FOTPWAIT.bit.OTPWAIT = 8;
|
||||
#endif
|
||||
|
||||
#if CPU_FRQ_100MHZ
|
||||
//Set the Paged Waitstate for the Flash
|
||||
FlashRegs.FBANKWAIT.bit.PAGEWAIT = 3;
|
||||
|
||||
//Set the Random Waitstate for the Flash
|
||||
FlashRegs.FBANKWAIT.bit.RANDWAIT = 3;
|
||||
|
||||
//Set the Waitstate for the OTP
|
||||
FlashRegs.FOTPWAIT.bit.OTPWAIT = 5;
|
||||
#endif
|
||||
// CAUTION
|
||||
//ONLY THE DEFAULT VALUE FOR THESE 2 REGISTERS SHOULD BE USED
|
||||
FlashRegs.FSTDBYWAIT.bit.STDBYWAIT = 0x01FF;
|
||||
FlashRegs.FACTIVEWAIT.bit.ACTIVEWAIT = 0x01FF;
|
||||
EDIS;
|
||||
|
||||
//Force a pipeline flush to ensure that the write to
|
||||
//the last register configured occurs before returning.
|
||||
|
||||
asm(" RPT #7 || NOP");
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Example: ServiceDog:
|
||||
//---------------------------------------------------------------------------
|
||||
// This function resets the watchdog timer.
|
||||
// Enable this function for using ServiceDog in the application
|
||||
|
||||
void ServiceDog(void)
|
||||
{
|
||||
if(SysCtrlRegs.PLLCR.bit.DIV == DSP28_PLLCR)
|
||||
if(SysCtrlRegs.PLLSTS.bit.DIVSEL == DSP28_DIVSEL)
|
||||
{
|
||||
EALLOW;
|
||||
SysCtrlRegs.WDKEY = 0x0055;
|
||||
SysCtrlRegs.WDKEY = 0x00AA;
|
||||
EDIS;
|
||||
return;
|
||||
} }
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Example: DisableDog:
|
||||
//---------------------------------------------------------------------------
|
||||
// This function disables the watchdog timer.
|
||||
|
||||
void DisableDog(void)
|
||||
{
|
||||
EALLOW;
|
||||
SysCtrlRegs.WDCR= 0x0068;
|
||||
EDIS;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Example: InitPll:
|
||||
//---------------------------------------------------------------------------
|
||||
// This function initializes the PLLCR register.
|
||||
|
||||
void InitPll(Uint16 divval, Uint16 divsel)
|
||||
{
|
||||
long clkVal;
|
||||
|
||||
// Make sure the PLL is not running in limp mode
|
||||
if (SysCtrlRegs.PLLSTS.bit.MCLKSTS != 0)
|
||||
{
|
||||
// Missing external clock has been detected
|
||||
// Replace this line with a call to an appropriate
|
||||
// SystemShutdown(); function.
|
||||
asm(" ESTOP0");
|
||||
}
|
||||
|
||||
// DIVSEL MUST be 0 before PLLCR can be changed from
|
||||
// 0x0000. It is set to 0 by an external reset XRSn
|
||||
// This puts us in 1/4
|
||||
if (SysCtrlRegs.PLLSTS.bit.DIVSEL != 0)
|
||||
{
|
||||
EALLOW;
|
||||
SysCtrlRegs.PLLSTS.bit.DIVSEL = 0;
|
||||
EDIS;
|
||||
}
|
||||
|
||||
// Change the PLLCR
|
||||
// if (SysCtrlRegs.PLLCR.bit.DIV != val)
|
||||
{
|
||||
|
||||
EALLOW;
|
||||
// Before setting PLLCR turn off missing clock detect logic
|
||||
SysCtrlRegs.PLLSTS.bit.MCLKOFF = 1;
|
||||
SysCtrlRegs.PLLCR.bit.DIV = divval;
|
||||
EDIS;
|
||||
|
||||
clkVal = (divval)?divval:1;
|
||||
clkVal = XCLKIN * clkVal;
|
||||
|
||||
// Optional: Wait for PLL to lock.
|
||||
// During this time the CPU will switch to OSCCLK/2 until
|
||||
// the PLL is stable. Once the PLL is stable the CPU will
|
||||
// switch to the new PLL value.
|
||||
//
|
||||
// This time-to-lock is monitored by a PLL lock counter.
|
||||
//
|
||||
// Code is not required to sit and wait for the PLL to lock.
|
||||
// However, if the code does anything that is timing critical,
|
||||
// and requires the correct clock be locked, then it is best to
|
||||
// wait until this switching has completed.
|
||||
|
||||
// Wait for the PLL lock bit to be set.
|
||||
|
||||
// The watchdog should be disabled before this loop, or fed within
|
||||
// the loop via ServiceDog().
|
||||
|
||||
// Uncomment to disable the watchdog
|
||||
DisableDog();
|
||||
|
||||
while(SysCtrlRegs.PLLSTS.bit.PLLLOCKS != 1)
|
||||
{
|
||||
// Uncomment to service the watchdog
|
||||
// ServiceDog();
|
||||
}
|
||||
|
||||
EALLOW;
|
||||
SysCtrlRegs.PLLSTS.bit.MCLKOFF = 0;
|
||||
EDIS;
|
||||
}
|
||||
|
||||
// If switching to 1/2
|
||||
if((divsel == 1)||(divsel == 2))
|
||||
{
|
||||
EALLOW;
|
||||
SysCtrlRegs.PLLSTS.bit.DIVSEL = divsel;
|
||||
EDIS;
|
||||
}
|
||||
|
||||
if(divsel == 0) clkVal /= 4;
|
||||
if(divsel == 1) clkVal /= 4;
|
||||
if(divsel == 2) clkVal /= 2;
|
||||
|
||||
// If switching to 1/1
|
||||
// * First go to 1/2 and let the power settle
|
||||
// The time required will depend on the system, this is only an example
|
||||
// * Then switch to 1/1
|
||||
|
||||
if((divval == 0) && (divsel == 3))
|
||||
{
|
||||
EALLOW;
|
||||
SysCtrlRegs.PLLSTS.bit.DIVSEL = 2;
|
||||
DELAY_US(50L);
|
||||
// pause_us(50L);
|
||||
SysCtrlRegs.PLLSTS.bit.DIVSEL = 3;
|
||||
EDIS;
|
||||
}
|
||||
|
||||
SYSCLKOUT = clkVal;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// Example: InitPeripheralClocks:
|
||||
//---------------------------------------------------------------------------
|
||||
// This function initializes the clocks to the peripheral modules.
|
||||
// First the high and low clock prescalers are set
|
||||
// Second the clocks are enabled to each peripheral.
|
||||
// To reduce power, leave clocks to unused peripherals disabled
|
||||
//
|
||||
// Note: If a peripherals clock is not enabled then you cannot
|
||||
// read or write to the registers for that peripheral
|
||||
|
||||
void InitPeripheralClocks(void)
|
||||
{
|
||||
long Val;
|
||||
|
||||
EALLOW;
|
||||
|
||||
// HISPCP/LOSPCP prescale register settings, normally it will be set to default values
|
||||
|
||||
#if CLKMULT == 0
|
||||
SysCtrlRegs.HISPCP.all = 0x0000;
|
||||
#endif
|
||||
#if CLKMULT == 1
|
||||
SysCtrlRegs.HISPCP.all = 0x0000;
|
||||
#endif
|
||||
#if CLKMULT == 2
|
||||
SysCtrlRegs.HISPCP.all = 0x0001;
|
||||
#endif
|
||||
#if CLKMULT == 3
|
||||
SysCtrlRegs.HISPCP.all = 0x0002;
|
||||
#endif
|
||||
#if CLKMULT == 4
|
||||
SysCtrlRegs.HISPCP.all = 0x0002;
|
||||
#endif
|
||||
#if CLKMULT == 5
|
||||
SysCtrlRegs.HISPCP.all = 0x0003;
|
||||
#endif
|
||||
|
||||
SysCtrlRegs.LOSPCP.all = 0x0000;
|
||||
|
||||
Val = (SysCtrlRegs.HISPCP.all)?
|
||||
SysCtrlRegs.HISPCP.all*2 : 1;
|
||||
Val = SYSCLKOUT / Val;
|
||||
|
||||
HSPCLK = Val;
|
||||
|
||||
Val = (SysCtrlRegs.LOSPCP.all)?
|
||||
SysCtrlRegs.LOSPCP.all*2 : 1;
|
||||
Val = SYSCLKOUT / Val;
|
||||
LSPCLK = Val;
|
||||
|
||||
// XCLKOUT to SYSCLKOUT ratio. By default XCLKOUT = 1/4 SYSCLKOUT
|
||||
// XTIMCLK = SYSCLKOUT/2
|
||||
XintfRegs.XINTCNF2.bit.XTIMCLK = 1;
|
||||
// XCLKOUT = XTIMCLK/2
|
||||
XintfRegs.XINTCNF2.bit.CLKMODE = 1;
|
||||
// Enable XCLKOUT
|
||||
XintfRegs.XINTCNF2.bit.CLKOFF = 0;
|
||||
|
||||
// Peripheral clock enables set for the selected peripherals.
|
||||
// If you are not using a peripheral leave the clock off
|
||||
// to save on power.
|
||||
//
|
||||
// Note: not all peripherals are available on all 2833x derivates.
|
||||
// Refer to the datasheet for your particular device.
|
||||
//
|
||||
// This function is not written to be an example of efficient code.
|
||||
|
||||
SysCtrlRegs.PCLKCR0.bit.ADCENCLK = 1; // ADC
|
||||
|
||||
// *IMPORTANT*
|
||||
// The ADC_cal function, which copies the ADC calibration values from TI reserved
|
||||
// OTP into the ADCREFSEL and ADCOFFTRIM registers, occurs automatically in the
|
||||
// Boot ROM. If the boot ROM code is bypassed during the debug process, the
|
||||
// following function MUST be called for the ADC to function according
|
||||
// to specification. The clocks to the ADC MUST be enabled before calling this
|
||||
// function.
|
||||
// See the device data manual and/or the ADC Reference
|
||||
// Manual for more information.
|
||||
|
||||
ADC_cal();
|
||||
|
||||
|
||||
SysCtrlRegs.PCLKCR0.bit.I2CAENCLK = 1; // I2C
|
||||
SysCtrlRegs.PCLKCR0.bit.SCIAENCLK = 1; // SCI-A
|
||||
SysCtrlRegs.PCLKCR0.bit.SCIBENCLK = 1; // SCI-B
|
||||
SysCtrlRegs.PCLKCR0.bit.SCICENCLK = 1; // SCI-C
|
||||
SysCtrlRegs.PCLKCR0.bit.SPIAENCLK = 1; // SPI-A
|
||||
SysCtrlRegs.PCLKCR0.bit.MCBSPAENCLK = 1; // McBSP-A
|
||||
SysCtrlRegs.PCLKCR0.bit.MCBSPBENCLK = 1; // McBSP-B
|
||||
SysCtrlRegs.PCLKCR0.bit.ECANAENCLK=1; // eCAN-A
|
||||
SysCtrlRegs.PCLKCR0.bit.ECANBENCLK=1; // eCAN-B
|
||||
|
||||
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0; // Disable TBCLK within the ePWM
|
||||
SysCtrlRegs.PCLKCR1.bit.EPWM1ENCLK = 1; // ePWM1
|
||||
SysCtrlRegs.PCLKCR1.bit.EPWM2ENCLK = 1; // ePWM2
|
||||
SysCtrlRegs.PCLKCR1.bit.EPWM3ENCLK = 1; // ePWM3
|
||||
SysCtrlRegs.PCLKCR1.bit.EPWM4ENCLK = 1; // ePWM4
|
||||
SysCtrlRegs.PCLKCR1.bit.EPWM5ENCLK = 1; // ePWM5
|
||||
SysCtrlRegs.PCLKCR1.bit.EPWM6ENCLK = 1; // ePWM6
|
||||
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1; // Enable TBCLK within the ePWM
|
||||
|
||||
SysCtrlRegs.PCLKCR1.bit.ECAP3ENCLK = 1; // eCAP3
|
||||
SysCtrlRegs.PCLKCR1.bit.ECAP4ENCLK = 1; // eCAP4
|
||||
SysCtrlRegs.PCLKCR1.bit.ECAP5ENCLK = 1; // eCAP5
|
||||
SysCtrlRegs.PCLKCR1.bit.ECAP6ENCLK = 1; // eCAP6
|
||||
SysCtrlRegs.PCLKCR1.bit.ECAP1ENCLK = 1; // eCAP1
|
||||
SysCtrlRegs.PCLKCR1.bit.ECAP2ENCLK = 1; // eCAP2
|
||||
SysCtrlRegs.PCLKCR1.bit.EQEP1ENCLK = 1; // eQEP1
|
||||
SysCtrlRegs.PCLKCR1.bit.EQEP2ENCLK = 1; // eQEP2
|
||||
|
||||
SysCtrlRegs.PCLKCR3.bit.CPUTIMER0ENCLK = 1; // CPU Timer 0
|
||||
SysCtrlRegs.PCLKCR3.bit.CPUTIMER1ENCLK = 1; // CPU Timer 1
|
||||
SysCtrlRegs.PCLKCR3.bit.CPUTIMER2ENCLK = 1; // CPU Timer 2
|
||||
|
||||
SysCtrlRegs.PCLKCR3.bit.DMAENCLK = 1; // DMA Clock
|
||||
SysCtrlRegs.PCLKCR3.bit.XINTFENCLK = 1; // XTIMCLK
|
||||
SysCtrlRegs.PCLKCR3.bit.GPIOINENCLK = 1; // GPIO input clock
|
||||
|
||||
EDIS;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Example: CsmUnlock:
|
||||
//---------------------------------------------------------------------------
|
||||
// This function unlocks the CSM. User must replace 0xFFFF's with current
|
||||
// password for the DSP. Returns 1 if unlock is successful.
|
||||
|
||||
#define STATUS_FAIL 0
|
||||
#define STATUS_SUCCESS 1
|
||||
|
||||
Uint16 CsmUnlock()
|
||||
{
|
||||
volatile Uint16 temp;
|
||||
|
||||
// Load the key registers with the current password. The 0xFFFF's are dummy
|
||||
// passwords. User should replace them with the correct password for the DSP.
|
||||
|
||||
EALLOW;
|
||||
CsmRegs.KEY0 = 0xFFFF;
|
||||
CsmRegs.KEY1 = 0xFFFF;
|
||||
CsmRegs.KEY2 = 0xFFFF;
|
||||
CsmRegs.KEY3 = 0xFFFF;
|
||||
CsmRegs.KEY4 = 0xFFFF;
|
||||
CsmRegs.KEY5 = 0xFFFF;
|
||||
CsmRegs.KEY6 = 0xFFFF;
|
||||
CsmRegs.KEY7 = 0xFFFF;
|
||||
EDIS;
|
||||
|
||||
// Perform a dummy read of the password locations
|
||||
// if they match the key values, the CSM will unlock
|
||||
|
||||
temp = CsmPwl.PSWD0;
|
||||
temp = CsmPwl.PSWD1;
|
||||
temp = CsmPwl.PSWD2;
|
||||
temp = CsmPwl.PSWD3;
|
||||
temp = CsmPwl.PSWD4;
|
||||
temp = CsmPwl.PSWD5;
|
||||
temp = CsmPwl.PSWD6;
|
||||
temp = CsmPwl.PSWD7;
|
||||
|
||||
// If the CSM unlocked, return succes, otherwise return
|
||||
// failure.
|
||||
if (CsmRegs.CSMSCR.bit.SECURE == 0) return STATUS_SUCCESS;
|
||||
else return STATUS_FAIL;
|
||||
|
||||
}
|
||||
|
||||
|
||||
//===========================================================================
|
||||
// End of file.
|
||||
//===========================================================================
|
242
Source/External/v120/DSP2833x_common/source/DSP2833x_Xintf.c
vendored
Normal file
242
Source/External/v120/DSP2833x_common/source/DSP2833x_Xintf.c
vendored
Normal file
@ -0,0 +1,242 @@
|
||||
// TI File $Revision: /main/5 $
|
||||
// Checkin $Date: August 16, 2007 11:06:26 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: DSP2833x_Xintf.c
|
||||
//
|
||||
// TITLE: DSP2833x Device External Interface Init & Support Functions.
|
||||
//
|
||||
// DESCRIPTION:
|
||||
//
|
||||
// Example initialization function for the external interface (XINTF).
|
||||
// This example configures the XINTF to its default state. For an
|
||||
// example of how this function being used refer to the
|
||||
// examples/run_from_xintf project.
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
|
||||
#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File
|
||||
#include "DSP2833x_Examples.h" // DSP2833x Examples Include File
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// InitXINTF:
|
||||
//---------------------------------------------------------------------------
|
||||
// This function initializes the External Interface the default reset state.
|
||||
//
|
||||
// Do not modify the timings of the XINTF while running from the XINTF. Doing
|
||||
// so can yield unpredictable results
|
||||
|
||||
|
||||
void InitXintf(void)
|
||||
{
|
||||
// This shows how to write to the XINTF registers. The
|
||||
// values used here are the default state after reset.
|
||||
// Different hardware will require a different configuration.
|
||||
|
||||
// For an example of an XINTF configuration used with the
|
||||
// F28335 eZdsp, refer to the examples/run_from_xintf project.
|
||||
|
||||
// Any changes to XINTF timing should only be made by code
|
||||
// running outside of the XINTF.
|
||||
|
||||
// All Zones---------------------------------
|
||||
// Timing for all zones based on XTIMCLK = 1/2 SYSCLKOUT
|
||||
EALLOW;
|
||||
XintfRegs.XINTCNF2.bit.XTIMCLK = 1;
|
||||
// No write buffering
|
||||
XintfRegs.XINTCNF2.bit.WRBUFF = 0;
|
||||
// XCLKOUT is enabled
|
||||
XintfRegs.XINTCNF2.bit.CLKOFF = 0;
|
||||
// XCLKOUT = XTIMCLK/2
|
||||
XintfRegs.XINTCNF2.bit.CLKMODE = 1;
|
||||
|
||||
|
||||
// Zone 0------------------------------------
|
||||
// When using ready, ACTIVE must be 1 or greater
|
||||
// Lead must always be 1 or greater
|
||||
// Zone write timing
|
||||
XintfRegs.XTIMING0.bit.XWRLEAD = 3;
|
||||
XintfRegs.XTIMING0.bit.XWRACTIVE = 7;
|
||||
XintfRegs.XTIMING0.bit.XWRTRAIL = 3;
|
||||
// Zone read timing
|
||||
XintfRegs.XTIMING0.bit.XRDLEAD = 3;
|
||||
XintfRegs.XTIMING0.bit.XRDACTIVE = 7;
|
||||
XintfRegs.XTIMING0.bit.XRDTRAIL = 3;
|
||||
|
||||
// double all Zone read/write lead/active/trail timing
|
||||
XintfRegs.XTIMING0.bit.X2TIMING = 1;
|
||||
|
||||
// Zone will sample XREADY signal
|
||||
XintfRegs.XTIMING0.bit.USEREADY = 1;
|
||||
XintfRegs.XTIMING0.bit.READYMODE = 1; // sample asynchronous
|
||||
|
||||
// Size must be either:
|
||||
// 0,1 = x32 or
|
||||
// 1,1 = x16 other values are reserved
|
||||
XintfRegs.XTIMING0.bit.XSIZE = 3;
|
||||
|
||||
// Zone 6------------------------------------
|
||||
// When using ready, ACTIVE must be 1 or greater
|
||||
// Lead must always be 1 or greater
|
||||
// Zone write timing
|
||||
XintfRegs.XTIMING6.bit.XWRLEAD = 3;
|
||||
XintfRegs.XTIMING6.bit.XWRACTIVE = 7;
|
||||
XintfRegs.XTIMING6.bit.XWRTRAIL = 3;
|
||||
// Zone read timing
|
||||
XintfRegs.XTIMING6.bit.XRDLEAD = 3;
|
||||
XintfRegs.XTIMING6.bit.XRDACTIVE = 7;
|
||||
XintfRegs.XTIMING6.bit.XRDTRAIL = 3;
|
||||
|
||||
// double all Zone read/write lead/active/trail timing
|
||||
XintfRegs.XTIMING6.bit.X2TIMING = 1;
|
||||
|
||||
// Zone will sample XREADY signal
|
||||
XintfRegs.XTIMING6.bit.USEREADY = 1;
|
||||
XintfRegs.XTIMING6.bit.READYMODE = 1; // sample asynchronous
|
||||
|
||||
// Size must be either:
|
||||
// 0,1 = x32 or
|
||||
// 1,1 = x16 other values are reserved
|
||||
XintfRegs.XTIMING6.bit.XSIZE = 3;
|
||||
|
||||
|
||||
// Zone 7------------------------------------
|
||||
// When using ready, ACTIVE must be 1 or greater
|
||||
// Lead must always be 1 or greater
|
||||
// Zone write timing
|
||||
XintfRegs.XTIMING7.bit.XWRLEAD = 3;
|
||||
XintfRegs.XTIMING7.bit.XWRACTIVE = 7;
|
||||
XintfRegs.XTIMING7.bit.XWRTRAIL = 3;
|
||||
// Zone read timing
|
||||
XintfRegs.XTIMING7.bit.XRDLEAD = 3;
|
||||
XintfRegs.XTIMING7.bit.XRDACTIVE = 7;
|
||||
XintfRegs.XTIMING7.bit.XRDTRAIL = 3;
|
||||
|
||||
// double all Zone read/write lead/active/trail timing
|
||||
XintfRegs.XTIMING7.bit.X2TIMING = 1;
|
||||
|
||||
// Zone will sample XREADY signal
|
||||
XintfRegs.XTIMING7.bit.USEREADY = 1;
|
||||
XintfRegs.XTIMING7.bit.READYMODE = 1; // sample asynchronous
|
||||
|
||||
// Size must be either:
|
||||
// 0,1 = x32 or
|
||||
// 1,1 = x16 other values are reserved
|
||||
XintfRegs.XTIMING7.bit.XSIZE = 3;
|
||||
|
||||
// Bank switching
|
||||
// Assume Zone 7 is slow, so add additional BCYC cycles
|
||||
// when ever switching from Zone 7 to another Zone.
|
||||
// This will help avoid bus contention.
|
||||
XintfRegs.XBANK.bit.BANK = 7;
|
||||
XintfRegs.XBANK.bit.BCYC = 7;
|
||||
EDIS;
|
||||
//Force a pipeline flush to ensure that the write to
|
||||
//the last register configured occurs before returning.
|
||||
|
||||
InitXintf16Gpio();
|
||||
// InitXintf32Gpio();
|
||||
|
||||
asm(" RPT #7 || NOP");
|
||||
|
||||
}
|
||||
|
||||
void InitXintf32Gpio()
|
||||
{
|
||||
EALLOW;
|
||||
GpioCtrlRegs.GPBMUX2.bit.GPIO48 = 3; // XD31
|
||||
GpioCtrlRegs.GPBMUX2.bit.GPIO49 = 3; // XD30
|
||||
GpioCtrlRegs.GPBMUX2.bit.GPIO50 = 3; // XD29
|
||||
GpioCtrlRegs.GPBMUX2.bit.GPIO51 = 3; // XD28
|
||||
GpioCtrlRegs.GPBMUX2.bit.GPIO52 = 3; // XD27
|
||||
GpioCtrlRegs.GPBMUX2.bit.GPIO53 = 3; // XD26
|
||||
GpioCtrlRegs.GPBMUX2.bit.GPIO54 = 3; // XD25
|
||||
GpioCtrlRegs.GPBMUX2.bit.GPIO55 = 3; // XD24
|
||||
GpioCtrlRegs.GPBMUX2.bit.GPIO56 = 3; // XD23
|
||||
GpioCtrlRegs.GPBMUX2.bit.GPIO57 = 3; // XD22
|
||||
GpioCtrlRegs.GPBMUX2.bit.GPIO58 = 3; // XD21
|
||||
GpioCtrlRegs.GPBMUX2.bit.GPIO59 = 3; // XD20
|
||||
GpioCtrlRegs.GPBMUX2.bit.GPIO60 = 3; // XD19
|
||||
GpioCtrlRegs.GPBMUX2.bit.GPIO61 = 3; // XD18
|
||||
GpioCtrlRegs.GPBMUX2.bit.GPIO62 = 3; // XD17
|
||||
GpioCtrlRegs.GPBMUX2.bit.GPIO63 = 3; // XD16
|
||||
|
||||
GpioCtrlRegs.GPBQSEL2.bit.GPIO48 = 3; // XD31 asynchronous input
|
||||
GpioCtrlRegs.GPBQSEL2.bit.GPIO49 = 3; // XD30 asynchronous input
|
||||
GpioCtrlRegs.GPBQSEL2.bit.GPIO50 = 3; // XD29 asynchronous input
|
||||
GpioCtrlRegs.GPBQSEL2.bit.GPIO51 = 3; // XD28 asynchronous input
|
||||
GpioCtrlRegs.GPBQSEL2.bit.GPIO52 = 3; // XD27 asynchronous input
|
||||
GpioCtrlRegs.GPBQSEL2.bit.GPIO53 = 3; // XD26 asynchronous input
|
||||
GpioCtrlRegs.GPBQSEL2.bit.GPIO54 = 3; // XD25 asynchronous input
|
||||
GpioCtrlRegs.GPBQSEL2.bit.GPIO55 = 3; // XD24 asynchronous input
|
||||
GpioCtrlRegs.GPBQSEL2.bit.GPIO56 = 3; // XD23 asynchronous input
|
||||
GpioCtrlRegs.GPBQSEL2.bit.GPIO57 = 3; // XD22 asynchronous input
|
||||
GpioCtrlRegs.GPBQSEL2.bit.GPIO58 = 3; // XD21 asynchronous input
|
||||
GpioCtrlRegs.GPBQSEL2.bit.GPIO59 = 3; // XD20 asynchronous input
|
||||
GpioCtrlRegs.GPBQSEL2.bit.GPIO60 = 3; // XD19 asynchronous input
|
||||
GpioCtrlRegs.GPBQSEL2.bit.GPIO61 = 3; // XD18 asynchronous input
|
||||
GpioCtrlRegs.GPBQSEL2.bit.GPIO62 = 3; // XD17 asynchronous input
|
||||
GpioCtrlRegs.GPBQSEL2.bit.GPIO63 = 3; // XD16 asynchronous input
|
||||
|
||||
|
||||
InitXintf16Gpio();
|
||||
}
|
||||
|
||||
void InitXintf16Gpio()
|
||||
{
|
||||
EALLOW;
|
||||
GpioCtrlRegs.GPCMUX1.bit.GPIO64 = 3; // XD15
|
||||
GpioCtrlRegs.GPCMUX1.bit.GPIO65 = 3; // XD14
|
||||
GpioCtrlRegs.GPCMUX1.bit.GPIO66 = 3; // XD13
|
||||
GpioCtrlRegs.GPCMUX1.bit.GPIO67 = 3; // XD12
|
||||
GpioCtrlRegs.GPCMUX1.bit.GPIO68 = 3; // XD11
|
||||
GpioCtrlRegs.GPCMUX1.bit.GPIO69 = 3; // XD10
|
||||
GpioCtrlRegs.GPCMUX1.bit.GPIO70 = 3; // XD19
|
||||
GpioCtrlRegs.GPCMUX1.bit.GPIO71 = 3; // XD8
|
||||
GpioCtrlRegs.GPCMUX1.bit.GPIO72 = 3; // XD7
|
||||
GpioCtrlRegs.GPCMUX1.bit.GPIO73 = 3; // XD6
|
||||
GpioCtrlRegs.GPCMUX1.bit.GPIO74 = 3; // XD5
|
||||
GpioCtrlRegs.GPCMUX1.bit.GPIO75 = 3; // XD4
|
||||
GpioCtrlRegs.GPCMUX1.bit.GPIO76 = 3; // XD3
|
||||
GpioCtrlRegs.GPCMUX1.bit.GPIO77 = 3; // XD2
|
||||
GpioCtrlRegs.GPCMUX1.bit.GPIO78 = 3; // XD1
|
||||
GpioCtrlRegs.GPCMUX1.bit.GPIO79 = 3; // XD0
|
||||
|
||||
GpioCtrlRegs.GPBMUX1.bit.GPIO40 = 3; // XA0/XWE1n
|
||||
GpioCtrlRegs.GPBMUX1.bit.GPIO41 = 3; // XA1
|
||||
GpioCtrlRegs.GPBMUX1.bit.GPIO42 = 3; // XA2
|
||||
GpioCtrlRegs.GPBMUX1.bit.GPIO43 = 3; // XA3
|
||||
GpioCtrlRegs.GPBMUX1.bit.GPIO44 = 3; // XA4
|
||||
GpioCtrlRegs.GPBMUX1.bit.GPIO45 = 3; // XA5
|
||||
GpioCtrlRegs.GPBMUX1.bit.GPIO46 = 3; // XA6
|
||||
GpioCtrlRegs.GPBMUX1.bit.GPIO47 = 3; // XA7
|
||||
|
||||
GpioCtrlRegs.GPCMUX2.bit.GPIO80 = 3; // XA8
|
||||
GpioCtrlRegs.GPCMUX2.bit.GPIO81 = 3; // XA9
|
||||
GpioCtrlRegs.GPCMUX2.bit.GPIO82 = 3; // XA10
|
||||
GpioCtrlRegs.GPCMUX2.bit.GPIO83 = 3; // XA11
|
||||
GpioCtrlRegs.GPCMUX2.bit.GPIO84 = 3; // XA12
|
||||
GpioCtrlRegs.GPCMUX2.bit.GPIO85 = 3; // XA13
|
||||
GpioCtrlRegs.GPCMUX2.bit.GPIO86 = 3; // XA14
|
||||
GpioCtrlRegs.GPCMUX2.bit.GPIO87 = 3; // XA15
|
||||
GpioCtrlRegs.GPBMUX1.bit.GPIO39 = 3; // XA16
|
||||
GpioCtrlRegs.GPAMUX2.bit.GPIO31 = 3; // XA17
|
||||
GpioCtrlRegs.GPAMUX2.bit.GPIO30 = 3; // XA18
|
||||
GpioCtrlRegs.GPAMUX2.bit.GPIO29 = 3; // XA19
|
||||
|
||||
GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 3; // XREADY
|
||||
GpioCtrlRegs.GPBMUX1.bit.GPIO35 = 3; // XRNW
|
||||
GpioCtrlRegs.GPBMUX1.bit.GPIO38 = 3; // XWE0
|
||||
|
||||
GpioCtrlRegs.GPBMUX1.bit.GPIO36 = 3; // XZCS0
|
||||
GpioCtrlRegs.GPBMUX1.bit.GPIO37 = 3; // XZCS7
|
||||
GpioCtrlRegs.GPAMUX2.bit.GPIO28 = 3; // XZCS6
|
||||
EDIS;
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
// No more.
|
||||
//===========================================================================
|
76
Source/External/v120/DSP2833x_common/source/DSP2833x_usDelay.asm
vendored
Normal file
76
Source/External/v120/DSP2833x_common/source/DSP2833x_usDelay.asm
vendored
Normal file
@ -0,0 +1,76 @@
|
||||
;// TI File $Revision: /main/4 $
|
||||
;// Checkin $Date: July 30, 2007 10:28:57 $
|
||||
;//###########################################################################
|
||||
;//
|
||||
;// FILE: DSP2833x_usDelay.asm
|
||||
;//
|
||||
;// TITLE: Simple delay function
|
||||
;//
|
||||
;// DESCRIPTION:
|
||||
;//
|
||||
;// This is a simple delay function that can be used to insert a specified
|
||||
;// delay into code.
|
||||
;//
|
||||
;// This function is only accurate if executed from internal zero-waitstate
|
||||
;// SARAM. If it is executed from waitstate memory then the delay will be
|
||||
;// longer then specified.
|
||||
;//
|
||||
;// To use this function:
|
||||
;//
|
||||
;// 1 - update the CPU clock speed in the DSP2833x_Examples.h
|
||||
;// file. For example:
|
||||
;// #define CPU_RATE 6.667L // for a 150MHz CPU clock speed
|
||||
;// or #define CPU_RATE 10.000L // for a 100MHz CPU clock speed
|
||||
;//
|
||||
;// 2 - Call this function by using the DELAY_US(A) macro
|
||||
;// that is defined in the DSP2833x_Examples.h file. This macro
|
||||
;// will convert the number of microseconds specified
|
||||
;// into a loop count for use with this function.
|
||||
;// This count will be based on the CPU frequency you specify.
|
||||
;//
|
||||
;// 3 - For the most accurate delay
|
||||
;// - Execute this function in 0 waitstate RAM.
|
||||
;// - Disable interrupts before calling the function
|
||||
;// If you do not disable interrupts, then think of
|
||||
;// this as an "at least" delay function as the actual
|
||||
;// delay may be longer.
|
||||
;//
|
||||
;// The C assembly call from the DELAY_US(time) macro will
|
||||
;// look as follows:
|
||||
;//
|
||||
;// extern void Delay(long LoopCount);
|
||||
;//
|
||||
;// MOV AL,#LowLoopCount
|
||||
;// MOV AH,#HighLoopCount
|
||||
;// LCR _Delay
|
||||
;//
|
||||
;// Or as follows (if count is less then 16-bits):
|
||||
;//
|
||||
;// MOV ACC,#LoopCount
|
||||
;// LCR _Delay
|
||||
;//
|
||||
;//
|
||||
;//###########################################################################
|
||||
;// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
;// $Release Date: August 1, 2008 $
|
||||
;//###########################################################################
|
||||
|
||||
.def _DSP28x_usDelay
|
||||
.sect ".text"
|
||||
|
||||
.global __DSP28x_usDelay
|
||||
_DSP28x_usDelay:
|
||||
SUB ACC,#1
|
||||
BF _DSP28x_usDelay,GEQ ;; Loop if ACC >= 0
|
||||
LRETR
|
||||
|
||||
;There is a 9/10 cycle overhead and each loop
|
||||
;takes five cycles. The LoopCount is given by
|
||||
;the following formula:
|
||||
; DELAY_CPU_CYCLES = 9 + 5*LoopCount
|
||||
; LoopCount = (DELAY_CPU_CYCLES - 9) / 5
|
||||
; The macro DELAY_US(A) performs this calculation for you
|
||||
;
|
||||
;//===========================================================================
|
||||
;// End of file.
|
||||
;//===========================================================================
|
212
Source/External/v120/DSP2833x_examples/adc_dma/Example_2833xAdcToDMA.c
vendored
Normal file
212
Source/External/v120/DSP2833x_examples/adc_dma/Example_2833xAdcToDMA.c
vendored
Normal file
@ -0,0 +1,212 @@
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: Example_2833xAdcToDMA.c
|
||||
//
|
||||
// TITLE: DSP2833x ADC To DMA
|
||||
// ASSUMPTIONS:
|
||||
//
|
||||
// This program requires the DSP2833x header files.
|
||||
//
|
||||
// Make sure the CPU clock speed is properly defined in
|
||||
// DSP2833x_Examples.h before compiling this example.
|
||||
//
|
||||
// Connect the signals to be converted to channel A0, A1, A2, and A3.
|
||||
//
|
||||
// As supplied, this project is configured for "boot to SARAM"
|
||||
// operation. The 2833x Boot Mode table is shown below.
|
||||
// For information on configuring the boot mode of an eZdsp,
|
||||
// please refer to the documentation included with the eZdsp,
|
||||
//
|
||||
// $Boot_Table:
|
||||
//
|
||||
// GPIO87 GPIO86 GPIO85 GPIO84
|
||||
// XA15 XA14 XA13 XA12
|
||||
// PU PU PU PU
|
||||
// ==========================================
|
||||
// 1 1 1 1 Jump to Flash
|
||||
// 1 1 1 0 SCI-A boot
|
||||
// 1 1 0 1 SPI-A boot
|
||||
// 1 1 0 0 I2C-A boot
|
||||
// 1 0 1 1 eCAN-A boot
|
||||
// 1 0 1 0 McBSP-A boot
|
||||
// 1 0 0 1 Jump to XINTF x16
|
||||
// 1 0 0 0 Jump to XINTF x32
|
||||
// 0 1 1 1 Jump to OTP
|
||||
// 0 1 1 0 Parallel GPIO I/O boot
|
||||
// 0 1 0 1 Parallel XINTF boot
|
||||
// 0 1 0 0 Jump to SARAM <- "boot to SARAM"
|
||||
// 0 0 1 1 Branch to check boot mode
|
||||
// 0 0 1 0 Boot to flash, bypass ADC cal
|
||||
// 0 0 0 1 Boot to SARAM, bypass ADC cal
|
||||
// 0 0 0 0 Boot to SCI-A, bypass ADC cal
|
||||
// Boot_Table_End$
|
||||
//
|
||||
//
|
||||
// DESCRIPTION:
|
||||
//
|
||||
// ADC is setup to convert 4 channels for each SOC received, with total of 10 SOCs.
|
||||
// Each SOC initiates 4 conversions.
|
||||
// DMA is set up to capture the data on each SEQ1_INT. DMA will re-sort
|
||||
// the data by channel sequentially, i.e. all channel0 data will be together
|
||||
// all channel1 data will be together.
|
||||
//
|
||||
// Code should stop in local_DINTCH1_ISR when complete
|
||||
//
|
||||
// Watch Variables:
|
||||
// DMABuf1
|
||||
//
|
||||
//###########################################################################
|
||||
//
|
||||
// Original source by: M.P.
|
||||
//
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
|
||||
#include "DSP28x_Project.h" // Device Headerfile and Examples Include File
|
||||
|
||||
// ADC start parameters
|
||||
#if (CPU_FRQ_150MHZ) // Default - 150 MHz SYSCLKOUT
|
||||
#define ADC_MODCLK 0x3 // HSPCLK = SYSCLKOUT/2*ADC_MODCLK2 = 150/(2*3) = 25.0 MHz
|
||||
#endif
|
||||
#if (CPU_FRQ_100MHZ)
|
||||
#define ADC_MODCLK 0x2 // HSPCLK = SYSCLKOUT/2*ADC_MODCLK2 = 100/(2*2) = 25.0 MHz
|
||||
#endif
|
||||
#define ADC_CKPS 0x1 // ADC module clock = HSPCLK/2*ADC_CKPS = 25.0MHz/(1*2) = 12.5MHz
|
||||
#define ADC_SHCLK 0xf // S/H width in ADC module periods = 16 ADC clocks
|
||||
#define AVG 1000 // Average sample limit
|
||||
#define ZOFFSET 0x00 // Average Zero offset
|
||||
#define BUF_SIZE 40 // Sample buffer size
|
||||
|
||||
// Global variable for this example
|
||||
Uint16 j=0;
|
||||
|
||||
#pragma DATA_SECTION(DMABuf1,"DMARAML4");
|
||||
volatile Uint16 DMABuf1[40];
|
||||
|
||||
volatile Uint16 *DMADest;
|
||||
volatile Uint16 *DMASource;
|
||||
interrupt void local_DINTCH1_ISR(void);
|
||||
|
||||
void main(void)
|
||||
{
|
||||
Uint16 i;
|
||||
// Step 1. Initialize System Control:
|
||||
// PLL, WatchDog, enable Peripheral Clocks
|
||||
// This example function is found in the DSP2833x_SysCtrl.c file.
|
||||
InitSysCtrl();
|
||||
|
||||
// Specific clock setting for this example:
|
||||
EALLOW;
|
||||
SysCtrlRegs.HISPCP.all = ADC_MODCLK; // HSPCLK = SYSCLKOUT/ADC_MODCLK
|
||||
EDIS;
|
||||
|
||||
// Step 2. Initialize GPIO:
|
||||
// This example function is found in the DSP2833x_Gpio.c file and
|
||||
// illustrates how to set the GPIO to it's default state.
|
||||
// InitGpio(); // Skipped for this example
|
||||
|
||||
// Step 3. Clear all interrupts and initialize PIE vector table:
|
||||
// Disable CPU interrupts
|
||||
DINT;
|
||||
|
||||
// Initialize the PIE control registers to their default state.
|
||||
// The default state is all PIE interrupts disabled and flags
|
||||
// are cleared.
|
||||
// This function is found in the DSP2833x_PieCtrl.c file.
|
||||
InitPieCtrl();
|
||||
|
||||
// Disable CPU interrupts and clear all CPU interrupt flags:
|
||||
IER = 0x0000;
|
||||
IFR = 0x0000;
|
||||
|
||||
// Initialize the PIE vector table with pointers to the shell Interrupt
|
||||
// Service Routines (ISR).
|
||||
// This will populate the entire table, even if the interrupt
|
||||
// is not used in this example. This is useful for debug purposes.
|
||||
// The shell ISR routines are found in DSP2833x_DefaultIsr.c.
|
||||
// This function is found in DSP2833x_PieVect.c.
|
||||
InitPieVectTable();
|
||||
|
||||
// Interrupts that are used in this example are re-mapped to
|
||||
// ISR functions found within this file.
|
||||
EALLOW; // Allow access to EALLOW protected registers
|
||||
PieVectTable.DINTCH1= &local_DINTCH1_ISR;
|
||||
EDIS; // Disable access to EALLOW protected registers
|
||||
|
||||
IER = M_INT7 ; //Enable INT7 (7.1 DMA Ch1)
|
||||
EnableInterrupts();
|
||||
|
||||
// Step 4. Initialize all the Device Peripherals:
|
||||
// This function is found in DSP2833x_InitPeripherals.c
|
||||
// InitPeripherals(); // Not required for this example
|
||||
InitAdc(); // For this example, init the ADC
|
||||
|
||||
// Specific ADC setup for this example:
|
||||
AdcRegs.ADCTRL1.bit.ACQ_PS = ADC_SHCLK;
|
||||
AdcRegs.ADCTRL3.bit.ADCCLKPS = ADC_CKPS;
|
||||
AdcRegs.ADCTRL1.bit.SEQ_CASC = 0; // 0 Non-Cascaded Mode
|
||||
AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 0x1;
|
||||
AdcRegs.ADCTRL2.bit.RST_SEQ1 = 0x1;
|
||||
AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x0;
|
||||
AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x1;
|
||||
AdcRegs.ADCCHSELSEQ1.bit.CONV02 = 0x2;
|
||||
AdcRegs.ADCCHSELSEQ1.bit.CONV03 = 0x3;
|
||||
AdcRegs.ADCCHSELSEQ2.bit.CONV04 = 0x0;
|
||||
AdcRegs.ADCCHSELSEQ2.bit.CONV05 = 0x1;
|
||||
AdcRegs.ADCCHSELSEQ2.bit.CONV06 = 0x2;
|
||||
AdcRegs.ADCCHSELSEQ2.bit.CONV07 = 0x3;
|
||||
AdcRegs.ADCMAXCONV.bit.MAX_CONV1 = 3; // Set up ADC to perform 4 conversions for every SOC
|
||||
|
||||
//Step 5. User specific code, enable interrupts:
|
||||
// Initialize DMA
|
||||
DMAInitialize();
|
||||
|
||||
// Clear Table
|
||||
for (i=0; i<BUF_SIZE; i++)
|
||||
{
|
||||
DMABuf1[i] = 0;
|
||||
}
|
||||
|
||||
|
||||
// Configure DMA Channel
|
||||
DMADest = &DMABuf1[0]; //Point DMA destination to the beginning of the array
|
||||
DMASource = &AdcMirror.ADCRESULT0; //Point DMA source to ADC result register base
|
||||
DMACH1AddrConfig(DMADest,DMASource);
|
||||
DMACH1BurstConfig(3,1,10);
|
||||
DMACH1TransferConfig(9,1,0);
|
||||
DMACH1WrapConfig(1,0,0,1);
|
||||
DMACH1ModeConfig(DMA_SEQ1INT,PERINT_ENABLE,ONESHOT_DISABLE,CONT_DISABLE,SYNC_DISABLE,SYNC_SRC,
|
||||
OVRFLOW_DISABLE,SIXTEEN_BIT,CHINT_END,CHINT_ENABLE);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
StartDMACH1();
|
||||
|
||||
|
||||
|
||||
// Start SEQ1
|
||||
AdcRegs.ADCTRL2.bit.SOC_SEQ1 = 0x1;
|
||||
for(i=0;i<10;i++){
|
||||
for(j=0;j<1000;j++){}
|
||||
AdcRegs.ADCTRL2.bit.SOC_SEQ1 = 1; //Normally ADC will be tied to ePWM, or timed routine
|
||||
} //For this example will re-start manually
|
||||
|
||||
}
|
||||
|
||||
// INT7.1
|
||||
interrupt void local_DINTCH1_ISR(void) // DMA Channel 1
|
||||
{
|
||||
|
||||
// To receive more interrupts from this PIE group, acknowledge this interrupt
|
||||
PieCtrlRegs.PIEACK.all = PIEACK_GROUP7;
|
||||
|
||||
// Next two lines for debug only to halt the processor here
|
||||
// Remove after inserting ISR Code
|
||||
asm (" ESTOP0");
|
||||
for(;;);
|
||||
}
|
||||
|
||||
|
36
Source/External/v120/DSP2833x_examples/adc_dma/Example_2833xAdcToDMA.gel
vendored
Normal file
36
Source/External/v120/DSP2833x_examples/adc_dma/Example_2833xAdcToDMA.gel
vendored
Normal file
@ -0,0 +1,36 @@
|
||||
/*
|
||||
// TI File $Revision: /main/1 $
|
||||
// Checkin $Date: August 14, 2007 14:20:30 $
|
||||
//###########################################################################
|
||||
//
|
||||
// This .gel file can be used to help load and build the example project.
|
||||
// It should be unloaded from Code Composer Studio before loading another
|
||||
// project.
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
*/
|
||||
|
||||
menuitem "DSP2833x ADC SOC Example"
|
||||
|
||||
hotmenu Load_and_Build_Project()
|
||||
{
|
||||
GEL_ProjectLoad("Example_2833xAdcToDMA.pjt");
|
||||
GEL_ProjectBuild("Example_2833xAdcToDMA.pjt");
|
||||
Setup_WatchWindow();
|
||||
}
|
||||
|
||||
hotmenu Load_Code()
|
||||
{
|
||||
GEL_Load(".\\debug\\Example_2833xAdcToDMA.out");
|
||||
Setup_WatchWindow();
|
||||
}
|
||||
|
||||
hotmenu Setup_WatchWindow()
|
||||
{
|
||||
GEL_WatchReset();
|
||||
GEL_WatchAdd("AdcRegs,x");
|
||||
GEL_WatchAdd("DMABuf1,x");
|
||||
}
|
47
Source/External/v120/DSP2833x_examples/adc_dma/Example_2833xAdcToDMA.pjt
vendored
Normal file
47
Source/External/v120/DSP2833x_examples/adc_dma/Example_2833xAdcToDMA.pjt
vendored
Normal file
@ -0,0 +1,47 @@
|
||||
; Code Composer Project File, Version 2.0 (do not modify or remove this line)
|
||||
|
||||
[Project Settings]
|
||||
ProjectName="DSP28"
|
||||
ProjectDir="C:\tidcs\c28\DSP2833x\v120\DSP2833x_examples\adc_dma\"
|
||||
ProjectType=Executable
|
||||
CPUFamily=TMS320C28XX
|
||||
Tool="Compiler"
|
||||
Tool="CustomBuilder"
|
||||
Tool="DspBiosBuilder"
|
||||
Tool="Linker"
|
||||
Config="Debug"
|
||||
Config="Release"
|
||||
|
||||
[Source Files]
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_Adc.c"
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_ADC_cal.asm"
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_CodeStartBranch.asm"
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_DefaultIsr.c"
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_DMA.c"
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_PieCtrl.c"
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_PieVect.c"
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_SysCtrl.c"
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_usDelay.asm"
|
||||
Source="..\..\DSP2833x_headers\source\DSP2833x_GlobalVariableDefs.c"
|
||||
Source="Example_2833xAdcToDMA.c"
|
||||
Source="..\..\DSP2833x_common\cmd\28335_RAM_lnk.cmd"
|
||||
Source="..\..\DSP2833x_headers\cmd\DSP2833x_Headers_nonBIOS.cmd"
|
||||
|
||||
["Compiler" Settings: "Debug"]
|
||||
Options=-g -q -pdr -fr"C:\tidcs\c28\DSP2833x\v120\DSP2833x_examples\adc_dma\Debug" -fs"C:\tidcs\c28\DSP2833x\v120\DSP2833x_examples\adc_dma\Debug" -i"..\..\DSP2833x_headers\include" -i"..\..\DSP2833x_common\include" -d"_DEBUG" -d"LARGE_MODEL" --float_support=fpu32 -ml -mt -v28
|
||||
|
||||
["Compiler" Settings: "Release"]
|
||||
Options=-q -o3 -fr"C:\tidcs\c28\DSP2833x\v120\DSP2833x_examples\adc_dma\Release" -d"LARGE_MODEL" -ml -v28
|
||||
|
||||
["DspBiosBuilder" Settings: "Debug"]
|
||||
Options=-v28
|
||||
|
||||
["DspBiosBuilder" Settings: "Release"]
|
||||
Options=-v28
|
||||
|
||||
["Linker" Settings: "Debug"]
|
||||
Options=-q -c -ecode_start -m".\Debug\Example_2833xAdcToDMA.map" -o".\Debug\Example_2833xAdcToDMA.out" -stack0x380 -w -x -i"..\..\DSP2833x_headers\include" -l"rts2800_fpu32.lib"
|
||||
|
||||
["Linker" Settings: "Release"]
|
||||
Options=-q -c -o".\Release\Example_2833xAdcToDMA.out" -x
|
||||
|
266
Source/External/v120/DSP2833x_examples/adc_seq_ovd_test/Example_2833xAdcSeq_ovdTest.c
vendored
Normal file
266
Source/External/v120/DSP2833x_examples/adc_seq_ovd_test/Example_2833xAdcSeq_ovdTest.c
vendored
Normal file
@ -0,0 +1,266 @@
|
||||
// TI File $Revision: /main/10 $
|
||||
// Checkin $Date: April 21, 2008 15:40:51 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: Example_2833xAdcSeq_ovdTest.c
|
||||
//
|
||||
// TITLE: DSP2833x ADC Seq Override mode Test.
|
||||
//
|
||||
// ASSUMPTIONS:
|
||||
//
|
||||
// This program requires the DSP2833x header files.
|
||||
//
|
||||
// Make sure the CPU clock speed is properly defined in
|
||||
// DSP2833x_Examples.h before compiling this example.
|
||||
//
|
||||
// Connect the signal to be converted to Channel A0.
|
||||
//
|
||||
// As supplied, this project is configured for "boot to SARAM"
|
||||
// operation. The 2833x Boot Mode table is shown below.
|
||||
// For information on configuring the boot mode of an eZdsp,
|
||||
// please refer to the documentation included with the eZdsp,
|
||||
//
|
||||
// $Boot_Table:
|
||||
//
|
||||
// GPIO87 GPIO86 GPIO85 GPIO84
|
||||
// XA15 XA14 XA13 XA12
|
||||
// PU PU PU PU
|
||||
// ==========================================
|
||||
// 1 1 1 1 Jump to Flash
|
||||
// 1 1 1 0 SCI-A boot
|
||||
// 1 1 0 1 SPI-A boot
|
||||
// 1 1 0 0 I2C-A boot
|
||||
// 1 0 1 1 eCAN-A boot
|
||||
// 1 0 1 0 McBSP-A boot
|
||||
// 1 0 0 1 Jump to XINTF x16
|
||||
// 1 0 0 0 Jump to XINTF x32
|
||||
// 0 1 1 1 Jump to OTP
|
||||
// 0 1 1 0 Parallel GPIO I/O boot
|
||||
// 0 1 0 1 Parallel XINTF boot
|
||||
// 0 1 0 0 Jump to SARAM <- "boot to SARAM"
|
||||
// 0 0 1 1 Branch to check boot mode
|
||||
// 0 0 1 0 Boot to flash, bypass ADC cal
|
||||
// 0 0 0 1 Boot to SARAM, bypass ADC cal
|
||||
// 0 0 0 0 Boot to SCI-A, bypass ADC cal
|
||||
// Boot_Table_End$
|
||||
//
|
||||
// DESCRIPTION:
|
||||
//
|
||||
// Channel A0 is converted forever and logged in a buffer (SampleTable)
|
||||
// Using sequencer1 in sequencer override mode. Sequencer is Sequential mode
|
||||
// with sample rate of1/(3*40ns) =8.3MHz
|
||||
//
|
||||
// Open a memory window to SampletTable to observe the buffer
|
||||
// RUN for a while and stop and see the table contents.
|
||||
//
|
||||
// Watch Variables:
|
||||
// SampleTable - Log of converted values.
|
||||
// GPIO34 - Toggles on every ADC sequencer flag
|
||||
//
|
||||
//###########################################################################
|
||||
//
|
||||
// Original source by: S.S.
|
||||
//
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
|
||||
#include "DSP28x_Project.h" // Device Headerfile and Examples Include File
|
||||
|
||||
// Determine when the shift to right justify the data takes place
|
||||
// Only one of these should be defined as 1.
|
||||
// The other two should be defined as 0.
|
||||
#define POST_SHIFT 0 // Shift results after the entire sample table is full
|
||||
#define INLINE_SHIFT 1 // Shift results as the data is taken from the results regsiter
|
||||
#define NO_SHIFT 0 // Do not shift the results
|
||||
|
||||
// ADC start parameters
|
||||
#if (CPU_FRQ_150MHZ) // Default - 150 MHz SYSCLKOUT
|
||||
#define ADC_MODCLK 0x3 // HSPCLK = SYSCLKOUT/2*ADC_MODCLK2 = 150/(2*3) = 25.0 MHz
|
||||
#endif
|
||||
#if (CPU_FRQ_100MHZ)
|
||||
#define ADC_MODCLK 0x2 // HSPCLK = SYSCLKOUT/2*ADC_MODCLK2 = 100/(2*2) = 25.0 MHz
|
||||
#endif
|
||||
#define ADC_CKPS 0x0 // ADC module clock = HSPCLK/1 = 25.5MHz/(1) = 25.0 MHz
|
||||
#define ADC_SHCLK 0x1 // S/H width in ADC module periods = 2 ADC cycle
|
||||
#define AVG 1000 // Average sample limit
|
||||
#define ZOFFSET 0x00 // Average Zero offset
|
||||
#define BUF_SIZE 1024 // Sample buffer size
|
||||
|
||||
// Global variable for this example
|
||||
Uint16 SampleTable[BUF_SIZE];
|
||||
|
||||
|
||||
main()
|
||||
{
|
||||
Uint16 i;
|
||||
Uint16 array_index;
|
||||
|
||||
|
||||
// Step 1. Initialize System Control:
|
||||
// PLL, WatchDog, enable Peripheral Clocks
|
||||
// This example function is found in the DSP2833x_SysCtrl.c file.
|
||||
InitSysCtrl();
|
||||
|
||||
// Specific clock setting for this example:
|
||||
EALLOW;
|
||||
SysCtrlRegs.HISPCP.all = ADC_MODCLK; // HSPCLK = SYSCLKOUT/ADC_MODCLK
|
||||
EDIS;
|
||||
|
||||
// Step 2. Initialize GPIO:
|
||||
// This example function is found in the DSP2833x_Gpio.c file and
|
||||
// illustrates how to set the GPIO to it's default state.
|
||||
// InitGpio(); // Skipped for this example
|
||||
// Enable the pin GPIO34 as output
|
||||
EALLOW;
|
||||
GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 0; // GPIO pin
|
||||
GpioCtrlRegs.GPBDIR.bit.GPIO34 = 1; // Output pin
|
||||
EDIS;
|
||||
|
||||
// Step 3. Clear all interrupts and initialize PIE vector table:
|
||||
// Disable CPU interrupts
|
||||
DINT;
|
||||
|
||||
// Initialize the PIE control registers to their default state.
|
||||
// The default state is all PIE interrupts disabled and flags
|
||||
// are cleared.
|
||||
// This function is found in the DSP2833x_PieCtrl.c file.
|
||||
InitPieCtrl();
|
||||
|
||||
// Disable CPU interrupts and clear all CPU interrupt flags:
|
||||
IER = 0x0000;
|
||||
IFR = 0x0000;
|
||||
|
||||
// Initialize the PIE vector table with pointers to the shell Interrupt
|
||||
// Service Routines (ISR).
|
||||
// This will populate the entire table, even if the interrupt
|
||||
// is not used in this example. This is useful for debug purposes.
|
||||
// The shell ISR routines are found in DSP2833x_DefaultIsr.c.
|
||||
// This function is found in DSP2833x_PieVect.c.
|
||||
InitPieVectTable();
|
||||
|
||||
// Step 4. Initialize all the Device Peripherals:
|
||||
// This function is found in DSP2833x_InitPeripherals.c
|
||||
// InitPeripherals(); // Not required for this example
|
||||
InitAdc(); // For this example, init the ADC
|
||||
|
||||
// Specific ADC setup for this example:
|
||||
AdcRegs.ADCTRL1.bit.ACQ_PS = ADC_SHCLK; // Sequential mode: Sample rate = 1/[(2+ACQ_PS)*ADC clock in ns]
|
||||
// = 1/(3*40ns) =8.3MHz (for 150 MHz SYSCLKOUT)
|
||||
// = 1/(3*80ns) =4.17MHz (for 100 MHz SYSCLKOUT)
|
||||
// If Simultaneous mode enabled: Sample rate = 1/[(3+ACQ_PS)*ADC clock in ns]
|
||||
AdcRegs.ADCTRL3.bit.ADCCLKPS = ADC_CKPS;
|
||||
AdcRegs.ADCTRL1.bit.SEQ_CASC = 1; // 1 Cascaded mode
|
||||
AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x0;
|
||||
AdcRegs.ADCTRL1.bit.CONT_RUN = 1; // Setup continuous run
|
||||
|
||||
AdcRegs.ADCTRL1.bit.SEQ_OVRD = 1; // Enable Sequencer override feature
|
||||
AdcRegs.ADCCHSELSEQ1.all = 0x0; // Initialize all ADC channel selects to A0
|
||||
AdcRegs.ADCCHSELSEQ2.all = 0x0;
|
||||
AdcRegs.ADCCHSELSEQ3.all = 0x0;
|
||||
AdcRegs.ADCCHSELSEQ4.all = 0x0;
|
||||
AdcRegs.ADCMAXCONV.bit.MAX_CONV1 = 0x7; // convert and store in 8 results registers
|
||||
|
||||
|
||||
// Step 5. User specific code, enable interrupts:
|
||||
|
||||
|
||||
// Clear SampleTable
|
||||
for (i=0; i<BUF_SIZE; i++)
|
||||
{
|
||||
SampleTable[i] = 0;
|
||||
}
|
||||
|
||||
// Start SEQ1
|
||||
AdcRegs.ADCTRL2.all = 0x2000;
|
||||
|
||||
for(;;)
|
||||
{ // Take ADC data and log them in SampleTable array
|
||||
|
||||
// Initalize the array index. This points to the current
|
||||
// location within the SampleTable
|
||||
array_index = 0;
|
||||
|
||||
for (i=0; i<(BUF_SIZE/16); i++)
|
||||
{
|
||||
// Wait for int1
|
||||
while (AdcRegs.ADCST.bit.INT_SEQ1== 0){}
|
||||
GpioDataRegs.GPBSET.bit.GPIO34 = 1; // Set GPIO34 for monitoring -optional
|
||||
|
||||
AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1;
|
||||
|
||||
#if INLINE_SHIFT
|
||||
SampleTable[array_index++]= ( (AdcRegs.ADCRESULT0)>>4);
|
||||
SampleTable[array_index++]= ( (AdcRegs.ADCRESULT1)>>4);
|
||||
SampleTable[array_index++]= ( (AdcRegs.ADCRESULT2)>>4);
|
||||
SampleTable[array_index++]= ( (AdcRegs.ADCRESULT3)>>4);
|
||||
SampleTable[array_index++]= ( (AdcRegs.ADCRESULT4)>>4);
|
||||
SampleTable[array_index++]= ( (AdcRegs.ADCRESULT5)>>4);
|
||||
SampleTable[array_index++]= ( (AdcRegs.ADCRESULT6)>>4);
|
||||
SampleTable[array_index++]= ( (AdcRegs.ADCRESULT7)>>4);
|
||||
|
||||
#endif //-- INLINE_SHIFT
|
||||
|
||||
#if NO_SHIFT || POST_SHIFT
|
||||
|
||||
SampleTable[array_index++]= ( (AdcRegs.ADCRESULT0));
|
||||
SampleTable[array_index++]= ( (AdcRegs.ADCRESULT1));
|
||||
SampleTable[array_index++]= ( (AdcRegs.ADCRESULT2));
|
||||
SampleTable[array_index++]= ( (AdcRegs.ADCRESULT3));
|
||||
SampleTable[array_index++]= ( (AdcRegs.ADCRESULT4));
|
||||
SampleTable[array_index++]= ( (AdcRegs.ADCRESULT5));
|
||||
SampleTable[array_index++]= ( (AdcRegs.ADCRESULT6));
|
||||
SampleTable[array_index++]= ( (AdcRegs.ADCRESULT7));
|
||||
|
||||
#endif //-- NO_SHIFT || POST_SHIFT
|
||||
|
||||
while (AdcRegs.ADCST.bit.INT_SEQ1== 0){}
|
||||
GpioDataRegs.GPBCLEAR.bit.GPIO34 = 1; // Clear GPIO34 for monitoring -optional
|
||||
AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1;
|
||||
|
||||
#if INLINE_SHIFT
|
||||
|
||||
SampleTable[array_index++]= ( (AdcRegs.ADCRESULT8)>>4);
|
||||
SampleTable[array_index++]= ( (AdcRegs.ADCRESULT9)>>4);
|
||||
SampleTable[array_index++]= ( (AdcRegs.ADCRESULT10)>>4);
|
||||
SampleTable[array_index++]= ( (AdcRegs.ADCRESULT11)>>4);
|
||||
SampleTable[array_index++]= ( (AdcRegs.ADCRESULT12)>>4);
|
||||
SampleTable[array_index++]= ( (AdcRegs.ADCRESULT13)>>4);
|
||||
SampleTable[array_index++]= ( (AdcRegs.ADCRESULT14)>>4);
|
||||
SampleTable[array_index++]= ( (AdcRegs.ADCRESULT15)>>4);
|
||||
|
||||
#endif //-- INLINE_SHIFT
|
||||
|
||||
#if NO_SHIFT || POST_SHIFT
|
||||
|
||||
SampleTable[array_index++]= ( (AdcRegs.ADCRESULT8));
|
||||
SampleTable[array_index++]= ( (AdcRegs.ADCRESULT9));
|
||||
SampleTable[array_index++]= ( (AdcRegs.ADCRESULT10));
|
||||
SampleTable[array_index++]= ( (AdcRegs.ADCRESULT11));
|
||||
SampleTable[array_index++]= ( (AdcRegs.ADCRESULT12));
|
||||
SampleTable[array_index++]= ( (AdcRegs.ADCRESULT13));
|
||||
SampleTable[array_index++]= ( (AdcRegs.ADCRESULT14));
|
||||
SampleTable[array_index++]= ( (AdcRegs.ADCRESULT15));
|
||||
#endif // -- NO_SHIFT || POST_SHIFT
|
||||
|
||||
}
|
||||
|
||||
|
||||
#if POST_SHIFT
|
||||
// For post shifting, shift the ADC results
|
||||
// in the SampleTable buffer after the buffer is full.
|
||||
for (i=0; i<BUF_SIZE; i++)
|
||||
{
|
||||
SampleTable[i] = ((SampleTable[i]) >>4);
|
||||
}
|
||||
#endif // -- POST_SHIFT
|
||||
|
||||
GpioDataRegs.GPBCLEAR.bit.GPIO34 = 1; // Clear GPIO34 for monitoring -optional
|
||||
}
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
// No more.
|
||||
//===========================================================================
|
||||
|
||||
|
39
Source/External/v120/DSP2833x_examples/adc_seq_ovd_test/Example_2833xAdcSeq_ovdTest.gel
vendored
Normal file
39
Source/External/v120/DSP2833x_examples/adc_seq_ovd_test/Example_2833xAdcSeq_ovdTest.gel
vendored
Normal file
@ -0,0 +1,39 @@
|
||||
/*
|
||||
// TI File $Revision: /main/5 $
|
||||
// Checkin $Date: August 9, 2007 17:11:35 $
|
||||
//###########################################################################
|
||||
//
|
||||
// This .gel file can be used to help load and build the example project.
|
||||
// It should be unloaded from Code Composer Studio before loading another
|
||||
// project.
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
*/
|
||||
|
||||
menuitem "DSP2833x ADC Seq_ovd Test"
|
||||
|
||||
|
||||
hotmenu Load_and_Build_Project()
|
||||
{
|
||||
GEL_ProjectLoad("Example_2833xAdcSeq_ovdTest.pjt");
|
||||
GEL_ProjectBuild("Example_2833xAdcSeq_ovdTest.pjt");
|
||||
Setup_WatchWindow();
|
||||
}
|
||||
|
||||
hotmenu Load_Code()
|
||||
{
|
||||
GEL_Load(".\\debug\\Example_2833xAdcSeq_ovdTest.out");
|
||||
Setup_WatchWindow();
|
||||
}
|
||||
|
||||
hotmenu Setup_WatchWindow()
|
||||
{
|
||||
GEL_WatchReset();
|
||||
GEL_WatchAdd("SampleTable,x");
|
||||
GEL_WatchAdd("AdcRegs,x",);
|
||||
}
|
||||
|
||||
|
45
Source/External/v120/DSP2833x_examples/adc_seq_ovd_test/Example_2833xAdcSeq_ovdTest.pjt
vendored
Normal file
45
Source/External/v120/DSP2833x_examples/adc_seq_ovd_test/Example_2833xAdcSeq_ovdTest.pjt
vendored
Normal file
@ -0,0 +1,45 @@
|
||||
; Code Composer Project File, Version 2.0 (do not modify or remove this line)
|
||||
|
||||
[Project Settings]
|
||||
ProjectName="DSP2833x"
|
||||
ProjectDir="C:\tidcs\c28\DSP2833x\v120\DSP2833x_examples\adc_seq_ovd_test\"
|
||||
ProjectType=Executable
|
||||
CPUFamily=TMS320C28XX
|
||||
Tool="Compiler"
|
||||
Tool="DspBiosBuilder"
|
||||
Tool="Linker"
|
||||
Config="Debug"
|
||||
Config="Release"
|
||||
|
||||
[Source Files]
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_Adc.c"
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_ADC_cal.asm"
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_CodeStartBranch.asm"
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_DefaultIsr.c"
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_PieCtrl.c"
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_PieVect.c"
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_SysCtrl.c"
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_usDelay.asm"
|
||||
Source="..\..\DSP2833x_headers\source\DSP2833x_GlobalVariableDefs.c"
|
||||
Source="Example_2833xAdcSeq_ovdTest.c"
|
||||
Source="..\..\DSP2833x_common\cmd\28335_RAM_lnk.cmd"
|
||||
Source="..\..\DSP2833x_headers\cmd\DSP2833x_Headers_nonBIOS.cmd"
|
||||
|
||||
["Compiler" Settings: "Debug"]
|
||||
Options=-g -q -pdr -fr"C:\tidcs\c28\DSP2833x\v120\DSP2833x_examples\adc_seq_ovd_test\Debug" -fs"C:\tidcs\c28\DSP2833x\v120\DSP2833x_examples\adc_seq_ovd_test\Debug" -i"..\..\DSP2833x_headers\include" -i"..\..\DSP2833x_common\include" -d"_DEBUG" -d"LARGE_MODEL" --float_support=fpu32 -ml -mt -v28
|
||||
|
||||
["Compiler" Settings: "Release"]
|
||||
Options=-q -o3 -fr"C:\tidcs\c28\DSP2833x\v120\DSP2833x_examples\adc_seq_ovd_test\Release" -d"LARGE_MODEL" -ml -v28
|
||||
|
||||
["DspBiosBuilder" Settings: "Debug"]
|
||||
Options=-v28
|
||||
|
||||
["DspBiosBuilder" Settings: "Release"]
|
||||
Options=-v28
|
||||
|
||||
["Linker" Settings: "Debug"]
|
||||
Options=-q -c -ecode_start -m".\Debug\Example_2833xAdcSeq_ovdTest.map" -o".\Debug\Example_2833xAdcSeq_ovdTest.out" -stack0x380 -w -x -i"..\..\DSP2833x_headers\include" -l"rts2800_fpu32.lib"
|
||||
|
||||
["Linker" Settings: "Release"]
|
||||
Options=-q -c -o".\Release\Example_2833xAdcSeq_ovdTest.out" -x
|
||||
|
164
Source/External/v120/DSP2833x_examples/adc_seqmode_test/Example_2833xAdcSeqModeTest.c
vendored
Normal file
164
Source/External/v120/DSP2833x_examples/adc_seqmode_test/Example_2833xAdcSeqModeTest.c
vendored
Normal file
@ -0,0 +1,164 @@
|
||||
// TI File $Revision: /main/10 $
|
||||
// Checkin $Date: April 21, 2008 15:40:57 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: Example_2833xAdcSeqModeTest.c
|
||||
//
|
||||
// TITLE: DSP2833x ADC Seq Mode Test.
|
||||
//
|
||||
// ASSUMPTIONS:
|
||||
//
|
||||
// This program requires the DSP2833x header files.
|
||||
//
|
||||
// Make sure the CPU clock speed is properly defined in
|
||||
// DSP2833x_Examples.h before compiling this example.
|
||||
//
|
||||
// Connect the signal to be converted to channel A0.
|
||||
//
|
||||
// As supplied, this project is configured for "boot to SARAM"
|
||||
// operation. The 2833x Boot Mode table is shown below.
|
||||
// For information on configuring the boot mode of an eZdsp,
|
||||
// please refer to the documentation included with the eZdsp,
|
||||
//
|
||||
// $Boot_Table:
|
||||
//
|
||||
// GPIO87 GPIO86 GPIO85 GPIO84
|
||||
// XA15 XA14 XA13 XA12
|
||||
// PU PU PU PU
|
||||
// ==========================================
|
||||
// 1 1 1 1 Jump to Flash
|
||||
// 1 1 1 0 SCI-A boot
|
||||
// 1 1 0 1 SPI-A boot
|
||||
// 1 1 0 0 I2C-A boot
|
||||
// 1 0 1 1 eCAN-A boot
|
||||
// 1 0 1 0 McBSP-A boot
|
||||
// 1 0 0 1 Jump to XINTF x16
|
||||
// 1 0 0 0 Jump to XINTF x32
|
||||
// 0 1 1 1 Jump to OTP
|
||||
// 0 1 1 0 Parallel GPIO I/O boot
|
||||
// 0 1 0 1 Parallel XINTF boot
|
||||
// 0 1 0 0 Jump to SARAM <- "boot to SARAM"
|
||||
// 0 0 1 1 Branch to check boot mode
|
||||
// 0 0 1 0 Boot to flash, bypass ADC cal
|
||||
// 0 0 0 1 Boot to SARAM, bypass ADC cal
|
||||
// 0 0 0 0 Boot to SCI-A, bypass ADC cal
|
||||
// Boot_Table_End$
|
||||
//
|
||||
// DESCRIPTION:
|
||||
//
|
||||
// Channel A0 is converted forever and logged in a buffer (SampleTable)
|
||||
//
|
||||
// Open a memory window to SampleTable to observe the buffer
|
||||
// RUN for a while and stop and see the table contents.
|
||||
//
|
||||
// Watch Variables:
|
||||
// SampleTable - Log of converted values.
|
||||
//
|
||||
//###########################################################################
|
||||
//
|
||||
// Original source by: S.S.
|
||||
//
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
|
||||
#include "DSP28x_Project.h" // Device Headerfile and Examples Include File
|
||||
|
||||
// ADC start parameters
|
||||
#if (CPU_FRQ_150MHZ) // Default - 150 MHz SYSCLKOUT
|
||||
#define ADC_MODCLK 0x3 // HSPCLK = SYSCLKOUT/2*ADC_MODCLK2 = 150/(2*3) = 25.0 MHz
|
||||
#endif
|
||||
#if (CPU_FRQ_100MHZ)
|
||||
#define ADC_MODCLK 0x2 // HSPCLK = SYSCLKOUT/2*ADC_MODCLK2 = 100/(2*2) = 25.0 MHz
|
||||
#endif
|
||||
#define ADC_CKPS 0x1 // ADC module clock = HSPCLK/2*ADC_CKPS = 25.0MHz/(1*2) = 12.5MHz
|
||||
#define ADC_SHCLK 0xf // S/H width in ADC module periods = 16 ADC clocks
|
||||
#define AVG 1000 // Average sample limit
|
||||
#define ZOFFSET 0x00 // Average Zero offset
|
||||
#define BUF_SIZE 2048 // Sample buffer size
|
||||
|
||||
// Global variable for this example
|
||||
Uint16 SampleTable[BUF_SIZE];
|
||||
|
||||
main()
|
||||
{
|
||||
Uint16 i;
|
||||
|
||||
// Step 1. Initialize System Control:
|
||||
// PLL, WatchDog, enable Peripheral Clocks
|
||||
// This example function is found in the DSP2833x_SysCtrl.c file.
|
||||
InitSysCtrl();
|
||||
|
||||
// Specific clock setting for this example:
|
||||
EALLOW;
|
||||
SysCtrlRegs.HISPCP.all = ADC_MODCLK; // HSPCLK = SYSCLKOUT/ADC_MODCLK
|
||||
EDIS;
|
||||
|
||||
// Step 2. Initialize GPIO:
|
||||
// This example function is found in the DSP2833x_Gpio.c file and
|
||||
// illustrates how to set the GPIO to it's default state.
|
||||
// InitGpio(); // Skipped for this example
|
||||
|
||||
// Step 3. Clear all interrupts and initialize PIE vector table:
|
||||
// Disable CPU interrupts
|
||||
DINT;
|
||||
|
||||
// Initialize the PIE control registers to their default state.
|
||||
// The default state is all PIE interrupts disabled and flags
|
||||
// are cleared.
|
||||
// This function is found in the DSP2833x_PieCtrl.c file.
|
||||
InitPieCtrl();
|
||||
|
||||
// Disable CPU interrupts and clear all CPU interrupt flags:
|
||||
IER = 0x0000;
|
||||
IFR = 0x0000;
|
||||
|
||||
// Initialize the PIE vector table with pointers to the shell Interrupt
|
||||
// Service Routines (ISR).
|
||||
// This will populate the entire table, even if the interrupt
|
||||
// is not used in this example. This is useful for debug purposes.
|
||||
// The shell ISR routines are found in DSP2833x_DefaultIsr.c.
|
||||
// This function is found in DSP2833x_PieVect.c.
|
||||
InitPieVectTable();
|
||||
|
||||
// Step 4. Initialize all the Device Peripherals:
|
||||
// This function is found in DSP2833x_InitPeripherals.c
|
||||
// InitPeripherals(); // Not required for this example
|
||||
InitAdc(); // For this example, init the ADC
|
||||
|
||||
// Specific ADC setup for this example:
|
||||
AdcRegs.ADCTRL1.bit.ACQ_PS = ADC_SHCLK;
|
||||
AdcRegs.ADCTRL3.bit.ADCCLKPS = ADC_CKPS;
|
||||
AdcRegs.ADCTRL1.bit.SEQ_CASC = 1; // 1 Cascaded mode
|
||||
AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x0;
|
||||
AdcRegs.ADCTRL1.bit.CONT_RUN = 1; // Setup continuous run
|
||||
|
||||
|
||||
// Step 5. User specific code, enable interrupts:
|
||||
|
||||
|
||||
// Clear SampleTable
|
||||
for (i=0; i<BUF_SIZE; i++)
|
||||
{
|
||||
SampleTable[i] = 0;
|
||||
}
|
||||
|
||||
// Start SEQ1
|
||||
AdcRegs.ADCTRL2.all = 0x2000;
|
||||
|
||||
// Take ADC data and log the in SampleTable array
|
||||
for(;;)
|
||||
{
|
||||
for (i=0; i<AVG; i++)
|
||||
{
|
||||
while (AdcRegs.ADCST.bit.INT_SEQ1== 0) {} // Wait for interrupt
|
||||
AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1;
|
||||
SampleTable[i] =((AdcRegs.ADCRESULT0>>4) );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
// No more.
|
||||
//===========================================================================
|
||||
|
37
Source/External/v120/DSP2833x_examples/adc_seqmode_test/Example_2833xAdcSeqModeTest.gel
vendored
Normal file
37
Source/External/v120/DSP2833x_examples/adc_seqmode_test/Example_2833xAdcSeqModeTest.gel
vendored
Normal file
@ -0,0 +1,37 @@
|
||||
/*
|
||||
// TI File $Revision: /main/5 $
|
||||
// Checkin $Date: August 9, 2007 17:11:47 $
|
||||
//###########################################################################
|
||||
//
|
||||
// This .gel file can be used to help load and build the example project.
|
||||
// It should be unloaded from Code Composer Studio before loading another
|
||||
// project.
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
*/
|
||||
|
||||
menuitem "DSP2833x ADC Seq Test"
|
||||
|
||||
hotmenu Load_and_Build_Project()
|
||||
{
|
||||
GEL_ProjectLoad("Example_2833xAdcSeqModeTest.pjt");
|
||||
GEL_ProjectBuild("Example_2833xAdcSeqModeTest.pjt");
|
||||
Setup_WatchWindow();
|
||||
}
|
||||
|
||||
hotmenu Load_Code()
|
||||
{
|
||||
GEL_Load(".\\debug\\Example_2833xAdcSeqModeTest.out");
|
||||
Setup_WatchWindow();
|
||||
}
|
||||
|
||||
|
||||
hotmenu Setup_WatchWindow()
|
||||
{
|
||||
GEL_WatchReset();
|
||||
GEL_WatchAdd("SampleTable,x");
|
||||
GEL_WatchAdd("AdcRegs,x");
|
||||
}
|
45
Source/External/v120/DSP2833x_examples/adc_seqmode_test/Example_2833xAdcSeqModeTest.pjt
vendored
Normal file
45
Source/External/v120/DSP2833x_examples/adc_seqmode_test/Example_2833xAdcSeqModeTest.pjt
vendored
Normal file
@ -0,0 +1,45 @@
|
||||
; Code Composer Project File, Version 2.0 (do not modify or remove this line)
|
||||
|
||||
[Project Settings]
|
||||
ProjectName="DSP2833x"
|
||||
ProjectDir="C:\tidcs\c28\DSP2833x\v120\DSP2833x_examples\adc_seqmode_test\"
|
||||
ProjectType=Executable
|
||||
CPUFamily=TMS320C28XX
|
||||
Tool="Compiler"
|
||||
Tool="DspBiosBuilder"
|
||||
Tool="Linker"
|
||||
Config="Debug"
|
||||
Config="Release"
|
||||
|
||||
[Source Files]
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_Adc.c"
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_ADC_cal.asm"
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_CodeStartBranch.asm"
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_DefaultIsr.c"
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_PieCtrl.c"
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_PieVect.c"
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_SysCtrl.c"
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_usDelay.asm"
|
||||
Source="..\..\DSP2833x_headers\source\DSP2833x_GlobalVariableDefs.c"
|
||||
Source="Example_2833xAdcSeqModeTest.c"
|
||||
Source="..\..\DSP2833x_common\cmd\28335_RAM_lnk.cmd"
|
||||
Source="..\..\DSP2833x_headers\cmd\DSP2833x_Headers_nonBIOS.cmd"
|
||||
|
||||
["Compiler" Settings: "Debug"]
|
||||
Options=-g -q -pdr -fr"C:\tidcs\c28\DSP2833x\v120\DSP2833x_examples\adc_seqmode_test\Debug" -fs"C:\tidcs\c28\DSP2833x\v120\DSP2833x_examples\adc_seqmode_test\Debug" -i"..\..\DSP2833x_headers\include" -i"..\..\DSP2833x_common\include" -d"_DEBUG" -d"LARGE_MODEL" --float_support=fpu32 -ml -mt -v28
|
||||
|
||||
["Compiler" Settings: "Release"]
|
||||
Options=-q -o3 -fr"C:\tidcs\c28\DSP2833x\v120\DSP2833x_examples\adc_seqmode_test\Release" -d"LARGE_MODEL" -ml -v28
|
||||
|
||||
["DspBiosBuilder" Settings: "Debug"]
|
||||
Options=-v28
|
||||
|
||||
["DspBiosBuilder" Settings: "Release"]
|
||||
Options=-v28
|
||||
|
||||
["Linker" Settings: "Debug"]
|
||||
Options=-q -c -ecode_start -m".\Debug\Example_2833xAdcSeqModeTest.map" -o".\Debug\Example_2833xAdcSeqModeTest.out" -stack0x380 -w -x -i"..\..\DSP2833x_headers\include" -l"rts2800_fpu32.lib"
|
||||
|
||||
["Linker" Settings: "Release"]
|
||||
Options=-q -c -o".\Release\Example_2833xAdcSeqModeTest.out" -x
|
||||
|
203
Source/External/v120/DSP2833x_examples/adc_soc/Example_2833xAdcSoc.c
vendored
Normal file
203
Source/External/v120/DSP2833x_examples/adc_soc/Example_2833xAdcSoc.c
vendored
Normal file
@ -0,0 +1,203 @@
|
||||
// TI File $Revision: /main/11 $
|
||||
// Checkin $Date: April 21, 2008 15:41:01 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: Example_2833xAdc.c
|
||||
//
|
||||
// TITLE: DSP2833x ADC Example Program.
|
||||
//
|
||||
// ASSUMPTIONS:
|
||||
//
|
||||
// This program requires the DSP2833x header files.
|
||||
//
|
||||
// Make sure the CPU clock speed is properly defined in
|
||||
// DSP2833x_Examples.h before compiling this example.
|
||||
//
|
||||
// Connect signals to be converted to A2 and A3.
|
||||
//
|
||||
// As supplied, this project is configured for "boot to SARAM"
|
||||
// operation. The 2833x Boot Mode table is shown below.
|
||||
// For information on configuring the boot mode of an eZdsp,
|
||||
// please refer to the documentation included with the eZdsp,
|
||||
//
|
||||
// $Boot_Table:
|
||||
//
|
||||
// GPIO87 GPIO86 GPIO85 GPIO84
|
||||
// XA15 XA14 XA13 XA12
|
||||
// PU PU PU PU
|
||||
// ==========================================
|
||||
// 1 1 1 1 Jump to Flash
|
||||
// 1 1 1 0 SCI-A boot
|
||||
// 1 1 0 1 SPI-A boot
|
||||
// 1 1 0 0 I2C-A boot
|
||||
// 1 0 1 1 eCAN-A boot
|
||||
// 1 0 1 0 McBSP-A boot
|
||||
// 1 0 0 1 Jump to XINTF x16
|
||||
// 1 0 0 0 Jump to XINTF x32
|
||||
// 0 1 1 1 Jump to OTP
|
||||
// 0 1 1 0 Parallel GPIO I/O boot
|
||||
// 0 1 0 1 Parallel XINTF boot
|
||||
// 0 1 0 0 Jump to SARAM <- "boot to SARAM"
|
||||
// 0 0 1 1 Branch to check boot mode
|
||||
// 0 0 1 0 Boot to flash, bypass ADC cal
|
||||
// 0 0 0 1 Boot to SARAM, bypass ADC cal
|
||||
// 0 0 0 0 Boot to SCI-A, bypass ADC cal
|
||||
// Boot_Table_End$
|
||||
//
|
||||
// DESCRIPTION:
|
||||
//
|
||||
// This example sets up the PLL in x10/2 mode.
|
||||
//
|
||||
// For 150 MHz devices (default)
|
||||
// divides SYSCLKOUT by six to reach a 25.0Mhz HSPCLK
|
||||
// (assuming a 30Mhz XCLKIN).
|
||||
//
|
||||
// For 100 MHz devices:
|
||||
// divides SYSCLKOUT by four to reach a 25.0Mhz HSPCLK
|
||||
// (assuming a 20Mhz XCLKIN).
|
||||
//
|
||||
// Interrupts are enabled and the ePWM1 is setup to generate a periodic
|
||||
// ADC SOC on SEQ1. Two channels are converted, ADCINA3 and ADCINA2.
|
||||
//
|
||||
// Watch Variables:
|
||||
//
|
||||
// Voltage1[10] Last 10 ADCRESULT0 values
|
||||
// Voltage2[10] Last 10 ADCRESULT1 values
|
||||
// ConversionCount Current result number 0-9
|
||||
// LoopCount Idle loop counter
|
||||
//
|
||||
//
|
||||
//###########################################################################
|
||||
//
|
||||
// Original Author: D.F.
|
||||
//
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
|
||||
#include "DSP28x_Project.h" // Device Headerfile and Examples Include File
|
||||
|
||||
// Prototype statements for functions found within this file.
|
||||
interrupt void adc_isr(void);
|
||||
|
||||
// Global variables used in this example:
|
||||
Uint16 LoopCount;
|
||||
Uint16 ConversionCount;
|
||||
Uint16 Voltage1[10];
|
||||
Uint16 Voltage2[10];
|
||||
|
||||
|
||||
main()
|
||||
{
|
||||
|
||||
// Step 1. Initialize System Control:
|
||||
// PLL, WatchDog, enable Peripheral Clocks
|
||||
// This example function is found in the DSP2833x_SysCtrl.c file.
|
||||
InitSysCtrl();
|
||||
|
||||
|
||||
EALLOW;
|
||||
#if (CPU_FRQ_150MHZ) // Default - 150 MHz SYSCLKOUT
|
||||
#define ADC_MODCLK 0x3 // HSPCLK = SYSCLKOUT/2*ADC_MODCLK2 = 150/(2*3) = 25.0 MHz
|
||||
#endif
|
||||
#if (CPU_FRQ_100MHZ)
|
||||
#define ADC_MODCLK 0x2 // HSPCLK = SYSCLKOUT/2*ADC_MODCLK2 = 100/(2*2) = 25.0 MHz
|
||||
#endif
|
||||
EDIS;
|
||||
|
||||
// Step 2. Initialize GPIO:
|
||||
// This example function is found in the DSP2833x_Gpio.c file and
|
||||
// illustrates how to set the GPIO to it's default state.
|
||||
// InitGpio(); // Skipped for this example
|
||||
|
||||
// Step 3. Clear all interrupts and initialize PIE vector table:
|
||||
// Disable CPU interrupts
|
||||
DINT;
|
||||
|
||||
// Initialize the PIE control registers to their default state.
|
||||
// The default state is all PIE interrupts disabled and flags
|
||||
// are cleared.
|
||||
// This function is found in the DSP2833x_PieCtrl.c file.
|
||||
InitPieCtrl();
|
||||
|
||||
// Disable CPU interrupts and clear all CPU interrupt flags:
|
||||
IER = 0x0000;
|
||||
IFR = 0x0000;
|
||||
|
||||
// Initialize the PIE vector table with pointers to the shell Interrupt
|
||||
// Service Routines (ISR).
|
||||
// This will populate the entire table, even if the interrupt
|
||||
// is not used in this example. This is useful for debug purposes.
|
||||
// The shell ISR routines are found in DSP2833x_DefaultIsr.c.
|
||||
// This function is found in DSP2833x_PieVect.c.
|
||||
InitPieVectTable();
|
||||
|
||||
// Interrupts that are used in this example are re-mapped to
|
||||
// ISR functions found within this file.
|
||||
EALLOW; // This is needed to write to EALLOW protected register
|
||||
PieVectTable.ADCINT = &adc_isr;
|
||||
EDIS; // This is needed to disable write to EALLOW protected registers
|
||||
|
||||
// Step 4. Initialize all the Device Peripherals:
|
||||
// This function is found in DSP2833x_InitPeripherals.c
|
||||
// InitPeripherals(); // Not required for this example
|
||||
InitAdc(); // For this example, init the ADC
|
||||
|
||||
// Step 5. User specific code, enable interrupts:
|
||||
|
||||
// Enable ADCINT in PIE
|
||||
PieCtrlRegs.PIEIER1.bit.INTx6 = 1;
|
||||
IER |= M_INT1; // Enable CPU Interrupt 1
|
||||
EINT; // Enable Global interrupt INTM
|
||||
ERTM; // Enable Global realtime interrupt DBGM
|
||||
|
||||
LoopCount = 0;
|
||||
ConversionCount = 0;
|
||||
|
||||
// Configure ADC
|
||||
AdcRegs.ADCMAXCONV.all = 0x0001; // Setup 2 conv's on SEQ1
|
||||
AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x3; // Setup ADCINA3 as 1st SEQ1 conv.
|
||||
AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x2; // Setup ADCINA2 as 2nd SEQ1 conv.
|
||||
AdcRegs.ADCTRL2.bit.EPWM_SOCA_SEQ1 = 1;// Enable SOCA from ePWM to start SEQ1
|
||||
AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 1; // Enable SEQ1 interrupt (every EOS)
|
||||
|
||||
// Assumes ePWM1 clock is already enabled in InitSysCtrl();
|
||||
EPwm1Regs.ETSEL.bit.SOCAEN = 1; // Enable SOC on A group
|
||||
EPwm1Regs.ETSEL.bit.SOCASEL = 4; // Select SOC from from CPMA on upcount
|
||||
EPwm1Regs.ETPS.bit.SOCAPRD = 1; // Generate pulse on 1st event
|
||||
EPwm1Regs.CMPA.half.CMPA = 0x0080; // Set compare A value
|
||||
EPwm1Regs.TBPRD = 0xFFFF; // Set period for ePWM1
|
||||
EPwm1Regs.TBCTL.bit.CTRMODE = 0; // count up and start
|
||||
|
||||
// Wait for ADC interrupt
|
||||
for(;;)
|
||||
{
|
||||
LoopCount++;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
interrupt void adc_isr(void)
|
||||
{
|
||||
|
||||
Voltage1[ConversionCount] = AdcRegs.ADCRESULT0 >>4;
|
||||
Voltage2[ConversionCount] = AdcRegs.ADCRESULT1 >>4;
|
||||
|
||||
// If 40 conversions have been logged, start over
|
||||
if(ConversionCount == 9)
|
||||
{
|
||||
ConversionCount = 0;
|
||||
}
|
||||
else ConversionCount++;
|
||||
|
||||
// Reinitialize for next ADC sequence
|
||||
AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1; // Reset SEQ1
|
||||
AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1; // Clear INT SEQ1 bit
|
||||
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Acknowledge interrupt to PIE
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
40
Source/External/v120/DSP2833x_examples/adc_soc/Example_2833xAdcSoc.gel
vendored
Normal file
40
Source/External/v120/DSP2833x_examples/adc_soc/Example_2833xAdcSoc.gel
vendored
Normal file
@ -0,0 +1,40 @@
|
||||
/*
|
||||
// TI File $Revision: /main/5 $
|
||||
// Checkin $Date: August 9, 2007 17:11:59 $
|
||||
//###########################################################################
|
||||
//
|
||||
// This .gel file can be used to help load and build the example project.
|
||||
// It should be unloaded from Code Composer Studio before loading another
|
||||
// project.
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
*/
|
||||
|
||||
menuitem "DSP2833x ADC SOC Example"
|
||||
|
||||
hotmenu Load_and_Build_Project()
|
||||
{
|
||||
GEL_ProjectLoad("Example_2833xAdcSoc.pjt");
|
||||
GEL_ProjectBuild("Example_2833xAdcSoc.pjt");
|
||||
Setup_WatchWindow();
|
||||
}
|
||||
|
||||
hotmenu Load_Code()
|
||||
{
|
||||
GEL_Load(".\\debug\\Example_2833xAdcSoc.out");
|
||||
Setup_WatchWindow();
|
||||
}
|
||||
|
||||
hotmenu Setup_WatchWindow()
|
||||
{
|
||||
GEL_WatchReset();
|
||||
GEL_WatchAdd("Voltage1,x");
|
||||
GEL_WatchAdd("Voltage2,x");
|
||||
GEL_WatchAdd("LoopCount,x");
|
||||
GEL_WatchAdd("ConversionCount,d");
|
||||
GEL_WatchAdd("AdcRegs,x");
|
||||
GEL_WatchAdd("EPwm1Regs,x");
|
||||
}
|
46
Source/External/v120/DSP2833x_examples/adc_soc/Example_2833xAdcSoc.pjt
vendored
Normal file
46
Source/External/v120/DSP2833x_examples/adc_soc/Example_2833xAdcSoc.pjt
vendored
Normal file
@ -0,0 +1,46 @@
|
||||
; Code Composer Project File, Version 2.0 (do not modify or remove this line)
|
||||
|
||||
[Project Settings]
|
||||
ProjectName="DSP28"
|
||||
ProjectDir="C:\tidcs\c28\DSP2833x\v120\DSP2833x_examples\adc_soc\"
|
||||
ProjectType=Executable
|
||||
CPUFamily=TMS320C28XX
|
||||
Tool="Compiler"
|
||||
Tool="DspBiosBuilder"
|
||||
Tool="Linker"
|
||||
Config="Debug"
|
||||
Config="Release"
|
||||
|
||||
[Source Files]
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_Adc.c"
|
||||
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_ADC_cal.asm"
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_CodeStartBranch.asm"
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_DefaultIsr.c"
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_PieCtrl.c"
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_PieVect.c"
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_SysCtrl.c"
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_usDelay.asm"
|
||||
Source="..\..\DSP2833x_headers\source\DSP2833x_GlobalVariableDefs.c"
|
||||
Source="Example_2833xAdcSoc.c"
|
||||
Source="..\..\DSP2833x_common\cmd\28335_RAM_lnk.cmd"
|
||||
Source="..\..\DSP2833x_headers\cmd\DSP2833x_Headers_nonBIOS.cmd"
|
||||
|
||||
["Compiler" Settings: "Debug"]
|
||||
Options=-g -q -pdr -fr"C:\tidcs\c28\DSP2833x\v120\DSP2833x_examples\adc_soc\Debug" -fs"C:\tidcs\c28\DSP2833x\v120\DSP2833x_examples\adc_soc\Debug" -i"..\..\DSP2833x_headers\include" -i"..\..\DSP2833x_common\include" -d"_DEBUG" -d"LARGE_MODEL" --float_support=fpu32 -ml -mt -v28
|
||||
|
||||
["Compiler" Settings: "Release"]
|
||||
Options=-q -o3 -fr"C:\tidcs\c28\DSP2833x\v120\DSP2833x_examples\adc_soc\Release" -d"LARGE_MODEL" -ml -v28
|
||||
|
||||
["DspBiosBuilder" Settings: "Debug"]
|
||||
Options=-v28
|
||||
|
||||
["DspBiosBuilder" Settings: "Release"]
|
||||
Options=-v28
|
||||
|
||||
["Linker" Settings: "Debug"]
|
||||
Options=-q -c -ecode_start -m".\Debug\Example_2833xAdcSoc.map" -o".\Debug\Example_2833xAdcSoc.out" -stack0x380 -w -x -i"..\..\DSP2833x_headers\include" -l"rts2800_fpu32.lib"
|
||||
|
||||
["Linker" Settings: "Release"]
|
||||
Options=-q -c -o".\Release\Example_2833xAdcSoc.out" -x
|
||||
|
189
Source/External/v120/DSP2833x_examples/cpu_timer/Example_2833xCpuTimer.c
vendored
Normal file
189
Source/External/v120/DSP2833x_examples/cpu_timer/Example_2833xCpuTimer.c
vendored
Normal file
@ -0,0 +1,189 @@
|
||||
// TI File $Revision: /main/14 $
|
||||
// Checkin $Date: April 21, 2008 15:41:07 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: Example_2833xCpuTimer.c
|
||||
//
|
||||
// TITLE: DSP2833x Device Getting Started Program.
|
||||
//
|
||||
// ASSUMPTIONS:
|
||||
//
|
||||
// This program requires the DSP2833x header files.
|
||||
//
|
||||
// Other then boot mode configuration, no other hardware configuration
|
||||
// is required.
|
||||
//
|
||||
//
|
||||
// As supplied, this project is configured for "boot to SARAM"
|
||||
// operation. The 2833x Boot Mode table is shown below.
|
||||
// For information on configuring the boot mode of an eZdsp,
|
||||
// please refer to the documentation included with the eZdsp,
|
||||
//
|
||||
// $Boot_Table:
|
||||
//
|
||||
// GPIO87 GPIO86 GPIO85 GPIO84
|
||||
// XA15 XA14 XA13 XA12
|
||||
// PU PU PU PU
|
||||
// ==========================================
|
||||
// 1 1 1 1 Jump to Flash
|
||||
// 1 1 1 0 SCI-A boot
|
||||
// 1 1 0 1 SPI-A boot
|
||||
// 1 1 0 0 I2C-A boot
|
||||
// 1 0 1 1 eCAN-A boot
|
||||
// 1 0 1 0 McBSP-A boot
|
||||
// 1 0 0 1 Jump to XINTF x16
|
||||
// 1 0 0 0 Jump to XINTF x32
|
||||
// 0 1 1 1 Jump to OTP
|
||||
// 0 1 1 0 Parallel GPIO I/O boot
|
||||
// 0 1 0 1 Parallel XINTF boot
|
||||
// 0 1 0 0 Jump to SARAM <- "boot to SARAM"
|
||||
// 0 0 1 1 Branch to check boot mode
|
||||
// 0 0 1 0 Boot to flash, bypass ADC cal
|
||||
// 0 0 0 1 Boot to SARAM, bypass ADC cal
|
||||
// 0 0 0 0 Boot to SCI-A, bypass ADC cal
|
||||
// Boot_Table_End$
|
||||
//
|
||||
// DESCRIPTION:
|
||||
//
|
||||
// This example configures CPU Timer0, 1, and 2 and increments
|
||||
// a counter each time the timers assert an interrupt.
|
||||
//
|
||||
// Watch Variables:
|
||||
// CpuTimer0.InterruptCount
|
||||
// CpuTimer1.InterruptCount
|
||||
// CpuTimer2.InterruptCount
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
|
||||
|
||||
#include "DSP28x_Project.h" // Device Headerfile and Examples Include File
|
||||
|
||||
// Prototype statements for functions found within this file.
|
||||
interrupt void cpu_timer0_isr(void);
|
||||
interrupt void cpu_timer1_isr(void);
|
||||
interrupt void cpu_timer2_isr(void);
|
||||
|
||||
void main(void)
|
||||
{
|
||||
|
||||
// Step 1. Initialize System Control:
|
||||
// PLL, WatchDog, enable Peripheral Clocks
|
||||
// This example function is found in the DSP2833x_SysCtrl.c file.
|
||||
InitSysCtrl();
|
||||
|
||||
// Step 2. Initalize GPIO:
|
||||
// This example function is found in the DSP2833x_Gpio.c file and
|
||||
// illustrates how to set the GPIO to it's default state.
|
||||
// InitGpio(); // Skipped for this example
|
||||
|
||||
|
||||
// Step 3. Clear all interrupts and initialize PIE vector table:
|
||||
// Disable CPU interrupts
|
||||
DINT;
|
||||
|
||||
// Initialize the PIE control registers to their default state.
|
||||
// The default state is all PIE interrupts disabled and flags
|
||||
// are cleared.
|
||||
// This function is found in the DSP2833x_PieCtrl.c file.
|
||||
InitPieCtrl();
|
||||
|
||||
// Disable CPU interrupts and clear all CPU interrupt flags:
|
||||
IER = 0x0000;
|
||||
IFR = 0x0000;
|
||||
|
||||
// Initialize the PIE vector table with pointers to the shell Interrupt
|
||||
// Service Routines (ISR).
|
||||
// This will populate the entire table, even if the interrupt
|
||||
// is not used in this example. This is useful for debug purposes.
|
||||
// The shell ISR routines are found in DSP2833x_DefaultIsr.c.
|
||||
// This function is found in DSP2833x_PieVect.c.
|
||||
InitPieVectTable();
|
||||
|
||||
// Interrupts that are used in this example are re-mapped to
|
||||
// ISR functions found within this file.
|
||||
EALLOW; // This is needed to write to EALLOW protected registers
|
||||
PieVectTable.TINT0 = &cpu_timer0_isr;
|
||||
PieVectTable.XINT13 = &cpu_timer1_isr;
|
||||
PieVectTable.TINT2 = &cpu_timer2_isr;
|
||||
EDIS; // This is needed to disable write to EALLOW protected registers
|
||||
|
||||
// Step 4. Initialize the Device Peripheral. This function can be
|
||||
// found in DSP2833x_CpuTimers.c
|
||||
InitCpuTimers(); // For this example, only initialize the Cpu Timers
|
||||
|
||||
#if (CPU_FRQ_150MHZ)
|
||||
// Configure CPU-Timer 0, 1, and 2 to interrupt every second:
|
||||
// 150MHz CPU Freq, 1 second Period (in uSeconds)
|
||||
|
||||
ConfigCpuTimer(&CpuTimer0, 150, 1000000);
|
||||
ConfigCpuTimer(&CpuTimer1, 150, 1000000);
|
||||
ConfigCpuTimer(&CpuTimer2, 150, 1000000);
|
||||
#endif
|
||||
|
||||
#if (CPU_FRQ_100MHZ)
|
||||
// Configure CPU-Timer 0, 1, and 2 to interrupt every second:
|
||||
// 100MHz CPU Freq, 1 second Period (in uSeconds)
|
||||
|
||||
ConfigCpuTimer(&CpuTimer0, 100, 1000000);
|
||||
ConfigCpuTimer(&CpuTimer1, 100, 1000000);
|
||||
ConfigCpuTimer(&CpuTimer2, 100, 1000000);
|
||||
#endif
|
||||
// To ensure precise timing, use write-only instructions to write to the entire register. Therefore, if any
|
||||
// of the configuration bits are changed in ConfigCpuTimer and InitCpuTimers (in DSP2833x_CpuTimers.h), the
|
||||
// below settings must also be updated.
|
||||
|
||||
CpuTimer0Regs.TCR.all = 0x4001; // Use write-only instruction to set TSS bit = 0
|
||||
CpuTimer1Regs.TCR.all = 0x4001; // Use write-only instruction to set TSS bit = 0
|
||||
CpuTimer2Regs.TCR.all = 0x4001; // Use write-only instruction to set TSS bit = 0
|
||||
|
||||
// Step 5. User specific code, enable interrupts:
|
||||
|
||||
|
||||
// Enable CPU int1 which is connected to CPU-Timer 0, CPU int13
|
||||
// which is connected to CPU-Timer 1, and CPU int 14, which is connected
|
||||
// to CPU-Timer 2:
|
||||
IER |= M_INT1;
|
||||
IER |= M_INT13;
|
||||
IER |= M_INT14;
|
||||
|
||||
// Enable TINT0 in the PIE: Group 1 interrupt 7
|
||||
PieCtrlRegs.PIEIER1.bit.INTx7 = 1;
|
||||
|
||||
// Enable global Interrupts and higher priority real-time debug events:
|
||||
EINT; // Enable Global interrupt INTM
|
||||
ERTM; // Enable Global realtime interrupt DBGM
|
||||
|
||||
// Step 6. IDLE loop. Just sit and loop forever (optional):
|
||||
for(;;);
|
||||
|
||||
}
|
||||
|
||||
|
||||
interrupt void cpu_timer0_isr(void)
|
||||
{
|
||||
CpuTimer0.InterruptCount++;
|
||||
|
||||
// Acknowledge this interrupt to receive more interrupts from group 1
|
||||
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;
|
||||
}
|
||||
|
||||
interrupt void cpu_timer1_isr(void)
|
||||
{
|
||||
CpuTimer1.InterruptCount++;
|
||||
// The CPU acknowledges the interrupt.
|
||||
EDIS;
|
||||
}
|
||||
|
||||
interrupt void cpu_timer2_isr(void)
|
||||
{ EALLOW;
|
||||
CpuTimer2.InterruptCount++;
|
||||
// The CPU acknowledges the interrupt.
|
||||
EDIS;
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
// No more.
|
||||
//===========================================================================
|
43
Source/External/v120/DSP2833x_examples/cpu_timer/Example_2833xCpuTimer.gel
vendored
Normal file
43
Source/External/v120/DSP2833x_examples/cpu_timer/Example_2833xCpuTimer.gel
vendored
Normal file
@ -0,0 +1,43 @@
|
||||
/*
|
||||
// TI File $Revision: /main/6 $
|
||||
// Checkin $Date: August 9, 2007 17:12:13 $
|
||||
//###########################################################################
|
||||
//
|
||||
// This .gel file can be used to help load and build the example project.
|
||||
// It should be unloaded from Code Composer Studio before loading another
|
||||
// project.
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
*/
|
||||
|
||||
menuitem "DSP2833x CpuTimerExample"
|
||||
|
||||
hotmenu Load_and_Build_Project()
|
||||
{
|
||||
GEL_ProjectLoad("Example_2833xCpuTimer.pjt");
|
||||
GEL_ProjectBuild("Example_2833xCpuTimer.pjt");
|
||||
Setup_WatchWindow();
|
||||
}
|
||||
|
||||
hotmenu Load_Code()
|
||||
{
|
||||
GEL_Load(".\\debug\\Example_2833xCpuTimer.out");
|
||||
Setup_WatchWindow();
|
||||
}
|
||||
|
||||
hotmenu Setup_WatchWindow()
|
||||
{
|
||||
GEL_WatchReset();
|
||||
GEL_WatchAdd("CpuTimer0.InterruptCount",,"CPU ISR Count");
|
||||
GEL_WatchAdd("CpuTimer0",,"CPU Timer Variables");
|
||||
GEL_WatchAdd("CpuTimer0Regs,x");
|
||||
GEL_WatchAdd("CpuTimer1.InterruptCount",,"CPU ISR Count");
|
||||
GEL_WatchAdd("CpuTimer1",,"CPU Timer Variables");
|
||||
GEL_WatchAdd("CpuTimer1Regs,x");
|
||||
GEL_WatchAdd("CpuTimer2.InterruptCount",,"CPU ISR Count");
|
||||
GEL_WatchAdd("CpuTimer2",,"CPU Timer Variables");
|
||||
GEL_WatchAdd("CpuTimer2Regs,x");
|
||||
}
|
46
Source/External/v120/DSP2833x_examples/cpu_timer/Example_2833xCpuTimer.pjt
vendored
Normal file
46
Source/External/v120/DSP2833x_examples/cpu_timer/Example_2833xCpuTimer.pjt
vendored
Normal file
@ -0,0 +1,46 @@
|
||||
; Code Composer Project File, Version 2.0 (do not modify or remove this line)
|
||||
|
||||
[Project Settings]
|
||||
ProjectName="DSP2833x"
|
||||
ProjectDir="C:\tidcs\c28\DSP2833x\v120\DSP2833x_examples\cpu_timer\"
|
||||
ProjectType=Executable
|
||||
CPUFamily=TMS320C28XX
|
||||
Tool="Compiler"
|
||||
Tool="CustomBuilder"
|
||||
Tool="DspBiosBuilder"
|
||||
Tool="Linker"
|
||||
Config="Debug"
|
||||
Config="Release"
|
||||
|
||||
[Source Files]
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_ADC_cal.asm"
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_CodeStartBranch.asm"
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_CpuTimers.c"
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_DefaultIsr.c"
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_PieCtrl.c"
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_PieVect.c"
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_SysCtrl.c"
|
||||
Source="..\..\DSP2833x_common\source\DSP2833x_usDelay.asm"
|
||||
Source="..\..\DSP2833x_headers\source\DSP2833x_GlobalVariableDefs.c"
|
||||
Source="Example_2833xCpuTimer.c"
|
||||
Source="..\..\DSP2833x_common\cmd\28335_RAM_lnk.cmd"
|
||||
Source="..\..\DSP2833x_headers\cmd\DSP2833x_Headers_nonBIOS.cmd"
|
||||
|
||||
["Compiler" Settings: "Debug"]
|
||||
Options=-g -q -pdr -fr"C:\tidcs\c28\DSP2833x\v120\DSP2833x_examples\cpu_timer\Debug" -fs"C:\tidcs\c28\DSP2833x\v120\DSP2833x_examples\cpu_timer\Debug" -i"..\..\DSP2833x_headers\include" -i"..\..\DSP2833x_common\include" -d"_DEBUG" -d"LARGE_MODEL" --float_support=fpu32 -ml -mt -v28
|
||||
|
||||
["Compiler" Settings: "Release"]
|
||||
Options=-q -o3 -fr"C:\tidcs\c28\DSP2833x\v120\DSP2833x_examples\cpu_timer\Release" -d"LARGE_MODEL" -ml -v28
|
||||
|
||||
["DspBiosBuilder" Settings: "Debug"]
|
||||
Options=-v28
|
||||
|
||||
["DspBiosBuilder" Settings: "Release"]
|
||||
Options=-v28
|
||||
|
||||
["Linker" Settings: "Debug"]
|
||||
Options=-q -c -ecode_start -m".\Debug\Example_2833xCpuTimer.map" -o".\Debug\Example_2833xCpuTimer.out" -stack0x200 -w -x -i"..\..\DSP2833x_headers\include" -l"rts2800_fpu32.lib"
|
||||
|
||||
["Linker" Settings: "Release"]
|
||||
Options=-q -c -o".\Release\Example_2833xCpuTimer.out" -x
|
||||
|
189
Source/External/v120/DSP2833x_examples/dma_ram_to_ram/Example_2833xDMA_ram_to_ram.c
vendored
Normal file
189
Source/External/v120/DSP2833x_examples/dma_ram_to_ram/Example_2833xDMA_ram_to_ram.c
vendored
Normal file
@ -0,0 +1,189 @@
|
||||
// TI File $Revision: /main/3 $
|
||||
// Checkin $Date: May 12, 2008 14:23:19 $
|
||||
//###########################################################################
|
||||
//
|
||||
// FILE: Example_2833xDMA_Ram_to_Ram.c
|
||||
//
|
||||
// TITLE: DSP2833x DMA Ram to Ram
|
||||
// ASSUMPTIONS:
|
||||
//
|
||||
// This program requires the DSP2833x header files.
|
||||
//
|
||||
// As supplied, this project is configured for "boot to SARAM"
|
||||
// operation. The 2833x Boot Mode table is shown below.
|
||||
// For information on configuring the boot mode of an eZdsp,
|
||||
// please refer to the documentation included with the eZdsp,
|
||||
//
|
||||
// $Boot_Table:
|
||||
//
|
||||
// GPIO87 GPIO86 GPIO85 GPIO84
|
||||
// XA15 XA14 XA13 XA12
|
||||
// PU PU PU PU
|
||||
// ==========================================
|
||||
// 1 1 1 1 Jump to Flash
|
||||
// 1 1 1 0 SCI-A boot
|
||||
// 1 1 0 1 SPI-A boot
|
||||
// 1 1 0 0 I2C-A boot
|
||||
// 1 0 1 1 eCAN-A boot
|
||||
// 1 0 1 0 McBSP-A boot
|
||||
// 1 0 0 1 Jump to XINTF x16
|
||||
// 1 0 0 0 Jump to XINTF x32
|
||||
// 0 1 1 1 Jump to OTP
|
||||
// 0 1 1 0 Parallel GPIO I/O boot
|
||||
// 0 1 0 1 Parallel XINTF boot
|
||||
// 0 1 0 0 Jump to SARAM <- "boot to SARAM"
|
||||
// 0 0 1 1 Branch to check boot mode
|
||||
// 0 0 1 0 Boot to flash, bypass ADC cal
|
||||
// 0 0 0 1 Boot to SARAM, bypass ADC cal
|
||||
// 0 0 0 0 Boot to SCI-A, bypass ADC cal
|
||||
// Boot_Table_End$
|
||||
//
|
||||
//
|
||||
// DESCRIPTION:
|
||||
//
|
||||
// Code will perform a block copy from L5 SARAM to L4 SARAM of 1024 words. Transfer will be started
|
||||
// by Timer0. Will use 32-bit datasize to decrease the transfer time.
|
||||
// Code will end in local_DINTCH1_ISR once the transfer is complete
|
||||
//
|
||||
// Watch Variables:
|
||||
// DMABuf1
|
||||
// DMABuf2
|
||||
//
|
||||
//###########################################################################
|
||||
//
|
||||
// Original source by: M.P.
|
||||
//
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
|
||||
#include "DSP28x_Project.h" // Device Headerfile and Examples Include File
|
||||
|
||||
|
||||
#define BUF_SIZE 1024 // Sample buffer size
|
||||
|
||||
|
||||
|
||||
|
||||
// DMA Defines
|
||||
#define CH1_TOTAL DATA_POINTS_PER_CHANNEL
|
||||
#define CH1_WORDS_PER_BURST ADC_CHANNELS_TO_CONVERT
|
||||
|
||||
|
||||
|
||||
#pragma DATA_SECTION(DMABuf1,"DMARAML4");
|
||||
#pragma DATA_SECTION(DMABuf2,"DMARAML5");
|
||||
|
||||
volatile Uint16 DMABuf1[1024];
|
||||
volatile Uint16 DMABuf2[1024];
|
||||
|
||||
volatile Uint16 *DMADest;
|
||||
volatile Uint16 *DMASource;
|
||||
|
||||
interrupt void local_DINTCH1_ISR(void);
|
||||
|
||||
|
||||
void main(void)
|
||||
{
|
||||
Uint16 i;
|
||||
// Step 1. Initialize System Control:
|
||||
// PLL, WatchDog, enable Peripheral Clocks
|
||||
// This example function is found in the DSP2833x_SysCtrl.c file.
|
||||
InitSysCtrl();
|
||||
|
||||
|
||||
// Step 2. Initialize GPIO:
|
||||
// This example function is found in the DSP2833x_Gpio.c file and
|
||||
// illustrates how to set the GPIO to it's default state.
|
||||
// InitGpio(); // Skipped for this example
|
||||
|
||||
// Step 3. Clear all interrupts and initialize PIE vector table:
|
||||
// Disable CPU interrupts
|
||||
DINT;
|
||||
|
||||
// Initialize the PIE control registers to their default state.
|
||||
// The default state is all PIE interrupts disabled and flags
|
||||
// are cleared.
|
||||
// This function is found in the DSP2833x_PieCtrl.c file.
|
||||
InitPieCtrl();
|
||||
|
||||
// Disable CPU interrupts and clear all CPU interrupt flags:
|
||||
IER = 0x0000;
|
||||
IFR = 0x0000;
|
||||
|
||||
// Initialize the PIE vector table with pointers to the shell Interrupt
|
||||
// Service Routines (ISR).
|
||||
// This will populate the entire table, even if the interrupt
|
||||
// is not used in this example. This is useful for debug purposes.
|
||||
// The shell ISR routines are found in DSP2833x_DefaultIsr.c.
|
||||
// This function is found in DSP2833x_PieVect.c.
|
||||
InitPieVectTable();
|
||||
|
||||
// Interrupts that are used in this example are re-mapped to
|
||||
// ISR functions found within this file.
|
||||
EALLOW; // Allow access to EALLOW protected registers
|
||||
PieVectTable.DINTCH1= &local_DINTCH1_ISR;
|
||||
EDIS; // Disable access to EALLOW protected registers
|
||||
|
||||
IER = M_INT7 ; //Enable INT7 (7.1 DMA Ch1)
|
||||
EnableInterrupts();
|
||||
CpuTimer0Regs.TCR.bit.TSS = 1; //Stop Timer0 for now
|
||||
|
||||
|
||||
//Step 5. User specific code, enable interrupts:
|
||||
// Initialize DMA
|
||||
DMAInitialize();
|
||||
|
||||
// Initialize Tables
|
||||
for (i=0; i<BUF_SIZE; i++)
|
||||
{
|
||||
DMABuf1[i] = 0;
|
||||
DMABuf2[i] = i;
|
||||
}
|
||||
|
||||
|
||||
// Configure DMA Channel
|
||||
DMADest = &DMABuf1[0];
|
||||
DMASource = &DMABuf2[0];
|
||||
DMACH1AddrConfig(DMADest,DMASource);
|
||||
DMACH1BurstConfig(31,2,2); //Will set up to use 32-bit datasize, pointers are based on 16-bit words
|
||||
DMACH1TransferConfig(31,2,2); //so need to increment by 2 to grab the correct location
|
||||
DMACH1WrapConfig(0xFFFF,0,0xFFFF,0);
|
||||
//Use timer0 to start the x-fer.
|
||||
//Since this is a static copy use one shot mode, so only one trigger is needed
|
||||
//Also using 32-bit mode to decrease x-fer time
|
||||
DMACH1ModeConfig(DMA_TINT0,PERINT_ENABLE,ONESHOT_ENABLE,CONT_DISABLE,SYNC_DISABLE,SYNC_SRC,OVRFLOW_DISABLE,THIRTYTWO_BIT,CHINT_END,CHINT_ENABLE);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
StartDMACH1();
|
||||
|
||||
|
||||
//Init the timer 0
|
||||
|
||||
CpuTimer0Regs.TIM.half.LSW = 512; //load low value so we can start the DMA quickly
|
||||
CpuTimer0Regs.TCR.bit.SOFT = 1; //Allow to free run even if halted
|
||||
CpuTimer0Regs.TCR.bit.FREE = 1;
|
||||
CpuTimer0Regs.TCR.bit.TIE = 1; //Enable the timer0 interrupt signal
|
||||
CpuTimer0Regs.TCR.bit.TSS = 0; //restart the timer 0
|
||||
for(;;){}
|
||||
|
||||
}
|
||||
|
||||
// INT7.1
|
||||
interrupt void local_DINTCH1_ISR(void) // DMA Channel 1
|
||||
{
|
||||
|
||||
// To receive more interrupts from this PIE group, acknowledge this interrupt
|
||||
PieCtrlRegs.PIEACK.all = PIEACK_GROUP7;
|
||||
|
||||
// Next two lines for debug only to halt the processor here
|
||||
// Remove after inserting ISR Code
|
||||
asm (" ESTOP0");
|
||||
for(;;);
|
||||
}
|
||||
|
||||
|
||||
|
36
Source/External/v120/DSP2833x_examples/dma_ram_to_ram/Example_2833xDMA_ram_to_ram.gel
vendored
Normal file
36
Source/External/v120/DSP2833x_examples/dma_ram_to_ram/Example_2833xDMA_ram_to_ram.gel
vendored
Normal file
@ -0,0 +1,36 @@
|
||||
/*
|
||||
// TI File $Revision: /main/1 $
|
||||
// Checkin $Date: August 14, 2007 16:28:46 $
|
||||
//###########################################################################
|
||||
//
|
||||
// This .gel file can be used to help load and build the example project.
|
||||
// It should be unloaded from Code Composer Studio before loading another
|
||||
// project.
|
||||
//
|
||||
//###########################################################################
|
||||
// $TI Release: DSP2833x/DSP2823x Header Files V1.20 $
|
||||
// $Release Date: August 1, 2008 $
|
||||
//###########################################################################
|
||||
*/
|
||||
|
||||
menuitem "DSP2833x DMA Ram to Ram Example"
|
||||
|
||||
hotmenu Load_and_Build_Project()
|
||||
{
|
||||
GEL_ProjectLoad("Example_2833xDMA_ram_to_ram.pjt");
|
||||
GEL_ProjectBuild("Example_2833xDMA_ram_to_ram.pjt");
|
||||
Setup_WatchWindow();
|
||||
}
|
||||
|
||||
hotmenu Load_Code()
|
||||
{
|
||||
GEL_Load(".\\debug\\Example_2833xDMA_ram_to_ram.out");
|
||||
Setup_WatchWindow();
|
||||
}
|
||||
|
||||
hotmenu Setup_WatchWindow()
|
||||
{
|
||||
GEL_WatchReset();
|
||||
GEL_WatchAdd("DMABuf1,x");
|
||||
GEL_WatchAdd("DMABuf2,x");
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user