cancel
Showing results for 
Search instead for 
Did you mean: 

Classroom development dilema

aes
Associate II
Posted on January 14, 2015 at 17:51

I am teaching a course on embedded programming and am having some logistics issues I am hoping someone might be able to help with here.

I have taught a class using the STM32F3 before but I had a linux environment available to setup the GNU tools etc but this time (different actual course) my classroom does not have Linux available and it will be a month or more before the 40 computers can even have a possibility of having this change made by IT.

The classroom computers are Windows 7 enterprise and they let you install anything you want but on reboot they are restored to the configured state.

What I need is:

  • Some sort of development tool chain etc that I can have the students setup quickly on these computers each class
  • A way to download the code via the st-link USB connection
  • A debugger of some sort that the students can use
  • The course is supposed to be Assembler centric (yes I know the world uses C but the course outline requires mostly assembly)

I have looked at the trial versions of some of the IDEs but they seem to use a registration code that I am sure will be an issue after re-registering the software on each new install.

Use of a virtual machine has been an issue last year due to the st-link driver causing blue screens.  I don't think these computers have a virtual machine installed on them but if the blue screen issue is fixed and there is a quick VM that can be installed that might work?

Because the semester has started time to get setup is important.

I am taking over this course with a new updated perspective.  The previous course had them use Arduino boards but this involved these purely software students connecting up LEDs, push buttons etc and we wanted to avoid that.  The STM32F3 is nice as it has a lot of IO built in, not to mention ARM is 95% of the market so more relevant.

So, does anyone have any suggestions or direction to point me in?

Thanks

Al

#stm32f3 #teaching #compilers
9 REPLIES 9
Posted on January 14, 2015 at 18:57

not to mention ARM is 95% of the market so more relevant.

Thank goodness, I bang my head in despair that people are teaching 8051 C and Assembler as if it's some doorway to future employment, or remotely relevant in 2015 compared to a $10-15 STM32 DISCO board.

The install time for Keil/IAR is too long, perhaps you can consider installing the evaluation on to a flash stick once, having a directory for USB drivers, and duplicating/cloning the stick for the students. Presumably they would already use a flash drive to save their work.

As I recall you can just install the Keil Eval without any keys/code, defaults to 32KB limited, install to X:\KEIL and put a shortcut in the drive root directory for an icon.

Rowley might also be worth considering, last I checked had reasonable debug integration.

Tips, buy me a coffee, or three.. PayPal Venmo Up vote any posts that you find helpful, it shows what's working..
Posted on January 14, 2015 at 19:16

Not sure where you're situated, I'm in the USA, but strongly consider ''International Editions'' instead of the obscene $50-100 text books.

I like Gibson for Assembler, Hohl less so as is more ARM7/9 centric

http://www.abebooks.com/servlet/BookDetailsPL?bi=11104224321&searchurl=an%3DGibson%26sts%3Dt%26kn%3DARM+Assembler

Yiu for Cortex-Mx

http://www.abebooks.com/servlet/BookDetailsPL?bi=12422234816&searchurl=tn%3DCortex%26an%3DYiu%26sts%3Dt

Langbridge has good ARM+Assembler coverage

http://www.abebooks.com/servlet/BookDetailsPL?bi=13343590373&searchurl=sts%3Dt%26kn%3DARM+Professional+programming

Mazidi has some flaws, but wins in content over polish

http://www.amazon.com/Assembly-Language-Programming-Architecture-books-ebook/dp/B00ENJPNTW/ref=sr_1_fkmr0_1?ie=UTF8&qid=1421259922&sr=8-1-fkmr0&keywords=mazidi+arm+assembler

Tips, buy me a coffee, or three.. PayPal Venmo Up vote any posts that you find helpful, it shows what's working..
aes
Associate II
Posted on January 14, 2015 at 19:36

Thanks for the fast reply clive1

A colleague just suggested installing Ubuntu to an USB flash stick and having them do development from there.  I have to work out how I would distribute the image with tool chain installed.

These classroom computers have network share drives available where I can put a somewhat limited amount of data on it for students to access.  They can also logon to the eConestoga site and access via a web browser these shared files etc.

I looked at Rowley but it shows only a 30 day trial and charges per workstation for educational use.

Al

aes
Associate II
Posted on January 15, 2015 at 00:57

Just to let you know, I came up with a solution.  Create a bootable USB stick with Linux and dev tool chain on it.  🙂

Posted on January 22, 2015 at 14:15

Take a look at coocox.org CoIDE V2 Beta.  The install file is about 120MB, takes about 5 mins to install or re-install on a PC.  You could put it on a flash drive along with the GNU arm toolchain that needs to be installed as well.  You have to register at coocox.org to download the install file but that only needs to be done once by one person if you duplicate it to all the flash drives you need.  It is a C environment primarily but works fine for assembly .s files using the GNU toolchain.  Has all the configs for downloading to pretty much all ST Cortex ARM chips over ST-Link.

Good luck!

westfw
Associate II
Posted on January 24, 2015 at 07:46

Rats. The forum SW ate my reply.

You might like this thread:

http://www.eevblog.com/forum/microcontrollers/one-dollar-one-minute-arm-development/

And

https://github.com/WestfW/Minimal-ARM

We programmed some STM32F103 chips in assembler, using a small subset of the ARM Gnu tools. We made it blink, we made it say ''Hello World'' (With interrupts!), and then we got bored. It was painful; ARM chips are not set up to be programmed in assembler. :(

/*
* Output a decimal number from r0.
* (classic recursive algorithm!)
*/
decout: push {lr}
movs r2, #0x0A 
/* 10 */
udiv r1, r0, r2 
/* r1 = r0/r2 */
mls r2, r1, r2, r0 
/* r1 = r0 - r1*r2 (mod 10) */
push {r2} 
/* Save remainder */
movs r0, r1 
/* move quotient back into r0 */
beq decout2 
/* Done? Start printing */
bl decout 
/* recurse */
decout2:
pop {r0} 
/* get digit */
adds r0, #
'0'
/* Convert to ascii */
bl putchr
pop {pc} /* unwind */

Also recently, some Arduino folks have updated the Leaflabs ''Maple'' code to current versions:

https://github.com/rogerclarkmelbourne/Arduino_STM32/wiki

and

http://forum.arduino.cc/index.php?topic=26590

Posted on January 24, 2015 at 14:00

It was painful; ARM chips are not set up to be programmed in assembler. :(

Odd then it was designed by guys who wrote a lot of their stuff in assembler? I can suggest several CPU's with more painful assembler,

Recursion seems a bit like overkill, especially when a 32-bit integer can run 10 digits.

https://my.st.com/public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/Flat.aspx?RootFolder=https://my.st.com/public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/Assembly%20Code%20Example&FolderCTID=0x01200200770978C69A1141439FE559EB459D7580009C4E14902C3CDE46A77F0FFD06506F5B&currentviews=3927

Tips, buy me a coffee, or three.. PayPal Venmo Up vote any posts that you find helpful, it shows what's working..
westfw
Associate II
Posted on January 25, 2015 at 03:27

>> I can suggest several CPU's with more painful assembler,

It's not that the assembly language itself is so awful, it's that there is no infrastructure for supporting assembly language programming.  Stuff like:

1) GAS syntax doesn't quite match the documented ARM syntax (''@'' as a comment character?  Ugh!)

2) No ''.inc'' files containing symbol definitions for chips.

3) No standard macro libraries.

4) No established programming style(s).

>> Recursion seems a bit like overkill

Classic algorithm, I say!  The nice thing about recursion in assembler  is that you know exactly how much stack space will/could be used.

world04
Associate II
Posted on January 25, 2015 at 14:17

Take a look to emBlocks IDE thats Woks pretty nice upto Windows 8.1 x64.

This supports a bunch of JTAG's and ST-Link indeed.

It supports FreeRTOS and ChibiOS and does'nt need the scripting rumble before.

Just install and start - like KEIL. The IDE supports Import Keil Projects.

i actually use them and i am lucky with them.