<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Firmware Development on BitBanged</title><link>https://bitbanged.com/categories/firmware-development/</link><description>Recent content in Firmware Development on BitBanged</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>utkarsh@bitbanged.com (Utkarsh Verma)</managingEditor><webMaster>utkarsh@bitbanged.com (Utkarsh Verma)</webMaster><lastBuildDate>Sun, 27 Aug 2023 00:00:00 +0000</lastBuildDate><atom:link href="https://bitbanged.com/categories/firmware-development/index.xml" rel="self" type="application/rss+xml"/><item><title>Final update</title><link>https://bitbanged.com/posts/gsoc/final-update/</link><pubDate>Sun, 27 Aug 2023 00:00:00 +0000</pubDate><author>utkarsh@bitbanged.com (Utkarsh Verma)</author><guid>https://bitbanged.com/posts/gsoc/final-update/</guid><description>As August draws to a close, so does my adventure with GSoC. The aarch64/raspberrypi4b BSP has come a long way and is now primed to make its way into the upstream sources. Let&amp;rsquo;s kick back and take a look at the cool new features and the awesome progress we&amp;rsquo;ve made up to this point.
Project description #At the time of writing, the existing support for Raspberry Pi SBCs in RTEMS is operational, but it lacks essential functionalities such as graphics support, USB, SD card, UART, I2C and SPI functionality, which are necessary for basic user requirements.</description></item><item><title>The mailbox</title><link>https://bitbanged.com/posts/understanding-rpi/the-mailbox/</link><pubDate>Thu, 17 Aug 2023 00:00:00 +0000</pubDate><author>utkarsh@bitbanged.com (Utkarsh Verma)</author><guid>https://bitbanged.com/posts/understanding-rpi/the-mailbox/</guid><description>The Raspberry Pi (RPi) boards differ from conventional embedded systems. Their boot sequence starts with the VideoCore GPU and the ARM CPU boots up only after a couple of stages. This leads to the GPU handling the board&amp;rsquo;s low-level functionality, such as power and clock management. Since the kernel (running on the CPU) requires access to such functionality, the GPU provides a mechanism to the CPU to allow it to talk to the GPU, called the mailbox peripheral.</description></item><item><title>Midterm update</title><link>https://bitbanged.com/posts/gsoc/midterm-update/</link><pubDate>Thu, 13 Jul 2023 00:00:00 +0000</pubDate><author>utkarsh@bitbanged.com (Utkarsh Verma)</author><guid>https://bitbanged.com/posts/gsoc/midterm-update/</guid><description>Midterm evaluation is here and that means an update post is due where I talk about the progress so far. I can gladly say that lots of things are cooking in the raspberrypi4b BSP for RTEMS. I would like to go in detail about the development process and the hurdles faced in another blog post. Hence, this would be a short update post.
GPIO support #The BSP had no GPIO capability to start with.</description></item><item><title>Network booting a Raspberry Pi 4</title><link>https://bitbanged.com/posts/streamlining-rpi-osdev/network-booting-a-raspberry-pi-4/</link><pubDate>Wed, 12 Jul 2023 00:00:00 +0000</pubDate><author>utkarsh@bitbanged.com (Utkarsh Verma)</author><guid>https://bitbanged.com/posts/streamlining-rpi-osdev/network-booting-a-raspberry-pi-4/</guid><description>As highlighted in the previous articles, the flashing process for a Raspberry Pi 4 is far from ideal. It demands manual involvement from the developer and this article aims to fix that. We want as little manual involvement as possible for automation purposes.
Luckily, the firmware on RPi 4 supports network booting which enables it to fetch the boot dependencies from the network, without the need of an SD card. Since the will fetched from a network share, this opens up the possibility of modifying the OS files from the development machine without needing to touch the board.</description></item><item><title>Automating code compilation</title><link>https://bitbanged.com/posts/streamlining-rpi-osdev/automating-code-compilation/</link><pubDate>Tue, 11 Jul 2023 00:00:00 +0000</pubDate><author>utkarsh@bitbanged.com (Utkarsh Verma)</author><guid>https://bitbanged.com/posts/streamlining-rpi-osdev/automating-code-compilation/</guid><description>Imagine yourself working on a C project. You write some code, compile it, and then execute it to find that couple of things need fixing. Now, you make another set of changes and repeat the whole process. Doing this for each iteration is tedious. As highlighted in the previous article, this repeatedly hinders your thought process during development and your time as a developer is better-spent on problem-solving.
Since all developers face this issue, various tools already exist that aim to solve this.</description></item><item><title>Introduction</title><link>https://bitbanged.com/posts/streamlining-rpi-osdev/introduction/</link><pubDate>Tue, 11 Jul 2023 00:00:00 +0000</pubDate><author>utkarsh@bitbanged.com (Utkarsh Verma)</author><guid>https://bitbanged.com/posts/streamlining-rpi-osdev/introduction/</guid><description>Developing an operating system (OS) comes with its own set of challenges. Still, one of the most time-consuming and tedious aspects that Raspberry Pi (RPi) OS developers face is the repetitive flashing process required when iterating upon the code. In this article, we will delve into the problem at hand, explore its impact on development efficiency, and propose a solution to automate the flashing process, allowing developers to focus on problem-solving rather than manual tasks.</description></item><item><title>Streamlining Raspberry Pi OS Development</title><link>https://bitbanged.com/posts/streamlining-rpi-osdev/</link><pubDate>Tue, 11 Jul 2023 00:00:00 +0000</pubDate><author>utkarsh@bitbanged.com (Utkarsh Verma)</author><guid>https://bitbanged.com/posts/streamlining-rpi-osdev/</guid><description/></item><item><title>Hello, world! on a Raspberry Pi 4B with RTEMS</title><link>https://bitbanged.com/posts/gsoc/hello-world-on-a-raspberry-pi-4b-with-rtems/</link><pubDate>Thu, 29 Jun 2023 00:00:00 +0000</pubDate><author>utkarsh@bitbanged.com (Utkarsh Verma)</author><guid>https://bitbanged.com/posts/gsoc/hello-world-on-a-raspberry-pi-4b-with-rtems/</guid><description>In this post, I&amp;rsquo;ll do a basic &amp;ldquo;Hello, world!&amp;rdquo; on the Raspberry Pi 4 Model B over a UART connection using the Real-Time Executive for Multiprocessor Systems (RTEMS) project. This article heavily borrows from RTEMS&amp;rsquo; quick start guide , as I believe in reading the friendly manual, or RTFM in short.
Setting up the environment #To develop applications for RTEMS, we need to install the development toolchain along with the kernel.</description></item><item><title>Introduction</title><link>https://bitbanged.com/posts/gsoc/introduction/</link><pubDate>Fri, 16 Jun 2023 00:00:00 +0000</pubDate><author>utkarsh@bitbanged.com (Utkarsh Verma)</author><guid>https://bitbanged.com/posts/gsoc/introduction/</guid><description>I have some wonderful news. I had proposed a project with RTEMS for Google Summer of Code (GSoC) which got selected. :tada: Which means that this blog post is going to be one of those GSoC&amp;rsquo;s customary blog posts where I summarize my application.
Motivation #In fall 2018, I participated in Google Code-in . It opened me up to the idea behind FOSS and various other things including global collaboration. Fast forward five years to today, and now I am a developer of various open-source projects.</description></item><item><title>Google Summer of Code</title><link>https://bitbanged.com/posts/gsoc/</link><pubDate>Sun, 27 Aug 2023 00:00:00 +0000</pubDate><author>utkarsh@bitbanged.com (Utkarsh Verma)</author><guid>https://bitbanged.com/posts/gsoc/</guid><description/></item><item><title>Understanding Raspberry Pi</title><link>https://bitbanged.com/posts/understanding-rpi/</link><pubDate>Thu, 17 Aug 2023 00:00:00 +0000</pubDate><author>utkarsh@bitbanged.com (Utkarsh Verma)</author><guid>https://bitbanged.com/posts/understanding-rpi/</guid><description/></item></channel></rss>