Skip to main content Skip to local navigation
Home » Category: 'assembler'

assembler

VPL & RISC-V Simulation with Kite (with random registers)

In another post, I set up a basic Virtual Programming Lab exercise for RISC-V simulations with Assembler coding and the Kite simulator. That example is vulnerable to students hard-coding the register values without actually writing the necessary code. But I wrote it in order to provide a solid first example. Here, we're going to write […]

RISC-V on EECS Dept Computers: Compiling and Simulating

In this blog post I'm going to go through the steps for setting up a program for simulating basic RISC-V processors on computers in York University's EECS department. This should be helpful for undergraduate and graduate students, as well as faculty who want to use RISC-V in their research or courses. While we've been using […]

Spike Simulator for learning: C vs. Assembler

RISC-V processors, like ARM processors, are complex beasts, making them challenging to teach with. When teaching with them it's important to have appropriate development tools to reflect the immediate pedagogical goals but also to provide students with a pathway for further learning and application. When I teach courses on computer architecture, like EECS 2021 at […]

Getting Started with RISC-V: Spike Simulator

The Spike simulator is a command-line application for RISC-V development. It allows for both 32-bit and 64-bit simulations and supports multiple variants of RISC-V types. It's an alternative to using the Segger emSim simulator, which has both a graphical mode and a command line mode and. It's also more up-to-date and widely-used than the RVS […]

Installing SIMAVR on Mac OS X

The SIMAVR package is for simulating AVR processors like the ATMEGA328 on the Arduino UNO. I'm looking to try to use it with VPL in courses like our computer architecture class, EECS 2021, as a way of simulating the UNO's processor in exercises involving assembler and C programming. On a Mac, we use HomeBrew. The […]

The EECS 2021 Lab Kit: Grove Board + Snap Programmer

EECS 2021 Lab Kit The EECS 2021 lab requires you to have both (1) the Grove board with an ATMEGA328P chip on it (you got it as a part of the EECS 1011/21 lab kit last year), as well as (2) a Snap programmer. The Grove kit (officially called the "Grove Beginner Kit for Arduino") […]

Simulating Micros from Command Line

Introduction Microchip's MPLAB X permits simulation from the command line.  This is interesting from the perspective of teaching if we have automatically-graded programming assignments that take the student's program and runs it against a simulated chip in an LMS like Moodle. Background I'm interested in how we can use the MDB in MPLAB X to […]

Virtual Programming Lab

Virtual Programming Lab is a plugin for Moodle (eClass at YorkU) that permits interactive programming assignments to be made for students.   There are some really good examples at Smith College on how to set it up with Python and a few with Java and C. I've posted, on YouTube, an example of how to […]

Disassembling in MPLABX & MCUXpresso

[to be updated] When you write programs in languages like C or C++ the programs get converted by the compiler tools into commands that the computer can read and understand.  Just before the compiler tools do that they convert your work into a sequence of commands into a language called Assembler. Back in the day […]

Sabbatical Report: Updating Microcontrollers

As part of my sabbatical activities I took on the "Temps Pratiques" microcontroller laboratory sessions for electrical engineering and mechatronics students at INSA Strasbourg.  In pre-sabbatical discussions with faculty and staff at INSA Strasbourg I found out that the students were learning using what I considered to be outdated technologies.  The PIC16F84A microcontroller chip used […]