cancel
Showing results for 
Search instead for 
Did you mean: 

Is it possible to simulate and work without real HW when doing simple Assembly language for teaching students ?

bully
Senior

It would be a great feature to use the same tool from basics to real projects...

I'm teaching Computer Architecture and Organization courses at the University...

Regards.

5 REPLIES 5

With $10 boards with debuggers and serial output the market has moved away from simulation.

Keil might be a better choice, they have dropped part level simulation due to proliferation issues, but it should still do the core stuff well.

It is also not the day of stand alone, and command line tools,​ if you want that experience why use an IDE?

The least effort route at this point is to add and test assembler code in the startup.s file, and do so as close to the Reset_Handler entry point as possible, or call assembler functions from C and have that exercise or output results. You could also benchmark things in machine cycles so the ramifications of coding styles and optimization​ impact run time can be observed.

Dealing with how the peripherals bolt to the ARM core and interact/integrate, would seem to be a solid goal for a student in 2020.

These are the opinions of someone who did PASCAL, C and Assembler in the first year *Electronics* degree some 4 decades ago, and ​did Assembler and Machine Code for a couple of CPU Architectures in Secondary School..

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

For assemble, link and run, from the command line, native tools on a RPi ​

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
YAY.1
Senior

You should try proteus.

Proteus is circuit simulation program also microcontrollers and microprocessors.

You can run asm, C codes which one you want.

KnarfB
Principal III

I'm also teaching those things. Each student gets a $10 Nucleo board in the first semester and these boards are used in several courses including CA and in the labs for connecting sensors and creating a simple base board PCB.

We do assembly language reading, i.e. instruction level debugging and understanding basic compiler patterns like loops or the call stack. Its more fun (IMHO) if the students can touch things and hook up a logic analyzer to check I2C lines as they probably will do later at work.

Later, I use more complex boards like STM32F746G-DISCO and STM32MP157C-DK2 (master course) and the students recognize and appreciate the similarities.

KnarfB

gregstm
Senior III

I learnt about the rich assembly language of the Vax-11/780 computer in lectures back in the 1970's. There were no simulations, no hardware (just punched cards back then) - but I think those lectures put me in good stead for all the other assembly languages I have encountered since then. It has almost come full circle now, where the rich assembly language of the ARM chips remind me of those lectures all those years ago. I use Keil for simulating my assembly language routines. I think the "Definitive Guide to ARM Cortex-M3 and Cortex-M4 Processors" by Joseph Yiu would be a great resource for students. I am amazed at the value in a nucleo board...