Skip to main content Skip to local navigation
Home » Page 2

Blog posts

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 […]

Confusion on Workplace Incident Reporting at York University

I want to follow-up on my earlier post on workplace incident reporting at York University. Our HSEWB department, which controls resources and processes related to workplace health and safety at York University, continues to insist that documentation -- including workplace incident forms -- be hidden behind password protection access. Hiding health and safety documentation behind […]

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 […]

Computer Suggestions for Students 2024/25

Incoming engineering and computer science students often ask "which computer should I get?" when preparing for university life. I tackled this a few years ago on Twitter and in my previous blog posts, each year from 2020 onward. The basics remain the same:  Laptops are useful tools Macs are fine for most students Windows may be required […]

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 […]

CLion & LibSerialPort

I've been itching to kick the tires on the CLion IDE to see how it works as a contemporary C and C++ development environment. I've been using Jetbrain's IntelliJ IDE ever since my student,Richard Robinson, recommended it to me for Java development. I typically write C programs using embedded IDEs like MCUXpresso, Segger Embedded Studio […]

Getting Started with RISC-V: Simulators

Introduction When I teach microprocessors to students I find it important to have access to good tools like simulators and IDEs. Up until now that hasn't been the case with RISC-V. Now that RISC-V tools are at a state that puts them on par with equivalent tools for AVR, ARM, x86, MIPS and PIC, I'm […]

Firmata4j and a Simple DHT20 example

After my earlier blog post from today, I wanted to verify that I could read single bytes of data from other sensors on the Grove Beginner Kit for Arduino. The next target? The DHT20 sensor. According to the data sheet, I should be able to be able to request a status byte and that that […]

Firmata Example : I2C Sensor + Java & Firmata4j

A lot of Arduino projects are meant to always be attached to a PC, transferring data back and forth between the Arduino and the PC. That's why Firmata, a program that sits on the Arduino and allows a program on your PC to remotely read from sensors and buttons and transmit to things like speakers […]