• Welcome to LusoRobótica - Robótica em Português.
 

Algum tem experiencia com CortexM3 e afins?

Started by KammutierSpule, 18 de August de 2010, 03:24

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

StarRider

Quote from: metRo_ on 25 de March de 2011, 10:54
não há LPC com encoder input?! afinal há!
Existe o keil para linux?
Tens conseguido mandar vir samples dos stm32?!

Boas,

Sim, mas os LPC com encoder interface somente nas series topo de gama  LPC17xx ... com packages LQFP80 e LQFP100.

Infelizmente o Keil só existe para Windows, mas tens o DS-5 aqui: http://www.arm.com/products/tools/software-tools/ds-5/index.php

Samples da ST para particulares é para esquecer, somente para empresas ... e mesmo assim têm que ser empresas já com alguma dimensão ... dizem eles.

Abraços,
PA

metRo_

#31
blink no lcpxpresso done :D vou agora passar para o STM32, estou a ver que para linux não vai ser tão fácil então.
Os projectos têm muitos ficheiros etc, etc. Enquanto não aprender a sério tudo o que fizer com aquilo vai ser martelado :D

E confirmo que só mesmo nos topo de gama :s

StarRider

Quote from: metRo_ on 25 de March de 2011, 20:07
blink no lcpxpresso done :D vou agora passar para o STM32, estou a ver que para linux não vai ser tão fácil então.
Os projectos têm muitos ficheiros etc, etc. Enquanto não aprender a sério tudo o que fizer com aquilo vai ser martelado :D

E confirmo que só mesmo nos topo de gama :s

Estás a usar o Keil ?

Abraços,
PA

senso

Tendo em conta que está em linux e que é LPC diria que usou o CodeRed, tens de mostrar ai o código se nao te importares que a minha LPC nem nunca foi ligada ao usb do pc...
Avr fanboy

metRo_

"Os projectos têm muitos ficheiros etc, etc. Enquanto não aprender a sério tudo o que fizer com aquilo vai ser martelado " Eu quando disse isto estava a falar dos LCPXpresso até porque ainda nao testei o stm32.

metRo_

Não está nada facil conseguir alguma coisa com o STM32 em Linux :s

Do que experimentei até agora aqui estão alguns pontos importantes para mim:

STM32 - Informação muito confusa para utilização do STM32 em linux principalmente por não existir suporte do ST-LINK para linux.
LCPXpresso -  Instalando o IDE deles para linux foi bastante simples programar com o exemplo blink.

No geral pareceu-me que existe bastante mais informação para os LCP que para os STM32. A ST tem uma familia, STM32W, que possui comunicação ZigBee o que para mim é algo importante.

Para já parece que qualquer um dos dois para uma utilização comercial necessita que pague o compilador/IDE e a pagar então ficaria pelo LPCXpresso pois pelo menos este existe para Linux.

Sugestões!?

PS: Parece que para já o avr-gcc ainda vai funcionar durante muito tempo :)

zedlav

Boas eu tenho um chip stm32f100cb uso linux.
Para gravar o chip uso o bootloader que vem de fabrica uso o comando stm32flash (aqui).
Para quem tem placas STM32VL-Discovery ver este blog link
Para usar o bootloader que vem de fabrica tem de se configurar os pinos BOOT0=1 e BOOT1=0.

Para compilar uso o gcc(arm-elf-gcc). Vou explicar como fazer uma toolchain para Debian tudo em comandos estilo copy paste atenção ao $(user) #(root).

Antes de mais vamos instalar pacotes deb:
#apt-get install flex bison libgmp3-dev libmpfr-dev libncurses5-dev libmpc-dev autoconf texinfo build-essential


Criar um drirectório em /opt é nessesário ser root
#mkdir /opt/ArmGnu

Agora criamos dois directório um dentro do outro:
$mkdir tmp_arm
$cd tmp_arm
$mkdir tmp_gcc


Download do binutils:
$wget http://ftp.gnu.org/gnu/binutils/binutils-2.21.tar.gz

Descompactar o tar.gz e entrar no directório criado  configure make make istall:
$tar -vzxf  binutils-2.21.tar.gz
$cd binutils-2.21
$./configure --prefix=/opt/ArmGnu --target=arm-elf
$make
#make install
$cd ..


Agora adicionamos a PATH /opt/ArmGnu/bin
$export PATH=$PATH:/opt/ArmGnu/bin

Vamos até a directório tmp_gcc e fazemos o download do gcc:
$cd tmp_gcc
$wget http://gcc-uk.internet.bs/releases/gcc-4.5.2/gcc-4.5.2.tar.gz


Descompactar configurar e compilar e instalar:
$tar -vzxf gcc-4.5.2.tar.gz
$./gcc-4.5.2/configure --target=arm-elf --prefix=/opt/ArmGnu --enable-interwork --enable-languages=c --disable-libssp
$make
#make install


Se tudo correu bem já temos o comando arm-elf-gcc.
Temos compilador mas não temos libc (podemos sempre ser nós a fazer ou buscar algum lado...).

agora vamos ao blinky led do bolg que vos dei:

$cd ..
$mkdir teste
$cd teste
$wget http://www.robsons.org.uk/blinky.zip
$unzip blinky.zip
$make


Para gravar no chip eu uso usb-serial(fdti)

$stm32flash -w blinky.bin -v -g 0x0 /dev/ttyUSB0


Espero ter ajudado em alguma coisa.

metRo_

#37
Acho que ajudas-te bastante, vou tentar dar uma vista de olhos nisso nos proximos tempos e depois digo alguma coisa :)
Só que por exemplo, por ai não dá para fazer debug on-chip certo!?

zedlav

#38
Sim tens razão não dá para fazer debug on-chip só se for com printf(não é a mesma coisa).
Mas necessitares podes sempre usar jtag e o openocd.
Ou usar st-link  com versaloon http://takenapart.com/?p=82 aqui explica o que fazer.  (nunca usei este)

metRo_

#39
Ainda não percebi muito bem o conceito do versaloon, é um programador para JTAG, SWD, STLINK, etc?!

@zedlav Se eu arranjar um programador SWD ou assim, posso fazer tudo o que fazes ai, mas depois no ultimo comando em vez de utilizar o stm32flash utilizaria o meu programador para enviar o programa correcto!? De resto a tollchain funcionaria na boa para desenvolver aplicações para o stm32?!

zedlav

Acho que o nome st-link é o hardware que coresponde ao chip mais pequeno na placa, SWD e JTAG além de ser o tipo de ligação(interface de programação) tambem são dois tipos diferentes de protocolo.
No versaloon o que eles fazem é mudar o firmware do chip mais pequeno da placa, não sei se dá para JTAG devido aos pinos(mas não tenho a certeza).

Se tiveres um outro programador SWD podes fazer aquilo que dizes, tens é de ver qual o commando a usar e que tipo de ficheiro esse comando aceita ou bin ou hex (ou outro??). Estuda o Makefile do blinky.zip para poderes mudar para o que te der jeito. Quando conseguires gravar o blinky no teu chip diz-me, para poder passar a segunda parte da toolchain(start files & libc).


metRo_

Quote from: zedlav on 27 de March de 2011, 15:37
Acho que o nome st-link é o hardware que coresponde ao chip mais pequeno na placa, SWD e JTAG além de ser o tipo de ligação(interface de programação) tambem são dois tipos diferentes de protocolo.
No versaloon o que eles fazem é mudar o firmware do chip mais pequeno da placa, não sei se dá para JTAG devido aos pinos(mas não tenho a certeza).

Se tiveres um outro programador SWD podes fazer aquilo que dizes, tens é de ver qual o commando a usar e que tipo de ficheiro esse comando aceita ou bin ou hex (ou outro??). Estuda o Makefile do blinky.zip para poderes mudar para o que te der jeito. Quando conseguires gravar o blinky no teu chip diz-me, para poder passar a segunda parte da toolchain(start files & libc).

Mas posso comprar(fazer) a placa que eles têm à venda na versaloon, fico com um programador ou nem por isso?!


zedlav

#43
Agora começas a preceber porque nunca utilizei o ST-LINK, é nessesário ter outro gravador de SWD para gravar o firmware do versaloon na placa STM32VL-Discovery(mcu pequeno) e se usares outra STM32VL-Discovery para gravar vais ter de usar Windows ou usar Linux com outro gravador de SWD como o CBX indicou,ou usar JTAG(mais complicado mas mais barato com porta paralela) .
A STM32VL-Discovery é uma boa placa e muito barata mas pouco amiga do linux.

metRo_

#44
Então só para ver se percebi bem,

Programar e Debug:
1-Posso usar o bus-pirate e o STM32!
2-Posso programar o versaloon no STM32, e apartir daqui o meu ST-Link passa a ser um versaloon! Para programar o versaloon preciso de um programador como por exemplo SWD, e para isso podia utilizar outro ST-LINK mas teria que fazer isto em windows.

Programar:
Definir o bootloader por porta-serie e usar o stm32flash!

Duvida:
No ponto 2 depois de programar o STLINK para versaloon, fico com um versaloon normal que me permitirá programar outros STM32 ou so este?! Isto é, aquele SWD que se encontra no STM32 pertence ao pequeno micro que esta na parte do STLINK ou pertence ao micro normal em que se vai desenvolver?!

Obrigado por toda a ajuda, eu sei que se calhar algumas questões bastaria ir um bocado mais fundo para obter resposta :s

EDIT:
Estive a ver isto: http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00251732.pdf e os pinos PA9 e PA10 são os TX e RX respectivamente e são ambos 5V tolerant. Estou a pensar então usar o Arduino, já lhe tirei o atmega e ja fiz as ligações do STM32 ao Arduino.
Para colocar o BOOT0 a 1 basta ligar este a 3.3v, certo!? É que o gajo anda para ali com resistências, eu suponho que seja só para tirar os 3.3v dos 5v nada mais, certo?!