STM32: lze použít vestavěný bootloader nahrát můj kód, ale nic se neděje

A

allanvv

Guest
Udělal jsem tabuli s STM32F103C8T6. Mohu úspěšně použít UART k programu a ověřit on-board flash paměť s stavěný z-do zavaděče. Ale pak, když jsem reset a já bota do flash, nic nefunguje. Můj kód jen zapíná / vypíná GPIO, že jsem monitorování rozsahu. Já si ověřili, že externí hodiny pracuje správně (8MHz). Zdá se, že ve výchozím nastavení používá interní oscilátor, tak jsem se snažil nastavit tak, aby použití externího oscilátoru uncommenting "# define SYSCLK_FREQ_HSE HSE_Value", ale stále se nic neděje na reset. Tady je můj kód:
Code:
 int main (void) {SystemInit (); GPIO_InitTypeDef GPIO_InitStructure, GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init (GPIOA, a GPIO_InitStructure); GPIO_WriteBit (GPIOA, GPIO_Pin_15 , 1); while (1) {GPIO_WriteBit (GPIOA, GPIO_Pin_15, 1); GPIO_WriteBit (GPIOA, GPIO_Pin_15, 0);}}
edit: To je s ramenem gcc 4.5.2. Použil jsem tento toolchain úspěšně na palubě STR7 v minulosti. Také jsem se snažil s toolchain CodeSourcery, ale pořád žádné výsledky.
 
můžete zkusit tohle? RCC_APB2PeriphClockCmd (RCC_APB2Periph_GPIOA, ENABLE); GPIOA-> BSRR = GPIO_Pin_15, GPIOA-> BRR = GPIO_Pin_15;
 
Ukázalo se, že problém byl v linker skriptu a spuštění assembly kódem. Snažil jsem se ty používané v těchto projektech: [url = http://gandalf.arubi.uni-kl.de/avr_projects/arm_projects/index_cortex.html] ARMv7 Cortex M3 příklady [/url] a fungovalo to perfektně.
 
Už jste si vzpomněl nastavit hodiny a hodiny periphirals správně? Mohu doporučit, abyste se podívat na tyto dva blogu o nastavení hodin, pro interní i externí hodiny. [Url = http://blog.tkjelectronics.dk/2010/02/stm32-internal-8mhz-clock-setup-routine/] TKJ Elektronika »STM32 - Vnitřní 8MHz Nastavení hodin Rutinní [/url] [url = http:/ / blog.tkjelectronics.dk/2010/02/stm32-overclocking /] TKJ Elektronika »STM32 - Overclocking [/url] Můžete si také stáhnout můj Šablona projekt, který zahrnuje několik různých nastavení rutin, který umožňuje mnohem snazší začít: [URL = "http://blog.tkjelectronics.dk/wp-content/uploads/STM32_Template_05-12-10.zip"] http://blog.tkjelectronics.dk/wp-content/uploads/STM32_Template_05- 12-10.zip [/URL]
 
Jedna věc - proč si říkají, že taktovací frekvence při běhu z vnitřního oscilátoru je omezen na 36MHz? Můžete nastavit multiplikátor na 16x, a pak to bude běžet na 64MHz. Nemohl jsem najít něco v manuálu, který má jiný maximální frekvence pro vnitřní vs externí oscilátor. Také v zásobování aktuální stránky, jeden z testů co dělají, je pro 64MHz interní oscilátor.
 
Ano, můžete nastavit multiplikátor na 16x, ale my jsme neměli žádné úspěch s tímto - STM32 dostal nestabilní nebo nebyl ani schopen běžet!
 

Welcome to EDABoard.com

Sponsor

Back
Top