Strul med STM32F103
Postat: 6 oktober 2015, 21:30:09
Har för ett projekt där jag behöver större programminne än 32 kB skaffat mig ett par kort med STM32F103RBT6 på. Mycket nytt jämfört med Arduino, AVR och PIC. Korten är av modellen http://www.geeetech.com/arm-cortexm3-st ... p-216.html och schemat ser ut att stämma fast korten är köpta på ebay.
Har laddat hem ST Flash Loader och byglat om BOOT0 så Flash Loader hittar kortet (iaf det ena, det andra tar vi hand om senare). Jag kan läsa ut flashet, radera det och skriva tillbaka den utlästa filen. Verifiering funkar också.
Men om jag laddar ned en bin-fil jag byggt på https://developer.mbed.org så misslyckas Flash Loader efter 3kB.
Programmet jag laddar ned är ett exempel för LED-blink. Visserligen för ett Nucleo F103RB från ST men jag bytte pinne till PB_9 som är kopplat till D1 på mitt kort. Programmet är väldigt kort men givetvis finns ju uppstartskod och koden till DigitalOut nånstans osv...
#include "mbed.h"
DigitalOut myled(PB_9);
int main() {
while(1) {
myled = 1; // LED is ON
wait(0.2); // 200 ms
myled = 0; // LED is OFF
wait(1.0); // 1 sec
}
}
När jag byglar tillbaka BOOT0 så är kortet dött, på det andra som jag inte får kontakt med blinkar D1 och D2 i ett visst mönster vilket det första kortet också gjorde innan jag raderade det.
Något tips på felsökning?
Är inte bin-fil bara rå data som Flash Loader bör skriva utan parsning?
Har laddat hem ST Flash Loader och byglat om BOOT0 så Flash Loader hittar kortet (iaf det ena, det andra tar vi hand om senare). Jag kan läsa ut flashet, radera det och skriva tillbaka den utlästa filen. Verifiering funkar också.
Men om jag laddar ned en bin-fil jag byggt på https://developer.mbed.org så misslyckas Flash Loader efter 3kB.
Programmet jag laddar ned är ett exempel för LED-blink. Visserligen för ett Nucleo F103RB från ST men jag bytte pinne till PB_9 som är kopplat till D1 på mitt kort. Programmet är väldigt kort men givetvis finns ju uppstartskod och koden till DigitalOut nånstans osv...
#include "mbed.h"
DigitalOut myled(PB_9);
int main() {
while(1) {
myled = 1; // LED is ON
wait(0.2); // 200 ms
myled = 0; // LED is OFF
wait(1.0); // 1 sec
}
}
När jag byglar tillbaka BOOT0 så är kortet dött, på det andra som jag inte får kontakt med blinkar D1 och D2 i ett visst mönster vilket det första kortet också gjorde innan jag raderade det.
Något tips på felsökning?
Är inte bin-fil bara rå data som Flash Loader bör skriva utan parsning?