Compare commits
21 commits
Author | SHA1 | Date | |
---|---|---|---|
58c5ea7b5c | |||
6c6f711338 | |||
|
8e777fd66c | ||
af11513865 | |||
6103687205 | |||
|
6673d313e2 | ||
|
3dfd8436df | ||
|
412e28c37d | ||
0b80728265 | |||
|
00ecb4e243 | ||
|
fb9def3d9d | ||
d4cd6a3fab | |||
760d376b1c | |||
2d6fad5e04 | |||
|
15d602a7ac | ||
928ab7b4e6 | |||
d38e9ecee4 | |||
|
b717bc4b46 | ||
|
d1081eb58d | ||
3368286817 | |||
|
79f73b7052 |
14 changed files with 7299 additions and 6 deletions
BIN
GFSSP72/GFSSP72.pdf
Normal file
BIN
GFSSP72/GFSSP72.pdf
Normal file
Binary file not shown.
115
GFSSP72/gassp72.h
Normal file
115
GFSSP72/gassp72.h
Normal file
|
@ -0,0 +1,115 @@
|
||||||
|
/**
|
||||||
|
* Bibliotheque GASSP 2013-02-15
|
||||||
|
*
|
||||||
|
* GPIO - ADC - Sequenceur - System Timer - PWM - 72 MHz
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
// STM32F10X_CL : pour le STM32F107 "Communication Line"
|
||||||
|
// STM32F10X_MD : pour le STM32F103 "Medium Density"
|
||||||
|
|
||||||
|
//#define STM32F10X_MD // 2019 fix for Keil 5.23
|
||||||
|
|
||||||
|
#include "stm32f10x.h"
|
||||||
|
|
||||||
|
// horloge systeme (config statique a 72 MHz pour le STM32F103) ------------
|
||||||
|
void CLOCK_Configure(void);
|
||||||
|
|
||||||
|
// Timers 1, 2, 3, 4 -------------------------------------------------------
|
||||||
|
// la duree entre deux debordements successifs doit etre donnnee en periodes
|
||||||
|
// d'horloge CPU (typiquement 72 MHz)
|
||||||
|
void Timer_1234_Init_ff( TIM_TypeDef *Timer, u32 Duree_ticks );
|
||||||
|
|
||||||
|
// activation d'une fonction de traitement de l'interruption timer (callback)
|
||||||
|
void Active_IT_Debordement_Timer( TIM_TypeDef *Timer, char Prio, void (*IT_function)(void) );
|
||||||
|
|
||||||
|
// bloque le timer
|
||||||
|
#define Bloque_Timer(Timer) Timer->CR1=(Timer->CR1)&~(1<<0)
|
||||||
|
|
||||||
|
// Lance timer
|
||||||
|
#define Run_Timer(Timer) Timer->CR1=(Timer->CR1)|(1<<0)
|
||||||
|
|
||||||
|
// PWM (basee sur un des Timers 1, 2, 3, 4 ---------------------------------
|
||||||
|
// la periode doit etre donnee en periodes d'horloge CPU (typiquement 72 MHz)
|
||||||
|
// la fonction rend la pleine echelle ou resolution, c'est a dire la plage
|
||||||
|
// de valeurs acceptees pour moduler la largeur d'impulsion
|
||||||
|
vu16 PWM_Init_ff( TIM_TypeDef *Timer, char Voie, u32 Periode_ticks );
|
||||||
|
|
||||||
|
// Timer systeme "SysTick" -------------------------------------------------
|
||||||
|
|
||||||
|
// la periode doit etre donnee en periodes d'horloge CPU (typiquement 72 MHz)
|
||||||
|
void Systick_Period_ff( unsigned int Periode_ticks );
|
||||||
|
|
||||||
|
// activation d'une fonction de traitement de l'interruption timer (callback)
|
||||||
|
void Systick_Prio_IT( char Prio, void (*Systick_function)(void) );
|
||||||
|
|
||||||
|
#define SysTick_On ((SysTick->CTRL)=(SysTick->CTRL)|1<<0)
|
||||||
|
#define SysTick_Off ((SysTick->CTRL)=(SysTick->CTRL)& ~(1<<0))
|
||||||
|
#define SysTick_Enable_IT ((SysTick->CTRL)=(SysTick->CTRL)|1<<1)
|
||||||
|
#define SysTick_Disable_IT ((SysTick->CTRL)=(SysTick->CTRL)& ~(1<<1))
|
||||||
|
|
||||||
|
// ADC - DMA ---------------------------------------------------------------
|
||||||
|
// Analog-to-Digital Conversion, Direct Memory Access
|
||||||
|
|
||||||
|
// la duree d'echantillonnage doit etre donnee en periodes d'horloge CPU (typiquement 72 MHz)
|
||||||
|
// la fonction rend la duree totale de conversion (meme unites)
|
||||||
|
u32 Init_TimingADC_ActiveADC_ff( ADC_TypeDef * ADC, u32 Duree_Ech_ticks );
|
||||||
|
|
||||||
|
// choix d'un canal ADC unique
|
||||||
|
void Single_Channel_ADC( ADC_TypeDef * ADC, char Voie_ADC );
|
||||||
|
|
||||||
|
// la periode de repetition des acquisitions doit etre donnee en periodes d'horloge CPU
|
||||||
|
// Les sources de déclenchement possibles :
|
||||||
|
#define TIM1_CC1 0
|
||||||
|
#define TIM1_CC2 1
|
||||||
|
#define TIM1_CC3 2
|
||||||
|
#define TIM2_CC2 3
|
||||||
|
#define TIM4_CC4 5
|
||||||
|
void Init_Conversion_On_Trig_Timer_ff( ADC_TypeDef * ADC, char Source, u32 Periode_ticks );
|
||||||
|
|
||||||
|
// initialisation d'acquisition en mode DMA
|
||||||
|
// Ptr_Table_DMA doit pointer sur un espace memoire suffisant pour le nombre d'ech. demande
|
||||||
|
void Init_ADC1_DMA1( char Circ, vu16 *Ptr_Table_DMA );
|
||||||
|
|
||||||
|
|
||||||
|
// Lance une DMA sur le nombre de points spécifie. Les resultats seront stockes
|
||||||
|
// dans la zone de RAM écrite est indiquée lors de l'appel de la fonction Init_ADC1_DMA1
|
||||||
|
void Start_DMA1( u16 NbEchDMA );
|
||||||
|
|
||||||
|
// arret DMA
|
||||||
|
#define Stop_DMA1 DMA1_Channel1->CCR =(DMA1_Channel1->CCR) &~0x1;
|
||||||
|
|
||||||
|
// fonction d'attente (bloquante)
|
||||||
|
// la duree depend de la periode d'acquisition et du nombre d'echantillons
|
||||||
|
void Wait_On_End_Of_DMA1(void);
|
||||||
|
|
||||||
|
|
||||||
|
// GPIO --------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Sens
|
||||||
|
#define INPUT 'i'
|
||||||
|
#define OUTPUT 'o'
|
||||||
|
|
||||||
|
// Techno pour pin en entrée (INPUT)
|
||||||
|
#define ANALOG 0
|
||||||
|
#define INPUT_FLOATING 1
|
||||||
|
#define INPUT_PULL_DOWN_UP 2
|
||||||
|
|
||||||
|
// Techno pour pin en sortie (OUTPUT)
|
||||||
|
#define OUTPUT_PPULL 0
|
||||||
|
#define OUTPUT_OPDRAIN 1
|
||||||
|
#define ALT_PPULL 2
|
||||||
|
#define ALT_OPDRAIN 3
|
||||||
|
|
||||||
|
// La fonction initialise n'importe quelle broche de port (entrée, sortie, techno....)
|
||||||
|
// Exemple :
|
||||||
|
// Port_IO_Init(GPIOB, 8, OUTPUT, OUTPUT_PPULL);
|
||||||
|
// Place le bit 8 du port B en sortie Push-pull
|
||||||
|
// Renvoie 0 si tout est OK, et 1 s'il y a un problème (plage d'entrée non respectée)
|
||||||
|
char GPIO_Configure(GPIO_TypeDef * Port, int Broche, int Sens, int Techno);
|
||||||
|
|
||||||
|
// Spécifier le numéro de broche (0 à 15)
|
||||||
|
// exemple : Port_IO_Set(GPIOB,8);
|
||||||
|
#define GPIO_Set(GPIO,Broche) GPIO->BSRR=(0x01<<Broche)
|
||||||
|
|
||||||
|
#define GPIO_Clear(GPIO,Broche) GPIO->BRR=(0x01<<Broche)
|
BIN
GFSSP72/gfssp72.lib
Normal file
BIN
GFSSP72/gfssp72.lib
Normal file
Binary file not shown.
374
Project.uvoptx
Normal file
374
Project.uvoptx
Normal file
|
@ -0,0 +1,374 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
|
<ProjectOpt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_optx.xsd">
|
||||||
|
|
||||||
|
<SchemaVersion>1.0</SchemaVersion>
|
||||||
|
|
||||||
|
<Header>### uVision Project, (C) Keil Software</Header>
|
||||||
|
|
||||||
|
<Extensions>
|
||||||
|
<cExt>*.c</cExt>
|
||||||
|
<aExt>*.s*; *.src; *.a*</aExt>
|
||||||
|
<oExt>*.obj; *.o</oExt>
|
||||||
|
<lExt>*.lib</lExt>
|
||||||
|
<tExt>*.txt; *.h; *.inc</tExt>
|
||||||
|
<pExt>*.plm</pExt>
|
||||||
|
<CppX>*.cpp</CppX>
|
||||||
|
<nMigrate>0</nMigrate>
|
||||||
|
</Extensions>
|
||||||
|
|
||||||
|
<DaveTm>
|
||||||
|
<dwLowDateTime>0</dwLowDateTime>
|
||||||
|
<dwHighDateTime>0</dwHighDateTime>
|
||||||
|
</DaveTm>
|
||||||
|
|
||||||
|
<Target>
|
||||||
|
<TargetName>Simu</TargetName>
|
||||||
|
<ToolsetNumber>0x4</ToolsetNumber>
|
||||||
|
<ToolsetName>ARM-ADS</ToolsetName>
|
||||||
|
<TargetOption>
|
||||||
|
<CLKADS>8000000</CLKADS>
|
||||||
|
<OPTTT>
|
||||||
|
<gFlags>1</gFlags>
|
||||||
|
<BeepAtEnd>1</BeepAtEnd>
|
||||||
|
<RunSim>0</RunSim>
|
||||||
|
<RunTarget>1</RunTarget>
|
||||||
|
<RunAbUc>0</RunAbUc>
|
||||||
|
</OPTTT>
|
||||||
|
<OPTHX>
|
||||||
|
<HexSelection>1</HexSelection>
|
||||||
|
<FlashByte>65535</FlashByte>
|
||||||
|
<HexRangeLowAddress>0</HexRangeLowAddress>
|
||||||
|
<HexRangeHighAddress>0</HexRangeHighAddress>
|
||||||
|
<HexOffset>0</HexOffset>
|
||||||
|
</OPTHX>
|
||||||
|
<OPTLEX>
|
||||||
|
<PageWidth>79</PageWidth>
|
||||||
|
<PageLength>66</PageLength>
|
||||||
|
<TabStop>8</TabStop>
|
||||||
|
<ListingPath></ListingPath>
|
||||||
|
</OPTLEX>
|
||||||
|
<ListingPage>
|
||||||
|
<CreateCListing>1</CreateCListing>
|
||||||
|
<CreateAListing>1</CreateAListing>
|
||||||
|
<CreateLListing>1</CreateLListing>
|
||||||
|
<CreateIListing>0</CreateIListing>
|
||||||
|
<AsmCond>1</AsmCond>
|
||||||
|
<AsmSymb>1</AsmSymb>
|
||||||
|
<AsmXref>0</AsmXref>
|
||||||
|
<CCond>1</CCond>
|
||||||
|
<CCode>0</CCode>
|
||||||
|
<CListInc>0</CListInc>
|
||||||
|
<CSymb>0</CSymb>
|
||||||
|
<LinkerCodeListing>0</LinkerCodeListing>
|
||||||
|
</ListingPage>
|
||||||
|
<OPTXL>
|
||||||
|
<LMap>1</LMap>
|
||||||
|
<LComments>1</LComments>
|
||||||
|
<LGenerateSymbols>1</LGenerateSymbols>
|
||||||
|
<LLibSym>1</LLibSym>
|
||||||
|
<LLines>1</LLines>
|
||||||
|
<LLocSym>1</LLocSym>
|
||||||
|
<LPubSym>1</LPubSym>
|
||||||
|
<LXref>0</LXref>
|
||||||
|
<LExpSel>0</LExpSel>
|
||||||
|
</OPTXL>
|
||||||
|
<OPTFL>
|
||||||
|
<tvExp>1</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<IsCurrentTarget>1</IsCurrentTarget>
|
||||||
|
</OPTFL>
|
||||||
|
<CpuCode>18</CpuCode>
|
||||||
|
<DebugOpt>
|
||||||
|
<uSim>1</uSim>
|
||||||
|
<uTrg>0</uTrg>
|
||||||
|
<sLdApp>1</sLdApp>
|
||||||
|
<sGomain>1</sGomain>
|
||||||
|
<sRbreak>1</sRbreak>
|
||||||
|
<sRwatch>1</sRwatch>
|
||||||
|
<sRmem>1</sRmem>
|
||||||
|
<sRfunc>1</sRfunc>
|
||||||
|
<sRbox>1</sRbox>
|
||||||
|
<tLdApp>1</tLdApp>
|
||||||
|
<tGomain>1</tGomain>
|
||||||
|
<tRbreak>1</tRbreak>
|
||||||
|
<tRwatch>1</tRwatch>
|
||||||
|
<tRmem>1</tRmem>
|
||||||
|
<tRfunc>1</tRfunc>
|
||||||
|
<tRbox>1</tRbox>
|
||||||
|
<tRtrace>1</tRtrace>
|
||||||
|
<sRSysVw>1</sRSysVw>
|
||||||
|
<tRSysVw>1</tRSysVw>
|
||||||
|
<sRunDeb>0</sRunDeb>
|
||||||
|
<sLrtime>0</sLrtime>
|
||||||
|
<bEvRecOn>1</bEvRecOn>
|
||||||
|
<bSchkAxf>0</bSchkAxf>
|
||||||
|
<bTchkAxf>0</bTchkAxf>
|
||||||
|
<nTsel>6</nTsel>
|
||||||
|
<sDll></sDll>
|
||||||
|
<sDllPa></sDllPa>
|
||||||
|
<sDlgDll></sDlgDll>
|
||||||
|
<sDlgPa></sDlgPa>
|
||||||
|
<sIfile></sIfile>
|
||||||
|
<tDll></tDll>
|
||||||
|
<tDllPa></tDllPa>
|
||||||
|
<tDlgDll></tDlgDll>
|
||||||
|
<tDlgPa></tDlgPa>
|
||||||
|
<tIfile></tIfile>
|
||||||
|
<pMon>STLink\ST-LINKIII-KEIL_SWO.dll</pMon>
|
||||||
|
</DebugOpt>
|
||||||
|
<TargetDriverDllRegistry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>DLGDARM</Key>
|
||||||
|
<Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(100=-1,-1,-1,-1,0)(110=-1,-1,-1,-1,0)(111=-1,-1,-1,-1,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=-1,-1,-1,-1,0)(121=1013,199,1434,626,0)(122=-1,-1,-1,-1,0)(123=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=-1,-1,-1,-1,0)(131=-1,-1,-1,-1,0)(132=-1,-1,-1,-1,0)(133=1151,0,1745,751,0)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(234=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0)</Name>
|
||||||
|
</SetRegEntry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>ARMRTXEVENTFLAGS</Key>
|
||||||
|
<Name>-L70 -Z18 -C0 -M0 -T1</Name>
|
||||||
|
</SetRegEntry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>DLGTARM</Key>
|
||||||
|
<Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)</Name>
|
||||||
|
</SetRegEntry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>ARMDBGFLAGS</Key>
|
||||||
|
<Name>-T0</Name>
|
||||||
|
</SetRegEntry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>DLGUARM</Key>
|
||||||
|
<Name>(105=-1,-1,-1,-1,0)</Name>
|
||||||
|
</SetRegEntry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>UL2CM3</Key>
|
||||||
|
<Name>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128 -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM))</Name>
|
||||||
|
</SetRegEntry>
|
||||||
|
<SetRegEntry>
|
||||||
|
<Number>0</Number>
|
||||||
|
<Key>ST-LINKIII-KEIL_SWO</Key>
|
||||||
|
<Name>-U066CFF574857847167074929 -O2254 -S0 -C0 -A0 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F10x_128.FLM -FS08000000 -FL020000 -FP0($$Device:STM32F103RB$Flash\STM32F10x_128.FLM)</Name>
|
||||||
|
</SetRegEntry>
|
||||||
|
</TargetDriverDllRegistry>
|
||||||
|
<Breakpoint/>
|
||||||
|
<WatchWindow1>
|
||||||
|
<Ww>
|
||||||
|
<count>0</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>res_dft</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>1</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>res_dft</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>2</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>compteurs</ItemText>
|
||||||
|
</Ww>
|
||||||
|
<Ww>
|
||||||
|
<count>3</count>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<ItemText>scores</ItemText>
|
||||||
|
</Ww>
|
||||||
|
</WatchWindow1>
|
||||||
|
<MemoryWindow1>
|
||||||
|
<Mm>
|
||||||
|
<WinNumber>1</WinNumber>
|
||||||
|
<SubType>10</SubType>
|
||||||
|
<ItemText>0x0A490BB4</ItemText>
|
||||||
|
<AccSizeX>0</AccSizeX>
|
||||||
|
</Mm>
|
||||||
|
</MemoryWindow1>
|
||||||
|
<Tracepoint>
|
||||||
|
<THDelay>0</THDelay>
|
||||||
|
</Tracepoint>
|
||||||
|
<DebugFlag>
|
||||||
|
<trace>0</trace>
|
||||||
|
<periodic>1</periodic>
|
||||||
|
<aLwin>1</aLwin>
|
||||||
|
<aCover>0</aCover>
|
||||||
|
<aSer1>0</aSer1>
|
||||||
|
<aSer2>0</aSer2>
|
||||||
|
<aPa>0</aPa>
|
||||||
|
<viewmode>1</viewmode>
|
||||||
|
<vrSel>0</vrSel>
|
||||||
|
<aSym>0</aSym>
|
||||||
|
<aTbox>0</aTbox>
|
||||||
|
<AscS1>0</AscS1>
|
||||||
|
<AscS2>0</AscS2>
|
||||||
|
<AscS3>0</AscS3>
|
||||||
|
<aSer3>0</aSer3>
|
||||||
|
<eProf>0</eProf>
|
||||||
|
<aLa>1</aLa>
|
||||||
|
<aPa1>0</aPa1>
|
||||||
|
<AscS4>0</AscS4>
|
||||||
|
<aSer4>0</aSer4>
|
||||||
|
<StkLoc>0</StkLoc>
|
||||||
|
<TrcWin>0</TrcWin>
|
||||||
|
<newCpu>0</newCpu>
|
||||||
|
<uProt>0</uProt>
|
||||||
|
</DebugFlag>
|
||||||
|
<LintExecutable></LintExecutable>
|
||||||
|
<LintConfigFile></LintConfigFile>
|
||||||
|
<bLintAuto>0</bLintAuto>
|
||||||
|
<bAutoGenD>0</bAutoGenD>
|
||||||
|
<LntExFlags>0</LntExFlags>
|
||||||
|
<pMisraName></pMisraName>
|
||||||
|
<pszMrule></pszMrule>
|
||||||
|
<pSingCmds></pSingCmds>
|
||||||
|
<pMultCmds></pMultCmds>
|
||||||
|
<pMisraNamep></pMisraNamep>
|
||||||
|
<pszMrulep></pszMrulep>
|
||||||
|
<pSingCmdsp></pSingCmdsp>
|
||||||
|
<pMultCmdsp></pMultCmdsp>
|
||||||
|
<LogicAnalyzers>
|
||||||
|
<Wi>
|
||||||
|
<IntNumber>0</IntNumber>
|
||||||
|
<FirstString>`TIM3_CCR3</FirstString>
|
||||||
|
<SecondString>00800000000000000000000000000000007076400000000000000000000000000000000054494D335F4343523300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000001000000000000000000F03F1100000000000000000000000000000000000000981E0008</SecondString>
|
||||||
|
</Wi>
|
||||||
|
</LogicAnalyzers>
|
||||||
|
<DebugDescription>
|
||||||
|
<Enable>1</Enable>
|
||||||
|
<EnableFlashSeq>0</EnableFlashSeq>
|
||||||
|
<EnableLog>0</EnableLog>
|
||||||
|
<Protocol>2</Protocol>
|
||||||
|
<DbgClock>10000000</DbgClock>
|
||||||
|
</DebugDescription>
|
||||||
|
</TargetOption>
|
||||||
|
</Target>
|
||||||
|
|
||||||
|
<Group>
|
||||||
|
<GroupName>Sources</GroupName>
|
||||||
|
<tvExp>1</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<cbSel>0</cbSel>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>1</GroupNumber>
|
||||||
|
<FileNumber>1</FileNumber>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>.\Src\principal.c</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>principal.c</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>1</GroupNumber>
|
||||||
|
<FileNumber>2</FileNumber>
|
||||||
|
<FileType>2</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>.\Src\gestionSon.s</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>gestionSon.s</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>1</GroupNumber>
|
||||||
|
<FileNumber>3</FileNumber>
|
||||||
|
<FileType>2</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>.\Src\calcul_dft.s</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>calcul_dft.s</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
|
</Group>
|
||||||
|
|
||||||
|
<Group>
|
||||||
|
<GroupName>System</GroupName>
|
||||||
|
<tvExp>1</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<cbSel>0</cbSel>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>2</GroupNumber>
|
||||||
|
<FileNumber>4</FileNumber>
|
||||||
|
<FileType>2</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>.\Systeme\startup-rvds.s</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>startup-rvds.s</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
|
</Group>
|
||||||
|
|
||||||
|
<Group>
|
||||||
|
<GroupName>Driver</GroupName>
|
||||||
|
<tvExp>1</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<cbSel>0</cbSel>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>3</GroupNumber>
|
||||||
|
<FileNumber>5</FileNumber>
|
||||||
|
<FileType>5</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>.\Src\etat.h</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>etat.h</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>3</GroupNumber>
|
||||||
|
<FileNumber>6</FileNumber>
|
||||||
|
<FileType>2</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>.\Src\son.asm</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>son.asm</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>3</GroupNumber>
|
||||||
|
<FileNumber>7</FileNumber>
|
||||||
|
<FileType>4</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>.\GFSSP72\gfssp72.lib</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>gfssp72.lib</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>3</GroupNumber>
|
||||||
|
<FileNumber>8</FileNumber>
|
||||||
|
<FileType>2</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>.\Src\tab_cos_sin.asm</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>tab_cos_sin.asm</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
|
</Group>
|
||||||
|
|
||||||
|
<Group>
|
||||||
|
<GroupName>::CMSIS</GroupName>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<cbSel>0</cbSel>
|
||||||
|
<RteFlg>1</RteFlg>
|
||||||
|
</Group>
|
||||||
|
|
||||||
|
</ProjectOpt>
|
457
Project.uvprojx
Normal file
457
Project.uvprojx
Normal file
|
@ -0,0 +1,457 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
|
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_projx.xsd">
|
||||||
|
|
||||||
|
<SchemaVersion>2.1</SchemaVersion>
|
||||||
|
|
||||||
|
<Header>### uVision Project, (C) Keil Software</Header>
|
||||||
|
|
||||||
|
<Targets>
|
||||||
|
<Target>
|
||||||
|
<TargetName>Simu</TargetName>
|
||||||
|
<ToolsetNumber>0x4</ToolsetNumber>
|
||||||
|
<ToolsetName>ARM-ADS</ToolsetName>
|
||||||
|
<pCCUsed>5060750::V5.06 update 6 (build 750)::ARMCC</pCCUsed>
|
||||||
|
<uAC6>0</uAC6>
|
||||||
|
<TargetOption>
|
||||||
|
<TargetCommonOption>
|
||||||
|
<Device>STM32F103RB</Device>
|
||||||
|
<Vendor>STMicroelectronics</Vendor>
|
||||||
|
<PackID>Keil.STM32F1xx_DFP.2.3.0</PackID>
|
||||||
|
<PackURL>http://www.keil.com/pack/</PackURL>
|
||||||
|
<Cpu>IRAM(0x20000000-0x20004FFF) IROM(0x8000000-0x801FFFF) CLOCK(8000000) CPUTYPE("Cortex-M3")</Cpu>
|
||||||
|
<FlashUtilSpec></FlashUtilSpec>
|
||||||
|
<StartupFile></StartupFile>
|
||||||
|
<FlashDriverDll></FlashDriverDll>
|
||||||
|
<DeviceId></DeviceId>
|
||||||
|
<RegisterFile></RegisterFile>
|
||||||
|
<MemoryEnv></MemoryEnv>
|
||||||
|
<Cmp></Cmp>
|
||||||
|
<Asm></Asm>
|
||||||
|
<Linker></Linker>
|
||||||
|
<OHString></OHString>
|
||||||
|
<InfinionOptionDll></InfinionOptionDll>
|
||||||
|
<SLE66CMisc></SLE66CMisc>
|
||||||
|
<SLE66AMisc></SLE66AMisc>
|
||||||
|
<SLE66LinkerMisc></SLE66LinkerMisc>
|
||||||
|
<SFDFile>$$Device:STM32F103RB$SVD\STM32F103xx.svd</SFDFile>
|
||||||
|
<bCustSvd>0</bCustSvd>
|
||||||
|
<UseEnv>0</UseEnv>
|
||||||
|
<BinPath></BinPath>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
<LibPath></LibPath>
|
||||||
|
<RegisterFilePath></RegisterFilePath>
|
||||||
|
<DBRegisterFilePath></DBRegisterFilePath>
|
||||||
|
<TargetStatus>
|
||||||
|
<Error>0</Error>
|
||||||
|
<ExitCodeStop>0</ExitCodeStop>
|
||||||
|
<ButtonStop>0</ButtonStop>
|
||||||
|
<NotGenerated>0</NotGenerated>
|
||||||
|
<InvalidFlash>1</InvalidFlash>
|
||||||
|
</TargetStatus>
|
||||||
|
<OutputDirectory>.\Obj\</OutputDirectory>
|
||||||
|
<OutputName>CHTI</OutputName>
|
||||||
|
<CreateExecutable>1</CreateExecutable>
|
||||||
|
<CreateLib>0</CreateLib>
|
||||||
|
<CreateHexFile>1</CreateHexFile>
|
||||||
|
<DebugInformation>1</DebugInformation>
|
||||||
|
<BrowseInformation>1</BrowseInformation>
|
||||||
|
<ListingPath></ListingPath>
|
||||||
|
<HexFormatSelection>1</HexFormatSelection>
|
||||||
|
<Merge32K>0</Merge32K>
|
||||||
|
<CreateBatchFile>0</CreateBatchFile>
|
||||||
|
<BeforeCompile>
|
||||||
|
<RunUserProg1>0</RunUserProg1>
|
||||||
|
<RunUserProg2>0</RunUserProg2>
|
||||||
|
<UserProg1Name></UserProg1Name>
|
||||||
|
<UserProg2Name></UserProg2Name>
|
||||||
|
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||||
|
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||||
|
<nStopU1X>0</nStopU1X>
|
||||||
|
<nStopU2X>0</nStopU2X>
|
||||||
|
</BeforeCompile>
|
||||||
|
<BeforeMake>
|
||||||
|
<RunUserProg1>0</RunUserProg1>
|
||||||
|
<RunUserProg2>0</RunUserProg2>
|
||||||
|
<UserProg1Name></UserProg1Name>
|
||||||
|
<UserProg2Name></UserProg2Name>
|
||||||
|
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||||
|
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||||
|
<nStopB1X>0</nStopB1X>
|
||||||
|
<nStopB2X>0</nStopB2X>
|
||||||
|
</BeforeMake>
|
||||||
|
<AfterMake>
|
||||||
|
<RunUserProg1>0</RunUserProg1>
|
||||||
|
<RunUserProg2>0</RunUserProg2>
|
||||||
|
<UserProg1Name></UserProg1Name>
|
||||||
|
<UserProg2Name></UserProg2Name>
|
||||||
|
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||||
|
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||||
|
<nStopA1X>0</nStopA1X>
|
||||||
|
<nStopA2X>0</nStopA2X>
|
||||||
|
</AfterMake>
|
||||||
|
<SelectedForBatchBuild>0</SelectedForBatchBuild>
|
||||||
|
<SVCSIdString></SVCSIdString>
|
||||||
|
</TargetCommonOption>
|
||||||
|
<CommonProperty>
|
||||||
|
<UseCPPCompiler>0</UseCPPCompiler>
|
||||||
|
<RVCTCodeConst>0</RVCTCodeConst>
|
||||||
|
<RVCTZI>0</RVCTZI>
|
||||||
|
<RVCTOtherData>0</RVCTOtherData>
|
||||||
|
<ModuleSelection>0</ModuleSelection>
|
||||||
|
<IncludeInBuild>1</IncludeInBuild>
|
||||||
|
<AlwaysBuild>0</AlwaysBuild>
|
||||||
|
<GenerateAssemblyFile>0</GenerateAssemblyFile>
|
||||||
|
<AssembleAssemblyFile>0</AssembleAssemblyFile>
|
||||||
|
<PublicsOnly>0</PublicsOnly>
|
||||||
|
<StopOnExitCode>3</StopOnExitCode>
|
||||||
|
<CustomArgument></CustomArgument>
|
||||||
|
<IncludeLibraryModules></IncludeLibraryModules>
|
||||||
|
<ComprImg>0</ComprImg>
|
||||||
|
</CommonProperty>
|
||||||
|
<DllOption>
|
||||||
|
<SimDllName>SARMCM3.DLL</SimDllName>
|
||||||
|
<SimDllArguments>-REMAP</SimDllArguments>
|
||||||
|
<SimDlgDll>DARMSTM.DLL</SimDlgDll>
|
||||||
|
<SimDlgDllArguments>-pSTM32F103RB</SimDlgDllArguments>
|
||||||
|
<TargetDllName>SARMCM3.DLL</TargetDllName>
|
||||||
|
<TargetDllArguments></TargetDllArguments>
|
||||||
|
<TargetDlgDll>TCM.DLL</TargetDlgDll>
|
||||||
|
<TargetDlgDllArguments>-pCM3</TargetDlgDllArguments>
|
||||||
|
</DllOption>
|
||||||
|
<DebugOption>
|
||||||
|
<OPTHX>
|
||||||
|
<HexSelection>1</HexSelection>
|
||||||
|
<HexRangeLowAddress>0</HexRangeLowAddress>
|
||||||
|
<HexRangeHighAddress>0</HexRangeHighAddress>
|
||||||
|
<HexOffset>0</HexOffset>
|
||||||
|
<Oh166RecLen>16</Oh166RecLen>
|
||||||
|
</OPTHX>
|
||||||
|
</DebugOption>
|
||||||
|
<Utilities>
|
||||||
|
<Flash1>
|
||||||
|
<UseTargetDll>1</UseTargetDll>
|
||||||
|
<UseExternalTool>0</UseExternalTool>
|
||||||
|
<RunIndependent>0</RunIndependent>
|
||||||
|
<UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging>
|
||||||
|
<Capability>1</Capability>
|
||||||
|
<DriverSelection>4100</DriverSelection>
|
||||||
|
</Flash1>
|
||||||
|
<bUseTDR>1</bUseTDR>
|
||||||
|
<Flash2>STLink\ST-LINKIII-KEIL_SWO.dll</Flash2>
|
||||||
|
<Flash3>"" ()</Flash3>
|
||||||
|
<Flash4></Flash4>
|
||||||
|
<pFcarmOut></pFcarmOut>
|
||||||
|
<pFcarmGrp></pFcarmGrp>
|
||||||
|
<pFcArmRoot></pFcArmRoot>
|
||||||
|
<FcArmLst>0</FcArmLst>
|
||||||
|
</Utilities>
|
||||||
|
<TargetArmAds>
|
||||||
|
<ArmAdsMisc>
|
||||||
|
<GenerateListings>0</GenerateListings>
|
||||||
|
<asHll>1</asHll>
|
||||||
|
<asAsm>1</asAsm>
|
||||||
|
<asMacX>1</asMacX>
|
||||||
|
<asSyms>1</asSyms>
|
||||||
|
<asFals>1</asFals>
|
||||||
|
<asDbgD>1</asDbgD>
|
||||||
|
<asForm>1</asForm>
|
||||||
|
<ldLst>0</ldLst>
|
||||||
|
<ldmm>1</ldmm>
|
||||||
|
<ldXref>1</ldXref>
|
||||||
|
<BigEnd>0</BigEnd>
|
||||||
|
<AdsALst>1</AdsALst>
|
||||||
|
<AdsACrf>1</AdsACrf>
|
||||||
|
<AdsANop>0</AdsANop>
|
||||||
|
<AdsANot>0</AdsANot>
|
||||||
|
<AdsLLst>1</AdsLLst>
|
||||||
|
<AdsLmap>1</AdsLmap>
|
||||||
|
<AdsLcgr>1</AdsLcgr>
|
||||||
|
<AdsLsym>1</AdsLsym>
|
||||||
|
<AdsLszi>1</AdsLszi>
|
||||||
|
<AdsLtoi>1</AdsLtoi>
|
||||||
|
<AdsLsun>1</AdsLsun>
|
||||||
|
<AdsLven>1</AdsLven>
|
||||||
|
<AdsLsxf>1</AdsLsxf>
|
||||||
|
<RvctClst>0</RvctClst>
|
||||||
|
<GenPPlst>0</GenPPlst>
|
||||||
|
<AdsCpuType>"Cortex-M3"</AdsCpuType>
|
||||||
|
<RvctDeviceName></RvctDeviceName>
|
||||||
|
<mOS>0</mOS>
|
||||||
|
<uocRom>0</uocRom>
|
||||||
|
<uocRam>0</uocRam>
|
||||||
|
<hadIROM>1</hadIROM>
|
||||||
|
<hadIRAM>1</hadIRAM>
|
||||||
|
<hadXRAM>0</hadXRAM>
|
||||||
|
<uocXRam>0</uocXRam>
|
||||||
|
<RvdsVP>0</RvdsVP>
|
||||||
|
<RvdsMve>0</RvdsMve>
|
||||||
|
<hadIRAM2>0</hadIRAM2>
|
||||||
|
<hadIROM2>0</hadIROM2>
|
||||||
|
<StupSel>8</StupSel>
|
||||||
|
<useUlib>1</useUlib>
|
||||||
|
<EndSel>0</EndSel>
|
||||||
|
<uLtcg>0</uLtcg>
|
||||||
|
<nSecure>0</nSecure>
|
||||||
|
<RoSelD>3</RoSelD>
|
||||||
|
<RwSelD>3</RwSelD>
|
||||||
|
<CodeSel>0</CodeSel>
|
||||||
|
<OptFeed>0</OptFeed>
|
||||||
|
<NoZi1>0</NoZi1>
|
||||||
|
<NoZi2>0</NoZi2>
|
||||||
|
<NoZi3>0</NoZi3>
|
||||||
|
<NoZi4>0</NoZi4>
|
||||||
|
<NoZi5>0</NoZi5>
|
||||||
|
<Ro1Chk>0</Ro1Chk>
|
||||||
|
<Ro2Chk>0</Ro2Chk>
|
||||||
|
<Ro3Chk>0</Ro3Chk>
|
||||||
|
<Ir1Chk>1</Ir1Chk>
|
||||||
|
<Ir2Chk>0</Ir2Chk>
|
||||||
|
<Ra1Chk>0</Ra1Chk>
|
||||||
|
<Ra2Chk>0</Ra2Chk>
|
||||||
|
<Ra3Chk>0</Ra3Chk>
|
||||||
|
<Im1Chk>1</Im1Chk>
|
||||||
|
<Im2Chk>0</Im2Chk>
|
||||||
|
<OnChipMemories>
|
||||||
|
<Ocm1>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocm1>
|
||||||
|
<Ocm2>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocm2>
|
||||||
|
<Ocm3>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocm3>
|
||||||
|
<Ocm4>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocm4>
|
||||||
|
<Ocm5>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocm5>
|
||||||
|
<Ocm6>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocm6>
|
||||||
|
<IRAM>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x20000000</StartAddress>
|
||||||
|
<Size>0x5000</Size>
|
||||||
|
</IRAM>
|
||||||
|
<IROM>
|
||||||
|
<Type>1</Type>
|
||||||
|
<StartAddress>0x8000000</StartAddress>
|
||||||
|
<Size>0x20000</Size>
|
||||||
|
</IROM>
|
||||||
|
<XRAM>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</XRAM>
|
||||||
|
<OCR_RVCT1>
|
||||||
|
<Type>1</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</OCR_RVCT1>
|
||||||
|
<OCR_RVCT2>
|
||||||
|
<Type>1</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</OCR_RVCT2>
|
||||||
|
<OCR_RVCT3>
|
||||||
|
<Type>1</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</OCR_RVCT3>
|
||||||
|
<OCR_RVCT4>
|
||||||
|
<Type>1</Type>
|
||||||
|
<StartAddress>0x8000000</StartAddress>
|
||||||
|
<Size>0x20000</Size>
|
||||||
|
</OCR_RVCT4>
|
||||||
|
<OCR_RVCT5>
|
||||||
|
<Type>1</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</OCR_RVCT5>
|
||||||
|
<OCR_RVCT6>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</OCR_RVCT6>
|
||||||
|
<OCR_RVCT7>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</OCR_RVCT7>
|
||||||
|
<OCR_RVCT8>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</OCR_RVCT8>
|
||||||
|
<OCR_RVCT9>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x20000000</StartAddress>
|
||||||
|
<Size>0x5000</Size>
|
||||||
|
</OCR_RVCT9>
|
||||||
|
<OCR_RVCT10>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</OCR_RVCT10>
|
||||||
|
</OnChipMemories>
|
||||||
|
<RvctStartVector></RvctStartVector>
|
||||||
|
</ArmAdsMisc>
|
||||||
|
<Cads>
|
||||||
|
<interw>1</interw>
|
||||||
|
<Optim>1</Optim>
|
||||||
|
<oTime>0</oTime>
|
||||||
|
<SplitLS>0</SplitLS>
|
||||||
|
<OneElfS>1</OneElfS>
|
||||||
|
<Strict>0</Strict>
|
||||||
|
<EnumInt>0</EnumInt>
|
||||||
|
<PlainCh>0</PlainCh>
|
||||||
|
<Ropi>0</Ropi>
|
||||||
|
<Rwpi>0</Rwpi>
|
||||||
|
<wLevel>2</wLevel>
|
||||||
|
<uThumb>0</uThumb>
|
||||||
|
<uSurpInc>0</uSurpInc>
|
||||||
|
<uC99>0</uC99>
|
||||||
|
<uGnu>0</uGnu>
|
||||||
|
<useXO>0</useXO>
|
||||||
|
<v6Lang>1</v6Lang>
|
||||||
|
<v6LangP>1</v6LangP>
|
||||||
|
<vShortEn>1</vShortEn>
|
||||||
|
<vShortWch>1</vShortWch>
|
||||||
|
<v6Lto>0</v6Lto>
|
||||||
|
<v6WtE>0</v6WtE>
|
||||||
|
<v6Rtti>0</v6Rtti>
|
||||||
|
<VariousControls>
|
||||||
|
<MiscControls>--C99</MiscControls>
|
||||||
|
<Define>STM32F103xB,USE_FULL_LL_DRIVER</Define>
|
||||||
|
<Undefine></Undefine>
|
||||||
|
<IncludePath>./GFSSP72</IncludePath>
|
||||||
|
</VariousControls>
|
||||||
|
</Cads>
|
||||||
|
<Aads>
|
||||||
|
<interw>1</interw>
|
||||||
|
<Ropi>0</Ropi>
|
||||||
|
<Rwpi>0</Rwpi>
|
||||||
|
<thumb>0</thumb>
|
||||||
|
<SplitLS>0</SplitLS>
|
||||||
|
<SwStkChk>0</SwStkChk>
|
||||||
|
<NoWarn>0</NoWarn>
|
||||||
|
<uSurpInc>0</uSurpInc>
|
||||||
|
<useXO>0</useXO>
|
||||||
|
<uClangAs>0</uClangAs>
|
||||||
|
<VariousControls>
|
||||||
|
<MiscControls></MiscControls>
|
||||||
|
<Define></Define>
|
||||||
|
<Undefine></Undefine>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
</VariousControls>
|
||||||
|
</Aads>
|
||||||
|
<LDads>
|
||||||
|
<umfTarg>1</umfTarg>
|
||||||
|
<Ropi>0</Ropi>
|
||||||
|
<Rwpi>0</Rwpi>
|
||||||
|
<noStLib>0</noStLib>
|
||||||
|
<RepFail>1</RepFail>
|
||||||
|
<useFile>0</useFile>
|
||||||
|
<TextAddressRange>0x08000000</TextAddressRange>
|
||||||
|
<DataAddressRange>0x20000000</DataAddressRange>
|
||||||
|
<pXoBase></pXoBase>
|
||||||
|
<ScatterFile></ScatterFile>
|
||||||
|
<IncludeLibs></IncludeLibs>
|
||||||
|
<IncludeLibsPath></IncludeLibsPath>
|
||||||
|
<Misc></Misc>
|
||||||
|
<LinkerInputFile></LinkerInputFile>
|
||||||
|
<DisabledWarnings></DisabledWarnings>
|
||||||
|
</LDads>
|
||||||
|
</TargetArmAds>
|
||||||
|
</TargetOption>
|
||||||
|
<Groups>
|
||||||
|
<Group>
|
||||||
|
<GroupName>Sources</GroupName>
|
||||||
|
<Files>
|
||||||
|
<File>
|
||||||
|
<FileName>principal.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>.\Src\principal.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>gestionSon.s</FileName>
|
||||||
|
<FileType>2</FileType>
|
||||||
|
<FilePath>.\Src\gestionSon.s</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>calcul_dft.s</FileName>
|
||||||
|
<FileType>2</FileType>
|
||||||
|
<FilePath>.\Src\calcul_dft.s</FilePath>
|
||||||
|
</File>
|
||||||
|
</Files>
|
||||||
|
</Group>
|
||||||
|
<Group>
|
||||||
|
<GroupName>System</GroupName>
|
||||||
|
<Files>
|
||||||
|
<File>
|
||||||
|
<FileName>startup-rvds.s</FileName>
|
||||||
|
<FileType>2</FileType>
|
||||||
|
<FilePath>.\Systeme\startup-rvds.s</FilePath>
|
||||||
|
</File>
|
||||||
|
</Files>
|
||||||
|
</Group>
|
||||||
|
<Group>
|
||||||
|
<GroupName>Driver</GroupName>
|
||||||
|
<Files>
|
||||||
|
<File>
|
||||||
|
<FileName>etat.h</FileName>
|
||||||
|
<FileType>5</FileType>
|
||||||
|
<FilePath>.\Src\etat.h</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>son.asm</FileName>
|
||||||
|
<FileType>2</FileType>
|
||||||
|
<FilePath>.\Src\son.asm</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>gfssp72.lib</FileName>
|
||||||
|
<FileType>4</FileType>
|
||||||
|
<FilePath>.\GFSSP72\gfssp72.lib</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>tab_cos_sin.asm</FileName>
|
||||||
|
<FileType>2</FileType>
|
||||||
|
<FilePath>.\Src\tab_cos_sin.asm</FilePath>
|
||||||
|
</File>
|
||||||
|
</Files>
|
||||||
|
</Group>
|
||||||
|
<Group>
|
||||||
|
<GroupName>::CMSIS</GroupName>
|
||||||
|
</Group>
|
||||||
|
</Groups>
|
||||||
|
</Target>
|
||||||
|
</Targets>
|
||||||
|
|
||||||
|
<RTE>
|
||||||
|
<apis/>
|
||||||
|
<components>
|
||||||
|
<component Cclass="CMSIS" Cgroup="CORE" Cvendor="ARM" Cversion="4.3.0" condition="CMSIS Core">
|
||||||
|
<package name="CMSIS" schemaVersion="1.3" url="http://www.keil.com/pack/" vendor="ARM" version="4.5.0"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="Simu"/>
|
||||||
|
</targetInfos>
|
||||||
|
</component>
|
||||||
|
</components>
|
||||||
|
<files/>
|
||||||
|
</RTE>
|
||||||
|
|
||||||
|
</Project>
|
32
README.md
32
README.md
|
@ -4,12 +4,32 @@ Binôme : Cavailles Kévin / Dumaz Clément
|
||||||
|
|
||||||
Classe : 3_MIC_C
|
Classe : 3_MIC_C
|
||||||
|
|
||||||
Objectif 1 : Réalisé
|
Objectif 4 Projet Final :
|
||||||
|
|
||||||
|
-Afin de visualiser le bon fonctionnement de la DFT en mode débogage, il est recommandé de mettre 2 points d’arrêt dans le fichier Src/calcul_dft.s. Un à la ligne 29 et un à la ligne 60. 3 clicks sur “Run” (F5), en mode débogage, correspondront à 1 DFT complète. Les 2 premiers “Run” permettront de visualiser la partie réelle puis la partie imaginaire dans R0. Le 3ème “Run” permettra de visualiser le résultat de la DFT aussi dans R0.
|
||||||
|
|
||||||
Objectif 2 : Réalisé
|
|
||||||
|
-Afin de visualiser le bon fonctionnement de la gestion du son en mode débogage, il est recommandé de mettre 1 point d’arrêt dans le fichier Src/gestionSon.s, à ligne 19. Pour visualiser le son émis, il faut lancer le “logic analyzer” : En mode débogage, cliquez sur “View” -> “Analysis Windows” -> “Logic Analyser”.
|
||||||
|
Une fois lancé, pour visualiser le signal “TIM3_CCR3, cliquez sur “Setup” en haut à gauche du logic analyzer -> “Current Logic Analyzer Signals” -> Cliquez sur “New” (Insert) -> Tapez “TIM3_CCR3” -> Entrée -> Fermez le Setup.
|
||||||
|
Vous devriez pouvoir à présent visualiser le signal lors du “Run”. Vous pouvez ajuster la fenêtre du logic analyzer pour visualiser tout le signal en mettant en pause l’exécution et en cliquant sur “All” dans la rubrique “Zoom” du logic analyzer.
|
||||||
|
Dans ce cas où l'émission du son est liée au scoring, il ne devrait plus y avoir d'émission entre 3.5 et 4.5 sec (dépendant de la fréquence du processeur) et vous devriez distinguer le même motif se répétant 15 fois (en faisant un zoom -> all).
|
||||||
|
Cliquez 1 fois sur “Run” (F5) afin que le programme s’arrête au point d’arrêt. En bas à droite de l’éditeur, il doit y avoir un chronomètre se présentant sous la forme “t1: x.xxx sec”.
|
||||||
|
Click droit sur ce chronomètre -> “Reset Stop Watch(t1)”. Cliquez sur “Run” (F5) 1 fois, le chronomètre devrait afficher “t1 : 0.00009100 sec”.
|
||||||
|
|
||||||
Objectif 3 : Réalisé
|
|
||||||
|
-Afin de visualiser le bon fonctionnement du système de score, il est recommandé de ne mettre aucun point d’arrêt et d’observer la variable “scores” en mode débogage.
|
||||||
|
Pour ce faire :
|
||||||
|
mode débogage -> Src/principal.c ligne 26 click droit sur scores -> Add ‘scores[taille]’ to … -> Watch 1.
|
||||||
|
“scores[6]” devrait apparaître dans Watch 1. Retirez “[6]” afin de pouvoir visualiser le tableau en entier.
|
||||||
|
Cliquez sur “+” directement à droite de “scores”.
|
||||||
|
Cliquez sur “Run” (F5), vous devriez voir le tableau de score se remplir peu à peu (ou non) en fonction du signal choisi.
|
||||||
|
|
||||||
|
-En l’état (avec 0x33), les scores obtenus après avoir lancé le programme pendant une dizaine de secondes doivent être les suivants :
|
||||||
|
|
||||||
|
* J1 (scores[0]) : 1
|
||||||
|
* J2 (scores[1]) : 2
|
||||||
|
* J3 (scores[2]) : 3
|
||||||
|
* J4 (scores[3]) : 4
|
||||||
|
* J5 (scores[4]) : 5
|
||||||
|
* J6 (scores[5]) : 0
|
||||||
|
|
||||||
Objectif 4 : Réalisé
|
|
||||||
|
|
||||||
Tous les objectifs doivent pouvoir être compilés sans ajouter de fichier.
|
|
||||||
|
|
94
Src/appli.c
Normal file
94
Src/appli.c
Normal file
|
@ -0,0 +1,94 @@
|
||||||
|
/* programme pour experimenter le decoupage en bandes sur fichier WAVE */
|
||||||
|
/* */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdarg.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <math.h>
|
||||||
|
|
||||||
|
#include "wav_head.h"
|
||||||
|
|
||||||
|
|
||||||
|
void usage()
|
||||||
|
{
|
||||||
|
fprintf( stderr, "\nUsage : wav2asm source.wav dest.s\n\n");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main( int argc, char ** argv )
|
||||||
|
{
|
||||||
|
int shand; wavpars s;
|
||||||
|
char snam[256];
|
||||||
|
char dnam[256];
|
||||||
|
FILE * dfil;
|
||||||
|
|
||||||
|
if ( argc != 3 ) usage();
|
||||||
|
|
||||||
|
sprintf( snam, "%s", argv[1] );
|
||||||
|
sprintf( dnam, "%s", argv[2] );
|
||||||
|
|
||||||
|
printf("ouverture %s en lecture\n", snam );
|
||||||
|
shand = open( snam, O_RDONLY | O_BINARY );
|
||||||
|
if ( shand == -1 ) gasp("not found");
|
||||||
|
|
||||||
|
WAVreadHeader( &s, shand );
|
||||||
|
if (
|
||||||
|
( s.chan != 1 ) ||
|
||||||
|
( s.resol != 16 )
|
||||||
|
)
|
||||||
|
gasp("programme seulement pour fichiers mono 16 bits");
|
||||||
|
printf("%d echantillons par canal, duree %gs\n", (int)s.wavsize, (double)s.wavsize / (double)s.freq );
|
||||||
|
|
||||||
|
printf("ouverture %s en ecriture\n", dnam );
|
||||||
|
dfil = fopen( dnam, "w" );
|
||||||
|
if ( dfil == NULL ) gasp("pb ouverture pour ecrire");
|
||||||
|
|
||||||
|
fprintf( dfil, "\tAREA DonneeSon, CODE, READONLY\n");
|
||||||
|
fprintf( dfil, "\texport LongueurSon\n");
|
||||||
|
fprintf( dfil, "\texport PeriodeSonMicroSec\n");
|
||||||
|
fprintf( dfil, "\texport Son\n");
|
||||||
|
|
||||||
|
fprintf( dfil, "LongueurSon\tDCD\t%lu\n", s.wavsize );
|
||||||
|
fprintf( dfil, "PeriodeSonMicroSec\tDCD\t%d\n", (int)( floor( 1000000.0/(double)s.freq + 0.5 ) ) );
|
||||||
|
|
||||||
|
fprintf( dfil, "Son ");
|
||||||
|
|
||||||
|
#define FRAMLEN 512
|
||||||
|
|
||||||
|
unsigned char sbuf[FRAMLEN]; // source
|
||||||
|
int sind; // index courant dans sbuf[]
|
||||||
|
int rdcont;
|
||||||
|
int sbufcont; // contenu de sbuf[] */
|
||||||
|
long qbytes;
|
||||||
|
int bpsam;
|
||||||
|
short int val16;
|
||||||
|
|
||||||
|
bpsam = s.chan * ((s.resol)>>3);
|
||||||
|
qbytes = s.wavsize * bpsam;
|
||||||
|
|
||||||
|
while ( qbytes > 0L ) /* qbytes = nombre de bytes restant a traiter */
|
||||||
|
{
|
||||||
|
if ( qbytes < (long)FRAMLEN )
|
||||||
|
rdcont = (int)qbytes;
|
||||||
|
else rdcont = FRAMLEN;
|
||||||
|
sbufcont = read( shand, sbuf, rdcont );
|
||||||
|
if ( sbufcont < rdcont )
|
||||||
|
gasp("fin inattendue fichier source %d vs %d", sbufcont, rdcont );
|
||||||
|
qbytes -= (long)rdcont;
|
||||||
|
// ici on a sbufcont bytes dans sbuf, prets a traiter
|
||||||
|
for ( sind = 0; sind < sbufcont; sind += 2 )
|
||||||
|
{
|
||||||
|
val16 = ( sbuf[sind+1] << 8 ) + sbuf[sind];
|
||||||
|
fprintf( dfil, "\tdcw\t%d\n", (int)val16 );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fprintf( dfil, "\tend\n");
|
||||||
|
fclose( dfil );
|
||||||
|
close( shand );
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
64
Src/calcul_dft.s
Normal file
64
Src/calcul_dft.s
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
;ce programme est pour l'assembleur RealView (Keil)
|
||||||
|
thumb
|
||||||
|
area moncode, code, readonly
|
||||||
|
export calcul_dft
|
||||||
|
import TabCos
|
||||||
|
import TabSin
|
||||||
|
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
calcul_dft proc
|
||||||
|
push {lr}
|
||||||
|
|
||||||
|
push {r0,r1,r4,r5}
|
||||||
|
|
||||||
|
ldr r2, =TabCos
|
||||||
|
bl calcul_partie_dft ;recuperation Re(k) dans r0
|
||||||
|
|
||||||
|
smull r4, r5, r0, r0 ;Re(k)² dans r4, r5
|
||||||
|
pop {r0,r1} ;recupereration de TabSig et k dans r0,r1
|
||||||
|
|
||||||
|
|
||||||
|
ldr r2, =TabSin
|
||||||
|
bl calcul_partie_dft ;mise de -Im(k) dans r0
|
||||||
|
|
||||||
|
smlal r4, r5, r0, r0 ;Re²+(-Im(k))²
|
||||||
|
|
||||||
|
mov r0, r5 ;recuperation des bits de poids fort de M2(k)
|
||||||
|
pop {lr, r4,r5}
|
||||||
|
bx lr
|
||||||
|
endp
|
||||||
|
|
||||||
|
calcul_partie_dft proc
|
||||||
|
push {r4-r7}
|
||||||
|
|
||||||
|
|
||||||
|
mov r4, r0 ;chargement de TabSig dans r4
|
||||||
|
mov r5, r2 ;chargement de TabCos/TabSin dans r5
|
||||||
|
mov r6, r1 ;chargement de k dans r6
|
||||||
|
mov r7, #0 ;ik dans r7
|
||||||
|
|
||||||
|
mov r3, #0 ;i=0 dans r3
|
||||||
|
mov r0, #0 ;resultat de la somme dans r0
|
||||||
|
|
||||||
|
boucle ldrh r1, [r4, r3, LSL #1] ;chargement de x(i)
|
||||||
|
ldrsh r2, [r5, r7, LSL #1] ;chargement de cos(ik..), ldrs(!)h tres important, ne fonctionne pas sinon
|
||||||
|
|
||||||
|
mla r0, r1, r2, r0 ;multiplication + ajout au resultat de x(i)cos(ik..)
|
||||||
|
|
||||||
|
add r7, r7, r6 ;mise a jour de ik
|
||||||
|
and r7, r7, #63 ;modulo de ik par 64
|
||||||
|
|
||||||
|
add r3, #1 ;incrementation de i
|
||||||
|
cmp r3, #64 ;test de i
|
||||||
|
bne boucle
|
||||||
|
beq sortie
|
||||||
|
|
||||||
|
sortie
|
||||||
|
|
||||||
|
pop {r4-r7}
|
||||||
|
bx lr
|
||||||
|
endp
|
||||||
|
|
||||||
|
end
|
16
Src/etat.h
Normal file
16
Src/etat.h
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
typedef struct {
|
||||||
|
int position; // 0
|
||||||
|
int taille; // 4
|
||||||
|
void * son; // 8
|
||||||
|
int resolution; // 12
|
||||||
|
int periode_ticks; // 16
|
||||||
|
} type_etat;
|
||||||
|
|
||||||
|
/*
|
||||||
|
E_POS equ 0
|
||||||
|
E_TAI equ 4
|
||||||
|
E_SON equ 8
|
||||||
|
E_RES equ 12
|
||||||
|
E_PER equ 16
|
||||||
|
end
|
||||||
|
*/
|
48
Src/gestionSon.s
Normal file
48
Src/gestionSon.s
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
; ce programme est pour l'assembleur RealView (Keil)
|
||||||
|
thumb
|
||||||
|
area moncode, code, readonly
|
||||||
|
export timer_callback
|
||||||
|
extern etat
|
||||||
|
;
|
||||||
|
E_POS equ 0
|
||||||
|
E_TAI equ 4
|
||||||
|
E_SON equ 8
|
||||||
|
E_RES equ 12
|
||||||
|
E_PER equ 16
|
||||||
|
|
||||||
|
COMPOSANTE_CONTINUE equ 32768
|
||||||
|
|
||||||
|
TIM3_CCR3 equ 0x4000043C ; adresse registre PWM
|
||||||
|
|
||||||
|
timer_callback proc
|
||||||
|
|
||||||
|
push{r4}
|
||||||
|
|
||||||
|
ldr r1, =etat ;Chargement de la structure etat
|
||||||
|
ldr r2, [r1, #E_POS] ;Récupération de la position actuelle
|
||||||
|
|
||||||
|
ldr r3, [r1,#E_TAI] ;Récupération de la taille du fichier de son
|
||||||
|
cmp r2, r3 ;Si position >= taille
|
||||||
|
bge silence ;On a lu tous les échantillons et on termine la procédure
|
||||||
|
ldr r4, [r1, #E_RES] ;Sinon, on charge la résolution,
|
||||||
|
ldr r3, [r1, #E_SON] ;Le tableau de son, puis l'échantillon
|
||||||
|
ldrsh r3, [r3, r2,lsl #1]
|
||||||
|
|
||||||
|
|
||||||
|
add r3, r3, #COMPOSANTE_CONTINUE ;On ajoute la composante continue
|
||||||
|
mul r3, r3, r4 ;On multiplie par la résolution
|
||||||
|
lsr r3, #16 ;Puis on divise par 2^16
|
||||||
|
|
||||||
|
ldr r4, =TIM3_CCR3 ;On stocke ensuite le résultat dans le TIM3_CCR3 de 32 bits
|
||||||
|
str r3, [r4]
|
||||||
|
|
||||||
|
add r2,#1 ;On incrémente ensuite la position pour l'échantillon suivant
|
||||||
|
str r2,[r1, #E_POS]
|
||||||
|
|
||||||
|
silence
|
||||||
|
|
||||||
|
pop{r4}
|
||||||
|
bx lr
|
||||||
|
endp
|
||||||
|
end
|
||||||
|
|
107
Src/principal.c
Normal file
107
Src/principal.c
Normal file
|
@ -0,0 +1,107 @@
|
||||||
|
#include "gassp72.h"
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <time.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "etat.h"
|
||||||
|
|
||||||
|
#define TAILLE 6
|
||||||
|
#define periode_tick_pwm 360 // (360000 ticks équivaut à 5ms)
|
||||||
|
#define SYSTICK_PER 360000 // (360000 ticks équivaut à 5ms)
|
||||||
|
#define M2TIR 985988
|
||||||
|
|
||||||
|
extern short Son[];
|
||||||
|
extern void timer_callback(void);
|
||||||
|
extern int LongueurSon;
|
||||||
|
extern int PeriodeSonMicroSec;
|
||||||
|
|
||||||
|
|
||||||
|
extern short TabSig[];
|
||||||
|
|
||||||
|
extern int calcul_carre(int);
|
||||||
|
extern int calcul_dft(unsigned short *, int);
|
||||||
|
|
||||||
|
int res_dft = 0;
|
||||||
|
unsigned short dma_buf[64];
|
||||||
|
int compteurs[TAILLE];
|
||||||
|
int scores[TAILLE];
|
||||||
|
int k_values[] = {17,18,19,20,23,24};
|
||||||
|
|
||||||
|
type_etat etat;
|
||||||
|
|
||||||
|
|
||||||
|
void checkCounter(void){
|
||||||
|
for(int i=0; i<TAILLE; i++) {
|
||||||
|
if(compteurs[i] >= 13){
|
||||||
|
compteurs[i]=0;
|
||||||
|
scores[i]++;
|
||||||
|
etat.position = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sys_callback(void){
|
||||||
|
// Démarrage DMA pour 64 points
|
||||||
|
Start_DMA1(64);
|
||||||
|
Wait_On_End_Of_DMA1();
|
||||||
|
Stop_DMA1;
|
||||||
|
|
||||||
|
for(int i=0; i<TAILLE; i++){
|
||||||
|
res_dft = calcul_dft(dma_buf, k_values[i]);
|
||||||
|
if(res_dft > M2TIR){
|
||||||
|
compteurs[i]++;
|
||||||
|
}else{
|
||||||
|
compteurs[i] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
checkCounter();
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
|
||||||
|
// activation de la PLL qui multiplie la fréquence du quartz par 9
|
||||||
|
CLOCK_Configure();
|
||||||
|
|
||||||
|
// config port PB0 pour être utilisé par TIM3-CH3
|
||||||
|
GPIO_Configure(GPIOB, 0, OUTPUT, ALT_PPULL);
|
||||||
|
// config TIM3-CH3 en mode PWM
|
||||||
|
etat.resolution = PWM_Init_ff( TIM3, 3, periode_tick_pwm);
|
||||||
|
|
||||||
|
etat.taille = LongueurSon;
|
||||||
|
etat.periode_ticks = PeriodeSonMicroSec*72;
|
||||||
|
etat.son = Son;
|
||||||
|
etat.position = 0;
|
||||||
|
|
||||||
|
// initialisation du timer 4
|
||||||
|
// Periode_en_Tck doit fournir la durée entre interruptions,
|
||||||
|
// exprimée en périodes Tck de l'horloge principale du STM32 (72 MHz)
|
||||||
|
Timer_1234_Init_ff( TIM4, etat.periode_ticks);
|
||||||
|
// enregistrement de la fonction de traitement de l'interruption timer
|
||||||
|
// ici le 2 est la priorité, timer_callback est l'adresse de cette fonction, a créér en asm,
|
||||||
|
// cette fonction doit être conforme à l'AAPCS
|
||||||
|
Active_IT_Debordement_Timer( TIM4, 2, timer_callback );
|
||||||
|
// lancement du timer
|
||||||
|
Run_Timer( TIM4 );
|
||||||
|
|
||||||
|
|
||||||
|
// activation ADC, sampling time 1us
|
||||||
|
Init_TimingADC_ActiveADC_ff( ADC1, 0x33 );
|
||||||
|
Single_Channel_ADC( ADC1, 2 );
|
||||||
|
// Déclenchement ADC par timer2, periode (72MHz/320kHz)ticks
|
||||||
|
Init_Conversion_On_Trig_Timer_ff( ADC1, TIM2_CC2, 225 );
|
||||||
|
// Config DMA pour utilisation du buffer dma_buf (a créér)
|
||||||
|
Init_ADC1_DMA1( 0, dma_buf );
|
||||||
|
|
||||||
|
// Config Timer, période exprimée en périodes horloge CPU (72 MHz)
|
||||||
|
Systick_Period_ff( SYSTICK_PER );
|
||||||
|
// enregistrement de la fonction de traitement de l'interruption timer
|
||||||
|
// ici le 3 est la priorité, sys_callback est l'adresse de cette fonction, a créér en C
|
||||||
|
Systick_Prio_IT( 3, sys_callback );
|
||||||
|
SysTick_On;
|
||||||
|
SysTick_Enable_IT;
|
||||||
|
|
||||||
|
while(1){
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
5527
Src/son.asm
Normal file
5527
Src/son.asm
Normal file
File diff suppressed because it is too large
Load diff
136
Src/tab_cos_sin.asm
Normal file
136
Src/tab_cos_sin.asm
Normal file
|
@ -0,0 +1,136 @@
|
||||||
|
AREA Trigo, DATA, READONLY
|
||||||
|
export TabSin
|
||||||
|
export TabCos
|
||||||
|
|
||||||
|
TabCos
|
||||||
|
DCW 32767 ; 0 0x7fff 0.99997
|
||||||
|
DCW 32610 ; 1 0x7f62 0.99518
|
||||||
|
DCW 32138 ; 2 0x7d8a 0.98077
|
||||||
|
DCW 31357 ; 3 0x7a7d 0.95694
|
||||||
|
DCW 30274 ; 4 0x7642 0.92389
|
||||||
|
DCW 28899 ; 5 0x70e3 0.88193
|
||||||
|
DCW 27246 ; 6 0x6a6e 0.83148
|
||||||
|
DCW 25330 ; 7 0x62f2 0.77301
|
||||||
|
DCW 23170 ; 8 0x5a82 0.70709
|
||||||
|
DCW 20788 ; 9 0x5134 0.63440
|
||||||
|
DCW 18205 ; 10 0x471d 0.55557
|
||||||
|
DCW 15447 ; 11 0x3c57 0.47141
|
||||||
|
DCW 12540 ; 12 0x30fc 0.38269
|
||||||
|
DCW 9512 ; 13 0x2528 0.29028
|
||||||
|
DCW 6393 ; 14 0x18f9 0.19510
|
||||||
|
DCW 3212 ; 15 0x0c8c 0.09802
|
||||||
|
DCW 0 ; 16 0x0000 0.00000
|
||||||
|
DCW -3212 ; 17 0xf374 -0.09802
|
||||||
|
DCW -6393 ; 18 0xe707 -0.19510
|
||||||
|
DCW -9512 ; 19 0xdad8 -0.29028
|
||||||
|
DCW -12540 ; 20 0xcf04 -0.38269
|
||||||
|
DCW -15447 ; 21 0xc3a9 -0.47141
|
||||||
|
DCW -18205 ; 22 0xb8e3 -0.55557
|
||||||
|
DCW -20788 ; 23 0xaecc -0.63440
|
||||||
|
DCW -23170 ; 24 0xa57e -0.70709
|
||||||
|
DCW -25330 ; 25 0x9d0e -0.77301
|
||||||
|
DCW -27246 ; 26 0x9592 -0.83148
|
||||||
|
DCW -28899 ; 27 0x8f1d -0.88193
|
||||||
|
DCW -30274 ; 28 0x89be -0.92389
|
||||||
|
DCW -31357 ; 29 0x8583 -0.95694
|
||||||
|
DCW -32138 ; 30 0x8276 -0.98077
|
||||||
|
DCW -32610 ; 31 0x809e -0.99518
|
||||||
|
DCW -32768 ; 32 0x8000 -1.00000
|
||||||
|
DCW -32610 ; 33 0x809e -0.99518
|
||||||
|
DCW -32138 ; 34 0x8276 -0.98077
|
||||||
|
DCW -31357 ; 35 0x8583 -0.95694
|
||||||
|
DCW -30274 ; 36 0x89be -0.92389
|
||||||
|
DCW -28899 ; 37 0x8f1d -0.88193
|
||||||
|
DCW -27246 ; 38 0x9592 -0.83148
|
||||||
|
DCW -25330 ; 39 0x9d0e -0.77301
|
||||||
|
DCW -23170 ; 40 0xa57e -0.70709
|
||||||
|
DCW -20788 ; 41 0xaecc -0.63440
|
||||||
|
DCW -18205 ; 42 0xb8e3 -0.55557
|
||||||
|
DCW -15447 ; 43 0xc3a9 -0.47141
|
||||||
|
DCW -12540 ; 44 0xcf04 -0.38269
|
||||||
|
DCW -9512 ; 45 0xdad8 -0.29028
|
||||||
|
DCW -6393 ; 46 0xe707 -0.19510
|
||||||
|
DCW -3212 ; 47 0xf374 -0.09802
|
||||||
|
DCW 0 ; 48 0x0000 0.00000
|
||||||
|
DCW 3212 ; 49 0x0c8c 0.09802
|
||||||
|
DCW 6393 ; 50 0x18f9 0.19510
|
||||||
|
DCW 9512 ; 51 0x2528 0.29028
|
||||||
|
DCW 12540 ; 52 0x30fc 0.38269
|
||||||
|
DCW 15447 ; 53 0x3c57 0.47141
|
||||||
|
DCW 18205 ; 54 0x471d 0.55557
|
||||||
|
DCW 20788 ; 55 0x5134 0.63440
|
||||||
|
DCW 23170 ; 56 0x5a82 0.70709
|
||||||
|
DCW 25330 ; 57 0x62f2 0.77301
|
||||||
|
DCW 27246 ; 58 0x6a6e 0.83148
|
||||||
|
DCW 28899 ; 59 0x70e3 0.88193
|
||||||
|
DCW 30274 ; 60 0x7642 0.92389
|
||||||
|
DCW 31357 ; 61 0x7a7d 0.95694
|
||||||
|
DCW 32138 ; 62 0x7d8a 0.98077
|
||||||
|
DCW 32610 ; 63 0x7f62 0.99518
|
||||||
|
TabSin
|
||||||
|
DCW 0 ; 0 0x0000 0.00000
|
||||||
|
DCW 3212 ; 1 0x0c8c 0.09802
|
||||||
|
DCW 6393 ; 2 0x18f9 0.19510
|
||||||
|
DCW 9512 ; 3 0x2528 0.29028
|
||||||
|
DCW 12540 ; 4 0x30fc 0.38269
|
||||||
|
DCW 15447 ; 5 0x3c57 0.47141
|
||||||
|
DCW 18205 ; 6 0x471d 0.55557
|
||||||
|
DCW 20788 ; 7 0x5134 0.63440
|
||||||
|
DCW 23170 ; 8 0x5a82 0.70709
|
||||||
|
DCW 25330 ; 9 0x62f2 0.77301
|
||||||
|
DCW 27246 ; 10 0x6a6e 0.83148
|
||||||
|
DCW 28899 ; 11 0x70e3 0.88193
|
||||||
|
DCW 30274 ; 12 0x7642 0.92389
|
||||||
|
DCW 31357 ; 13 0x7a7d 0.95694
|
||||||
|
DCW 32138 ; 14 0x7d8a 0.98077
|
||||||
|
DCW 32610 ; 15 0x7f62 0.99518
|
||||||
|
DCW 32767 ; 16 0x7fff 0.99997
|
||||||
|
DCW 32610 ; 17 0x7f62 0.99518
|
||||||
|
DCW 32138 ; 18 0x7d8a 0.98077
|
||||||
|
DCW 31357 ; 19 0x7a7d 0.95694
|
||||||
|
DCW 30274 ; 20 0x7642 0.92389
|
||||||
|
DCW 28899 ; 21 0x70e3 0.88193
|
||||||
|
DCW 27246 ; 22 0x6a6e 0.83148
|
||||||
|
DCW 25330 ; 23 0x62f2 0.77301
|
||||||
|
DCW 23170 ; 24 0x5a82 0.70709
|
||||||
|
DCW 20788 ; 25 0x5134 0.63440
|
||||||
|
DCW 18205 ; 26 0x471d 0.55557
|
||||||
|
DCW 15447 ; 27 0x3c57 0.47141
|
||||||
|
DCW 12540 ; 28 0x30fc 0.38269
|
||||||
|
DCW 9512 ; 29 0x2528 0.29028
|
||||||
|
DCW 6393 ; 30 0x18f9 0.19510
|
||||||
|
DCW 3212 ; 31 0x0c8c 0.09802
|
||||||
|
DCW 0 ; 32 0x0000 0.00000
|
||||||
|
DCW -3212 ; 33 0xf374 -0.09802
|
||||||
|
DCW -6393 ; 34 0xe707 -0.19510
|
||||||
|
DCW -9512 ; 35 0xdad8 -0.29028
|
||||||
|
DCW -12540 ; 36 0xcf04 -0.38269
|
||||||
|
DCW -15447 ; 37 0xc3a9 -0.47141
|
||||||
|
DCW -18205 ; 38 0xb8e3 -0.55557
|
||||||
|
DCW -20788 ; 39 0xaecc -0.63440
|
||||||
|
DCW -23170 ; 40 0xa57e -0.70709
|
||||||
|
DCW -25330 ; 41 0x9d0e -0.77301
|
||||||
|
DCW -27246 ; 42 0x9592 -0.83148
|
||||||
|
DCW -28899 ; 43 0x8f1d -0.88193
|
||||||
|
DCW -30274 ; 44 0x89be -0.92389
|
||||||
|
DCW -31357 ; 45 0x8583 -0.95694
|
||||||
|
DCW -32138 ; 46 0x8276 -0.98077
|
||||||
|
DCW -32610 ; 47 0x809e -0.99518
|
||||||
|
DCW -32768 ; 48 0x8000 -1.00000
|
||||||
|
DCW -32610 ; 49 0x809e -0.99518
|
||||||
|
DCW -32138 ; 50 0x8276 -0.98077
|
||||||
|
DCW -31357 ; 51 0x8583 -0.95694
|
||||||
|
DCW -30274 ; 52 0x89be -0.92389
|
||||||
|
DCW -28899 ; 53 0x8f1d -0.88193
|
||||||
|
DCW -27246 ; 54 0x9592 -0.83148
|
||||||
|
DCW -25330 ; 55 0x9d0e -0.77301
|
||||||
|
DCW -23170 ; 56 0xa57e -0.70709
|
||||||
|
DCW -20788 ; 57 0xaecc -0.63440
|
||||||
|
DCW -18205 ; 58 0xb8e3 -0.55557
|
||||||
|
DCW -15447 ; 59 0xc3a9 -0.47141
|
||||||
|
DCW -12540 ; 60 0xcf04 -0.38269
|
||||||
|
DCW -9512 ; 61 0xdad8 -0.29028
|
||||||
|
DCW -6393 ; 62 0xe707 -0.19510
|
||||||
|
DCW -3212 ; 63 0xf374 -0.09802
|
||||||
|
|
||||||
|
END
|
335
Systeme/startup-rvds.s
Normal file
335
Systeme/startup-rvds.s
Normal file
|
@ -0,0 +1,335 @@
|
||||||
|
;******************** (C) COPYRIGHT 2011 STMicroelectronics ********************
|
||||||
|
;* File Name : startup_stm32f10x_md.s
|
||||||
|
;* Author : MCD Application Team
|
||||||
|
;* Version : V3.5.0
|
||||||
|
;* Date : 11-March-2011
|
||||||
|
;* Description : STM32F10x Medium Density Devices vector table for MDK-ARM
|
||||||
|
;* toolchain.
|
||||||
|
;* This module performs:
|
||||||
|
;* - Set the initial SP
|
||||||
|
;* - Set the initial PC == Reset_Handler
|
||||||
|
;* - Set the vector table entries with the exceptions ISR address
|
||||||
|
;* - Configure the clock system
|
||||||
|
;* - Branches to __main in the C library (which eventually
|
||||||
|
;* calls main()).
|
||||||
|
;* After Reset the CortexM3 processor is in Thread mode,
|
||||||
|
;* priority is Privileged, and the Stack is set to Main.
|
||||||
|
;* <<< Use Configuration Wizard in Context Menu >>>
|
||||||
|
;*******************************************************************************
|
||||||
|
; THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
|
||||||
|
; WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
|
||||||
|
; AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
|
||||||
|
; INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
|
||||||
|
; CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
|
||||||
|
; INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
|
||||||
|
;*******************************************************************************
|
||||||
|
|
||||||
|
; Amount of memory (in bytes) allocated for Stack
|
||||||
|
; Tailor this value to your application needs
|
||||||
|
; <h> Stack Configuration
|
||||||
|
; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
|
||||||
|
; </h>
|
||||||
|
|
||||||
|
Stack_Size EQU 0x00000400
|
||||||
|
|
||||||
|
AREA STACK, NOINIT, READWRITE, ALIGN=3
|
||||||
|
Stack_Mem SPACE Stack_Size
|
||||||
|
__initial_sp
|
||||||
|
|
||||||
|
|
||||||
|
; <h> Heap Configuration
|
||||||
|
; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
|
||||||
|
; </h>
|
||||||
|
|
||||||
|
Heap_Size EQU 0x00000200
|
||||||
|
|
||||||
|
AREA HEAP, NOINIT, READWRITE, ALIGN=3
|
||||||
|
__heap_base
|
||||||
|
Heap_Mem SPACE Heap_Size
|
||||||
|
__heap_limit
|
||||||
|
|
||||||
|
PRESERVE8
|
||||||
|
THUMB
|
||||||
|
|
||||||
|
|
||||||
|
; Vector Table Mapped to Address 0 at Reset
|
||||||
|
AREA RESET, DATA, READONLY
|
||||||
|
EXPORT __Vectors
|
||||||
|
EXPORT __Vectors_End
|
||||||
|
EXPORT __Vectors_Size
|
||||||
|
|
||||||
|
__Vectors DCD __initial_sp ; Top of Stack
|
||||||
|
DCD Reset_Handler ; Reset Handler
|
||||||
|
DCD NMI_Handler ; NMI Handler
|
||||||
|
DCD HardFault_Handler ; Hard Fault Handler
|
||||||
|
DCD MemManage_Handler ; MPU Fault Handler
|
||||||
|
DCD BusFault_Handler ; Bus Fault Handler
|
||||||
|
DCD UsageFault_Handler ; Usage Fault Handler
|
||||||
|
DCD 0 ; Reserved
|
||||||
|
DCD 0 ; Reserved
|
||||||
|
DCD 0 ; Reserved
|
||||||
|
DCD 0 ; Reserved
|
||||||
|
DCD SVC_Handler ; SVCall Handler
|
||||||
|
DCD DebugMon_Handler ; Debug Monitor Handler
|
||||||
|
DCD 0 ; Reserved
|
||||||
|
DCD PendSV_Handler ; PendSV Handler
|
||||||
|
DCD SysTick_Handler ; SysTick Handler
|
||||||
|
|
||||||
|
; External Interrupts
|
||||||
|
DCD WWDG_IRQHandler ; Window Watchdog
|
||||||
|
DCD PVD_IRQHandler ; PVD through EXTI Line detect
|
||||||
|
DCD TAMPER_IRQHandler ; Tamper
|
||||||
|
DCD RTC_IRQHandler ; RTC
|
||||||
|
DCD FLASH_IRQHandler ; Flash
|
||||||
|
DCD RCC_IRQHandler ; RCC
|
||||||
|
DCD EXTI0_IRQHandler ; EXTI Line 0
|
||||||
|
DCD EXTI1_IRQHandler ; EXTI Line 1
|
||||||
|
DCD EXTI2_IRQHandler ; EXTI Line 2
|
||||||
|
DCD EXTI3_IRQHandler ; EXTI Line 3
|
||||||
|
DCD EXTI4_IRQHandler ; EXTI Line 4
|
||||||
|
DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1
|
||||||
|
DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2
|
||||||
|
DCD DMA1_Channel3_IRQHandler ; DMA1 Channel 3
|
||||||
|
DCD DMA1_Channel4_IRQHandler ; DMA1 Channel 4
|
||||||
|
DCD DMA1_Channel5_IRQHandler ; DMA1 Channel 5
|
||||||
|
DCD DMA1_Channel6_IRQHandler ; DMA1 Channel 6
|
||||||
|
DCD DMA1_Channel7_IRQHandler ; DMA1 Channel 7
|
||||||
|
DCD ADC1_2_IRQHandler ; ADC1_2
|
||||||
|
DCD USB_HP_CAN1_TX_IRQHandler ; USB High Priority or CAN1 TX
|
||||||
|
DCD USB_LP_CAN1_RX0_IRQHandler ; USB Low Priority or CAN1 RX0
|
||||||
|
DCD CAN1_RX1_IRQHandler ; CAN1 RX1
|
||||||
|
DCD CAN1_SCE_IRQHandler ; CAN1 SCE
|
||||||
|
DCD EXTI9_5_IRQHandler ; EXTI Line 9..5
|
||||||
|
DCD TIM1_BRK_IRQHandler ; TIM1 Break
|
||||||
|
DCD TIM1_UP_IRQHandler ; TIM1 Update
|
||||||
|
DCD TIM1_TRG_COM_IRQHandler ; TIM1 Trigger and Commutation
|
||||||
|
DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare
|
||||||
|
DCD TIM2_IRQHandler ; TIM2
|
||||||
|
DCD TIM3_IRQHandler ; TIM3
|
||||||
|
DCD TIM4_IRQHandler ; TIM4
|
||||||
|
DCD I2C1_EV_IRQHandler ; I2C1 Event
|
||||||
|
DCD I2C1_ER_IRQHandler ; I2C1 Error
|
||||||
|
DCD I2C2_EV_IRQHandler ; I2C2 Event
|
||||||
|
DCD I2C2_ER_IRQHandler ; I2C2 Error
|
||||||
|
DCD SPI1_IRQHandler ; SPI1
|
||||||
|
DCD SPI2_IRQHandler ; SPI2
|
||||||
|
DCD USART1_IRQHandler ; USART1
|
||||||
|
DCD USART2_IRQHandler ; USART2
|
||||||
|
DCD USART3_IRQHandler ; USART3
|
||||||
|
DCD EXTI15_10_IRQHandler ; EXTI Line 15..10
|
||||||
|
DCD RTCAlarm_IRQHandler ; RTC Alarm through EXTI Line
|
||||||
|
DCD USBWakeUp_IRQHandler ; USB Wakeup from suspend
|
||||||
|
__Vectors_End
|
||||||
|
|
||||||
|
__Vectors_Size EQU __Vectors_End - __Vectors
|
||||||
|
|
||||||
|
AREA |.text|, CODE, READONLY
|
||||||
|
|
||||||
|
; Reset handler
|
||||||
|
Reset_Handler PROC
|
||||||
|
EXPORT Reset_Handler [WEAK]
|
||||||
|
IMPORT __main
|
||||||
|
|
||||||
|
LDR R0, =SystemInit
|
||||||
|
BLX R0
|
||||||
|
|
||||||
|
;
|
||||||
|
; Enable UsageFault, MemFault and Busfault interrupts
|
||||||
|
;
|
||||||
|
_SHCSR EQU 0xE000ED24 ; SHCSR is located at address 0xE000ED24
|
||||||
|
LDR.W R0, =_SHCSR
|
||||||
|
LDR R1, [R0] ; Read CPACR
|
||||||
|
ORR R1, R1, #(0x7 << 16) ; Set bits 16,17,18 to enable usagefault, busfault, memfault interrupts
|
||||||
|
STR R1, [R0] ; Write back the modified value to the CPACR
|
||||||
|
DSB ; Wait for store to complete
|
||||||
|
|
||||||
|
;
|
||||||
|
; Set priority grouping (PRIGROUP) in AIRCR to 3 (16 levels for group priority and 0 for subpriority)
|
||||||
|
;
|
||||||
|
_AIRCR EQU 0xE000ED0C
|
||||||
|
_AIRCR_VAL EQU 0x05FA0300
|
||||||
|
LDR.W R0, =_AIRCR
|
||||||
|
LDR.W R1, =_AIRCR_VAL
|
||||||
|
STR R1,[R0]
|
||||||
|
|
||||||
|
;
|
||||||
|
; Finaly, jump to main function (void main (void))
|
||||||
|
;
|
||||||
|
LDR R0, =__main
|
||||||
|
BX R0
|
||||||
|
ENDP
|
||||||
|
|
||||||
|
SystemInit PROC
|
||||||
|
EXPORT SystemInit [WEAK]
|
||||||
|
BX LR
|
||||||
|
ENDP
|
||||||
|
|
||||||
|
; Dummy Exception Handlers (infinite loops which can be modified)
|
||||||
|
|
||||||
|
NMI_Handler PROC
|
||||||
|
EXPORT NMI_Handler [WEAK]
|
||||||
|
B .
|
||||||
|
ENDP
|
||||||
|
HardFault_Handler\
|
||||||
|
PROC
|
||||||
|
EXPORT HardFault_Handler [WEAK]
|
||||||
|
B .
|
||||||
|
ENDP
|
||||||
|
MemManage_Handler\
|
||||||
|
PROC
|
||||||
|
EXPORT MemManage_Handler [WEAK]
|
||||||
|
B .
|
||||||
|
ENDP
|
||||||
|
BusFault_Handler\
|
||||||
|
PROC
|
||||||
|
EXPORT BusFault_Handler [WEAK]
|
||||||
|
B .
|
||||||
|
ENDP
|
||||||
|
UsageFault_Handler\
|
||||||
|
PROC
|
||||||
|
EXPORT UsageFault_Handler [WEAK]
|
||||||
|
B .
|
||||||
|
ENDP
|
||||||
|
SVC_Handler PROC
|
||||||
|
EXPORT SVC_Handler [WEAK]
|
||||||
|
B .
|
||||||
|
ENDP
|
||||||
|
DebugMon_Handler\
|
||||||
|
PROC
|
||||||
|
EXPORT DebugMon_Handler [WEAK]
|
||||||
|
B .
|
||||||
|
ENDP
|
||||||
|
PendSV_Handler PROC
|
||||||
|
EXPORT PendSV_Handler [WEAK]
|
||||||
|
B .
|
||||||
|
ENDP
|
||||||
|
SysTick_Handler PROC
|
||||||
|
EXPORT SysTick_Handler [WEAK]
|
||||||
|
B .
|
||||||
|
ENDP
|
||||||
|
|
||||||
|
Default_Handler PROC
|
||||||
|
|
||||||
|
EXPORT WWDG_IRQHandler [WEAK]
|
||||||
|
EXPORT PVD_IRQHandler [WEAK]
|
||||||
|
EXPORT TAMPER_IRQHandler [WEAK]
|
||||||
|
EXPORT RTC_IRQHandler [WEAK]
|
||||||
|
EXPORT FLASH_IRQHandler [WEAK]
|
||||||
|
EXPORT RCC_IRQHandler [WEAK]
|
||||||
|
EXPORT EXTI0_IRQHandler [WEAK]
|
||||||
|
EXPORT EXTI1_IRQHandler [WEAK]
|
||||||
|
EXPORT EXTI2_IRQHandler [WEAK]
|
||||||
|
EXPORT EXTI3_IRQHandler [WEAK]
|
||||||
|
EXPORT EXTI4_IRQHandler [WEAK]
|
||||||
|
EXPORT DMA1_Channel1_IRQHandler [WEAK]
|
||||||
|
EXPORT DMA1_Channel2_IRQHandler [WEAK]
|
||||||
|
EXPORT DMA1_Channel3_IRQHandler [WEAK]
|
||||||
|
EXPORT DMA1_Channel4_IRQHandler [WEAK]
|
||||||
|
EXPORT DMA1_Channel5_IRQHandler [WEAK]
|
||||||
|
EXPORT DMA1_Channel6_IRQHandler [WEAK]
|
||||||
|
EXPORT DMA1_Channel7_IRQHandler [WEAK]
|
||||||
|
EXPORT ADC1_2_IRQHandler [WEAK]
|
||||||
|
EXPORT USB_HP_CAN1_TX_IRQHandler [WEAK]
|
||||||
|
EXPORT USB_LP_CAN1_RX0_IRQHandler [WEAK]
|
||||||
|
EXPORT CAN1_RX1_IRQHandler [WEAK]
|
||||||
|
EXPORT CAN1_SCE_IRQHandler [WEAK]
|
||||||
|
EXPORT EXTI9_5_IRQHandler [WEAK]
|
||||||
|
EXPORT TIM1_BRK_IRQHandler [WEAK]
|
||||||
|
EXPORT TIM1_UP_IRQHandler [WEAK]
|
||||||
|
EXPORT TIM1_TRG_COM_IRQHandler [WEAK]
|
||||||
|
EXPORT TIM1_CC_IRQHandler [WEAK]
|
||||||
|
EXPORT TIM2_IRQHandler [WEAK]
|
||||||
|
EXPORT TIM3_IRQHandler [WEAK]
|
||||||
|
EXPORT TIM4_IRQHandler [WEAK]
|
||||||
|
EXPORT I2C1_EV_IRQHandler [WEAK]
|
||||||
|
EXPORT I2C1_ER_IRQHandler [WEAK]
|
||||||
|
EXPORT I2C2_EV_IRQHandler [WEAK]
|
||||||
|
EXPORT I2C2_ER_IRQHandler [WEAK]
|
||||||
|
EXPORT SPI1_IRQHandler [WEAK]
|
||||||
|
EXPORT SPI2_IRQHandler [WEAK]
|
||||||
|
EXPORT USART1_IRQHandler [WEAK]
|
||||||
|
EXPORT USART2_IRQHandler [WEAK]
|
||||||
|
EXPORT USART3_IRQHandler [WEAK]
|
||||||
|
EXPORT EXTI15_10_IRQHandler [WEAK]
|
||||||
|
EXPORT RTCAlarm_IRQHandler [WEAK]
|
||||||
|
EXPORT USBWakeUp_IRQHandler [WEAK]
|
||||||
|
|
||||||
|
WWDG_IRQHandler
|
||||||
|
PVD_IRQHandler
|
||||||
|
TAMPER_IRQHandler
|
||||||
|
RTC_IRQHandler
|
||||||
|
FLASH_IRQHandler
|
||||||
|
RCC_IRQHandler
|
||||||
|
EXTI0_IRQHandler
|
||||||
|
EXTI1_IRQHandler
|
||||||
|
EXTI2_IRQHandler
|
||||||
|
EXTI3_IRQHandler
|
||||||
|
EXTI4_IRQHandler
|
||||||
|
DMA1_Channel1_IRQHandler
|
||||||
|
DMA1_Channel2_IRQHandler
|
||||||
|
DMA1_Channel3_IRQHandler
|
||||||
|
DMA1_Channel4_IRQHandler
|
||||||
|
DMA1_Channel5_IRQHandler
|
||||||
|
DMA1_Channel6_IRQHandler
|
||||||
|
DMA1_Channel7_IRQHandler
|
||||||
|
ADC1_2_IRQHandler
|
||||||
|
USB_HP_CAN1_TX_IRQHandler
|
||||||
|
USB_LP_CAN1_RX0_IRQHandler
|
||||||
|
CAN1_RX1_IRQHandler
|
||||||
|
CAN1_SCE_IRQHandler
|
||||||
|
EXTI9_5_IRQHandler
|
||||||
|
TIM1_BRK_IRQHandler
|
||||||
|
TIM1_UP_IRQHandler
|
||||||
|
TIM1_TRG_COM_IRQHandler
|
||||||
|
TIM1_CC_IRQHandler
|
||||||
|
TIM2_IRQHandler
|
||||||
|
TIM3_IRQHandler
|
||||||
|
TIM4_IRQHandler
|
||||||
|
I2C1_EV_IRQHandler
|
||||||
|
I2C1_ER_IRQHandler
|
||||||
|
I2C2_EV_IRQHandler
|
||||||
|
I2C2_ER_IRQHandler
|
||||||
|
SPI1_IRQHandler
|
||||||
|
SPI2_IRQHandler
|
||||||
|
USART1_IRQHandler
|
||||||
|
USART2_IRQHandler
|
||||||
|
USART3_IRQHandler
|
||||||
|
EXTI15_10_IRQHandler
|
||||||
|
RTCAlarm_IRQHandler
|
||||||
|
USBWakeUp_IRQHandler
|
||||||
|
|
||||||
|
B .
|
||||||
|
|
||||||
|
ENDP
|
||||||
|
|
||||||
|
ALIGN
|
||||||
|
|
||||||
|
;*******************************************************************************
|
||||||
|
; User Stack and Heap initialization
|
||||||
|
;*******************************************************************************
|
||||||
|
IF :DEF:__MICROLIB
|
||||||
|
|
||||||
|
EXPORT __initial_sp
|
||||||
|
EXPORT __heap_base
|
||||||
|
EXPORT __heap_limit
|
||||||
|
|
||||||
|
ELSE
|
||||||
|
|
||||||
|
IMPORT __use_two_region_memory
|
||||||
|
EXPORT __user_initial_stackheap
|
||||||
|
|
||||||
|
__user_initial_stackheap
|
||||||
|
|
||||||
|
LDR R0, = Heap_Mem
|
||||||
|
LDR R1, =(Stack_Mem + Stack_Size)
|
||||||
|
LDR R2, = (Heap_Mem + Heap_Size)
|
||||||
|
LDR R3, = Stack_Mem
|
||||||
|
BX LR
|
||||||
|
|
||||||
|
ALIGN
|
||||||
|
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
;******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE*****
|
Loading…
Reference in a new issue