Jump to content
ELFORUM - Forumul electronistilor
danzup

STM32 - ARM Microcontrollers Cortex M3

Recommended Posts

Deschid aici un nou thread dedicat microcontrolerelor de la STMicroelectronics din seria ARM Microcontrollers Cortex M3 .

As vrea sa postam linkuri pentru inceput si daca sunteti pe aici care scrieti programe pentru asta va rog sa faceti aici postarile .

Sau se poate face un subforum dedicat pentru ARM .

Sa devina acest thread ceva ca la threadurile despre PIC si AVR ATmel .

Pentru inceput pun eu niste linkuri care m-au interesat :

http://www.coocox.org/CoOS.htm

http://www.embeddedsignals.com/ARM.htm

------------------------------------------------------------------

Eu mi-am cumparat asta cu 35 de dolari si pentru el vreau sa lucrez :

http://www.aliexpress.com/store/product ... 12334.html

Link to comment
Share on other sites

Ceva soft cu care vine el :

http://www.micro4you.com/files/Poweravr ... 2.2.28.rar

http://www.micro4you.com/files/Poweravr ... 20V3.2.rar

http://www.micro4you.com/files/Poweravr ... ibrary.rar

Cateva info despre ce are pe placa .

Controler de touch screen : xpt2046 touch screen controller IC = ads7843

Afisaj : 3.2`` TFT LCD color , HY32D

Ucontroler : STM32F103VCT6

Usb serial link : PL2303

Link to comment
Share on other sites

Buna dan,Ar fi fost frumos ar fi fost daca ar fi avut si un RAM extern placa pentru acel GUI, mi se par cam putin cei 20K de pe proc(sper ca nu gresesc). Eu pana acum am lucrat foarte mult pe un K60 si un KL25 de la Freescale din care unu este un cortex M4 si celalalt un M0+ am fost foarte multumit, e un salt enorm de la celebrele ATMEGA si PIC !Pe parte de RTOS am folosit MQX de la freescale pentru ca mi-a fost foarte usor sa integrez ce aveam de folosit si aveam f mult drivere gata facute insa este f f complex si ocupa mult spatiu(30k flash) cu drivere si ram vre-o 16k(insa aici erau multe buffere pentru seriala, stiva usb etc.) Daca ai nevoie vre-o data am un Jtag Jlink original pentru programare si debug !

Link to comment
Share on other sites

Buna dan,Ar fi fost frumos ar fi fost daca ar fi avut si un RAM extern placa pentru acel GUI, mi se par cam putin cei 20K de pe proc(sper ca nu gresesc). Eu pana acum am lucrat foarte mult pe un K60 si un KL25 de la Freescale din care unu este un cortex M4 si celalalt un M0+ am fost foarte multumit, e un salt enorm de la celebrele ATMEGA si PIC !Pe parte de RTOS am folosit MQX de la freescale pentru ca mi-a fost foarte usor sa integrez ce aveam de folosit si aveam f mult drivere gata facute insa este f f complex si ocupa mult spatiu(30k flash) cu drivere si ram vre-o 16k(insa aici erau multe buffere pentru seriala, stiva usb etc.) Daca ai nevoie vre-o data am un Jtag Jlink original pentru programare si debug !

Mersiii !!!!Super oferta dar mi-am luat asta :http://www.hotmcu.com/usbminijtag-jlink ... cPath=3_25
Link to comment
Share on other sites

Eu am cumparat ST-Link dar nu imi convine sa folosesc solutii gen IAR care costa o gramada, ST nu are un IDE propriu.Am intentia de a programa cu compilatorul de la Mikroelektronica, care costa putin, deocamdata sunt in faze de test. Compilatorul de la Mikro pentru AVR l-am criticat destul de dur la inceput, dar acum am o oarecare obisnuinta cu acesta si am reusit sa trec de anumite probleme (lipsa librariilor sau librarii cu bug-uri). Sper ca si cu ARM sa reusesc sa trec de probleme (in principiu accesand direct registrii de control).Stiu ca exista si ARM-GCC dar din lene probabil voi continua cu Mikro.

Link to comment
Share on other sites

Momentan am placa de la ST, STM32F0Discovery, e un cortex M0... cu ST-Link inclus.

 

Folosesc eclipse, gcc si open ocd si merge perfect. Toate tool-urile open source.

 

Aici e un punct de plecare: http://hertaville.com/the-stm32f0discovery-board/

Eu am reusit sa fac un proiect Eclipse fara sa ma mai folosesc de makefile, si in felul asta nu trebuie sa rescrii fisierul makefile de fiecare data cand adaugi / stergi fisiere din proiect.

 

Pentru M3 cred ca modificarile ar fi modelul procesorului si de modificat scriptul de linker.

 

Daca e nevoie, as putea da mai multe detalii...

Link to comment
Share on other sites

Guest bogdan_bv

salutare,eu folosesc Keil uVision4, cu jlink ca programator, merge perfect, cand am primit placa de la chinez am primit si 2 cd-uri cu toate tool-urile ...complete :DAm pus uCos II cu tot ce se poate ca si grafica, senzor de temperatura SHT11, RTC, CAN-bus, merge perfect.Nu cred ca ai nevoie mai mult RAM sau altceva, pacat insa ca touch-ul este rezistiv.Am folosit si STM32F103VCT6 si STM32F103ZET6

Link to comment
Share on other sites

Cu ceva timp in urma, profitand de preturile interesante, mi-am cumparat o "placa de dezvoltare" bazata pe CortexM4 - stm32f4Discovery.

Ieri am dat (intr-un blog) peste un articol despre un firmware care transforma placa asta intr-un analizor logic cu pana la 16 canale si pana la 20 MHz.

Cum tocmai ma straduiam sa pornesc o comunicatie SPI (intre un ald discovery cu Cortex M0 si un display Nokia3310), am zis ca nu ma costa (mai) nimic sa incerc analizorul mentionat.

Rezultatul - am reusit sa ma prind ce nu era OK si sa pornesc comunicatia. Mi-a placut atat de mult incat am decis ca e cazul sa-i fac reclama.

Daca e cineva interesat, pentru ca documentatia e cam sumara, fac un rezumat:

- in linkul de mai sus sunt firmware-ul si sursele.

- in josul paginii din link e un alt link la blogul "producatorului". Blogul e in rusa, dar pozele sunt sugestive.

- analizorul logic se conecteaza la PC prin USB emuland un port serial. Cel mai greu a fost sa gasesc driverele cdc la ST pe site. Din pacate n-am salvat linkul, da' am arhiva. Daca e cineva interesat, o pot da mai departe.

- softul folosit e OLS, o aplicatie Java care, dupa instalarea java, ruleaza in windows & linux. Am testat-o in ambele si merge (teoretic merge si pe mac, da' n-am sa testez).

- setarea softului - in imagini la rus pe blog.

 

Sper ca informatiile sunt utile si altora.

Link to comment
Share on other sites

La hitex pe site am gasit o carte care mie mi se pare bine scrisa (dar cum n-am ajuns inca la jumatate, mai am timp sa ma razgandesc).

O recomand si pentru ca inainte de a ajunge la controllerele STM32 (F1 - seria bazata de M3) face o prezentare a arhitecturii CortexM3.

 

Lectura placuta!

 

PS Pe site-ul mentionat sunt carti de-astea si pentru alte arhitecturi/alti producatori.

Link to comment
Share on other sites

De ce cu eforturi? Din ce am citit eu pe la ei pe site (si testat putin), le suporta pur si simplu.

Da' coocox nu merge sub linux, de exemplu, si mai si "ascunde" detalii. Dar daca nu te intereseaza decat windows si sa mearga, pare o solutie buna.

Eu inca mai caut inca "mediul de dezvoltare ideal" :rade:; momentan m-am oprit la eclipse + arm-plugin + gcc-arm.

Combinate cu openocd (teoretic merge si cu texane/st-link, da' m-am oprit la openocd), pot scrie programe, (teoretic) debuga si programa controllerele cu acelesi unelte atat in linux cat si in windows.

Problema in momentul asta mi-e ca inca n-am reusit (sau am reusit dar pare super complicat) ca in eclipse sa pornesc un proiect de la 0 fara sa folosesc arm-pluginul. Tot timpul "agata" cate ceva.

 

PS Multumiri lui crispus pentru linkul la hertaville.com. Desi ma indepartez de solutiile propuse acolo (makefiles scrise de mana), a fost un bun punct de plecare.

Link to comment
Share on other sites

Eu folosesc eclipse cdt chior, gcc de pe pagina aia si pentru debug open-ocd cu stlink.

 

Plecand de la makefile-ul ala, mi-am configurat in eclipse diverse build configuration astfel incat sa se potriveasca cu ce am eu nevoie. Am reusit sa folosesc si C++ (ma rog, "better C") deocamdata doar clase si template-uri fara stl & stuff.

 

Ca idee, la compilatorul de c++ ii dau asa:

g++ -I"<folderele de include>" -O0 -g3 -Wall -fno-rtti -fno-exceptions -mcpu=cortex-m0 -c -fmessage-length=0 -gdwarf-2 -mthumb -fomit-frame-pointer -Wall  -fverbose-asm
[*:1snpr9uz] asta e pentru debug: nici o optimizare (O0), sa includa toate informatiile de debug (g3)

[*:1snpr9uz] -fno-rtti - runtime type information --> n-o sa pot folosi dynamic_cast, etc

[*:1snpr9uz] -fno-exceptions - nu folosesc exceptii

[*:1snpr9uz] specific procesorul (am impresia ca mcpu e deprecated, se poate folosi mtune), thumb, etc...

Link-area o fac cu gcc fiindca nu vreau sa-mi linkeze si libstdc++.

gcc -mcpu=cortex-m0 -mthumb -nostartfiles -T<linker_map_file> -Wl,-Map=${ProjName}.map,--cref,--no-warn-mismatch
O sa mai iti trebuiasca sa-ti pui undeva in proiect si astea:

#include <stddef.h>extern "C" void* emulate_cc_new(unsigned len){    return (void*)0;}extern "C" void emulate_cc_delete(void* p){}void* operator new  (unsigned len) __attribute__((alias("emulate_cc_new")));void* operator new[](unsigned len) __attribute__((alias("emulate_cc_new")));void  operator delete  (void* p)   __attribute__((alias("emulate_cc_delete")));void  operator delete[](void* p)   __attribute__((alias("emulate_cc_delete")));void* __cxa_pure_virtual = 0;
Asa cum e scris mai sus, n-o sa poti aloca/dealoca memorie.

__cxa_pure_virtual e un handler global care e apelat atunci cand se apeleaza o functie pur virtuala (pentru un cod scris bine nu se ajunge niciodata in situatia asta).

Mai multe informatii se pot gasi aici: http://ptspts.blogspot.ro/2010/12/how-t ... bstdc.html

 

Pentru compilare fisiere .c am asa:

gcc -DSTM32F0XX=1 -DRUN_FROM_FLASH=1 -DUSE_STDPERIPH_DRIVER=1 -I"<include folders>" -O0 -g3 -mcpu=cortex-m0 -c -fmessage-length=0 -gdwarf-2 -mthumb -std=gnu99 -fomit-frame-pointer -Wall -Wstrict-prototypes -fverbose-asm
iar pentru assembler:

gcc -x assembler-with-cpp -c -mcpu=cortex-m0 -g -gdwarf-2 -mthumb  -Wa,-amhls=$(<:.s=.lst)
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.






×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines