Proj-2013-2014-Python-STM32F4

From air
Revision as of 16:13, 9 February 2014 by RICM4-prj14-grp9 (talk | contribs)
Jump to navigation Jump to search

Introduction

Python_sur_STM32F4


Team


Objectives

Points à traiter

  • Modidification des Makefile
 utilisation de arm-none-eabi-g++ et des bonnes options 
  • support STL
  Voir https://github.com/andysworkshop/stm32plus
  • Lib C
Voir newlib
  • gc Garbage Collection
 Voir  tinygc http://tinygc.sourceforge.net/
  • libprce
 Voir T-Rex is a minimalistic regular expression http://tiny-rex.sourceforge.net/ http://sourceforge.net/projects/tiny-rex/


Progress

project start : 13/01/2014

Week 1 (13/01 - 19/01)

  • Project discovery
  • Research of related projects

Week 2 (20/01 - 26/01)

  • STM32 develop environment
   Add USB device
       Create a new udev rule in /etc/udev/rules.d/45-usb-stlink-v2.rules: 
       SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="3748", MODE="660", GROUP="plugdev"
       To reboot :
       $ sudo service udev restart
   Download the GNU/ARM toolchain
       Download the Linux current installation tarball from 
       https://launchpad.net/gcc-arm-embedded/+download
       $ tar -xvjf gcc-arm-none-eabi-xxxxxxxxxxxxxxxxxx-linux.tar.bz2
       Add the fallowing to your ~/.bashrc
       export PATH=$PATH:~/xxxxxxx/gcc-arm-none-eabi-xxxxxxxxx/bin
       $ source ~/.bashrc
       To check :
       $ arm-none-eabi-gcc --version
       If you get an error message “bash : ... file does not exist”. 
       Maybe it is caused by the difference between 32bit and 64bit system. Try :
       $ sudo apt-get install ia32-libs*
   Download and Build STLINK
       STLINK is for programming and debugging firmware.
       you'll first need to install a couple of packages:
       $ sudo apt-get install autoconf pkg-config libusb-1.0 git
       Retrieve a copy of the STLINK source:
       $ git clone https://github.com/texane/stlink.git
       Build the code following the instructions in the README, with:
       $ ./autogen.sh
       $ ./configure
       $ make
       As a sanity check, look in ~/st-link and you should see st-util, st-flash, etc... 
       You may check if the board could be connected by execute st-util. 
       If it does not work please confirm if the rule you added in the first step corresponds your system.


  • Try the official examples of ST on the cards
   To avoid using the commercial software IDE and understand better, We decided to develop on Linux for this project.
   During the tries, for certain examples, we've got different results on STM32F407 and STM32F401. 
   We choose STM32F407 as the hardware for the following developement.


Week 3 (27/01 - 02/02)

  • Test Project MicroPython
  • Test Project Shedskin
  • STM32 hardware






Week 4 (02/02 - 09/02)

  • STM32 breakdown situation & solution
 Status 
   1) dahl@ubuntu:~/Desktop/3/stlink/example/32l_lcd$ make write
   ../../flash/flash write lcd.bin 0x08000000
   2012-02-09T23:25:54 INFO src/stlink-common.c: Loading device parameters....
   2012-02-09T23:25:54 WARN src/stlink-common.c: unknown chip id! 0
   stlink_sram_flash() == -1
   make: *** [write] Error 255
   
   2) ./st-util
   2012-02-25T16:00:42 INFO src/stlink-common.c: Loading device parameters....
   2012-02-25T16:00:42 WARN src/stlink-common.c: unknown chip id! 0xe0042000
   2012-02-25T16:00:42 INFO src/stlink-sg.c: Successfully opened a stlink v1 debugger
   Chip ID is 00000000, Core ID is 00000000.
   KARL - should read back as 0x03, not 60 02 00 00
   init watchpoints
   Listening at *:4242...
   
   3) dahl@ubuntu:~/Desktop/3/stlink/example/32l_lcd$ ../../flash/flash erase
   2012-02-09T23:28:01 INFO src/stlink-common.c: Loading device parameters....
   2012-02-09T23:28:01 WARN src/stlink-common.c: unknown chip id! 0xe0042000
   Mass erasing
   4) If I hold the Reset button while erasing:
   ahl@ubuntu:~/Desktop/3/stlink/example/32l_lcd$ ../../flash/flash erase
   2012-02-09T23:28:28 INFO src/stlink-common.c: Loading device parameters....
   2012-02-09T23:28:28 INFO src/stlink-common.c: Device connected is: L1 Med-density device, id 0x10386416
   2012-02-09T23:28:28 INFO src/stlink-common.c: SRAM size: 0x4000 bytes (16 KiB), Flash: 0 bytes (0 KiB) in pages of 256 bytes
   Mass erasing
   
   5) If I hold the Reset button while flashing:
   dahl@ubuntu:~/Desktop/3/stlink/example/32l_lcd$ make write
   ../../flash/flash write lcd.bin 0x08000000
   2012-02-10T14:13:21 INFO src/stlink-common.c: Loading device parameters....
   2012-02-10T14:13:21 INFO src/stlink-common.c: Device connected is: L1 Med-density device, id 0x10386416
   2012-02-10T14:13:21 INFO src/stlink-common.c: SRAM size: 0x4000 bytes (16 KiB), Flash: 0x20000 bytes (128 KiB) in pages of 256 bytes
   2012-02-10T14:13:21 INFO src/stlink-common.c: Attempting to write 7332 (0x1ca4) bytes to stm32 address: 134217728 (0x8000000)
   2012-02-10T14:13:21 WARN src/stlink-common.c: pecr.pelock not clear (0x7)
   2012-02-10T14:13:21 WARN src/stlink-common.c: Failed to erase_flash_page(0x8000000) == -1
   stlink_fwrite_flash() == -1
   make: *** [write] Error 255