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

assembler

Writing a Simple Project for Espressif IDF Command Line Compiler Tools

Today we're going to write a program that can compile, from the command line, with the Espressif IDF tools. (India-Delta-Foxtrot, not India-Delta-Echo) It's assumed that you have installed those tools already. If not, review the instructions online or in class. You can follow along here in this blog post but also in a YouTube video […]

Exploring RISC-V: Espressif IDE on macOS & ESP32-C3

While we expect our students to use the Espressif IDE software in the Lassonde labs, on computers provided by the School, they should also feel enabled to install the software on their own machines. The following is a description of what I did to get it to work on my macOS machine. Note that once […]

Exploring RISC-V: Espressif IDE & ESP32-C3

Here is a short post on a successful attempt to write a C program in the Espressif IDE on the EECS Linux computers (LAS 1006). I have an ESP32-C3 development board plugged in and have the IDE loaded with the boilerplate code inserted when I choose a simple example from the menu. I then modified […]

Exploring RISC-V Options: the RP2350 (Part 8 -- Returning a Single Array Value)

Here, we'll return the value from an array defined in the assembler file to the calling C function. When writing programs like this it's handy to refer to a "cheat sheet" like this one. If everything works as it should your serial monitor should have the following output: There are two files here: returnArrayValue.S and […]

Exploring RISC-V Options: the RP2350 (Part 7 -- C+ASM returning values)

Here I want to post an example of an assembler function that simple sends a value back to the C function that called it. The concept and approach are pretty general, but it is specifically aimed, via the assembler code for running on the RP2350 RISC-V system. Small changes would be needed for a PIC18, […]

Exploring RISC-V Options: the RP2350 (Part 6 -- Assembler Errors)

Writing assembler code is hard, for a few reasons. First, the lack of abstraction forces you to think about each and every step of your program. Second, the lack of abstraction requires you to know a great deal about the hardware. Then, the grammar is just weird. You might write it from left to right […]

Exploring RISC-V Options: the RP2350 (Part 4 -- Serial Monitor Tooling)

It's easy to get caught in weird assembler errors. This is made more difficult if you don't have a background debugger and need to use a boot loader / serial monitor to debug your system. Sometimes that's all you have. So here is a suggestion for a C++ and Assembler file pair to check to […]

Exploring RISC-V Options: the RP2350 (Part 3 -- No Drive to Deploy)

It was bound to happen. The Seeed Studio RP2350 is not connecting to the Arduino IDE. I'll go out on a limb here and chalk this up to the boot loader having an issue after I tried to get it to spit out serial data or maybe it was because I was trying to get […]

Exploring RISC-V Options: the RP2350 (Part 2 -- Inline ASM)

Now, let's blink an LED using the Arduino IDE and the Xiao RP2350. I'm going to use a really handy YouTube video by Xeno Kovah: Arch1005: RISC-V Assembly 13 Writing Assembly 02 GCC Inline Assembly. This opens up the possibility of using "extended" assembler to allow for the passing of values between your C and […]

Exploring RISC-V Options: the RP2350 (Part 1)

In engineering education there is an ever-present problem with technology-anchored pedagogy: when do you switch from current technology to the next one? Right now, the cool kid on the block in the RISC-V architecture. Will it be the next ARM or will it be the next PowerPC or MIPS? It's hard to tell. However, a […]