<feed xmlns='http://www.w3.org/2005/Atom'>
<title>stm32l4.git/include/kern, branch working</title>
<subtitle>My bare metal hacking on an stm32l432
</subtitle>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/stm32l4.git/'/>
<entry>
<title>Added kernel-level abstraction over the spi interface.</title>
<updated>2020-12-05T06:16:31+00:00</updated>
<author>
<name>Josh Rahm</name>
<email>joshuarahm@gmail.com</email>
</author>
<published>2020-12-05T06:16:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/stm32l4.git/commit/?id=7002cb8380406173407c9e8c8d16ebd670fff55c'/>
<id>7002cb8380406173407c9e8c8d16ebd670fff55c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add systick/...</title>
<updated>2020-12-05T03:34:20+00:00</updated>
<author>
<name>Josh Rahm</name>
<email>joshuarahm@gmail.com</email>
</author>
<published>2020-12-05T03:34:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/stm32l4.git/commit/?id=83deae717de8b940b0cb04d1d1989b0a4c250e35'/>
<id>83deae717de8b940b0cb04d1d1989b0a4c250e35</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Some LED lights working. Not great. WIP</title>
<updated>2020-11-29T06:21:22+00:00</updated>
<author>
<name>Josh Rahm</name>
<email>joshuarahm@gmail.com</email>
</author>
<published>2020-11-29T06:21:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/stm32l4.git/commit/?id=fd674424d19cf12c1186394606729cff236d5bdf'/>
<id>fd674424d19cf12c1186394606729cff236d5bdf</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix kalloc bug.</title>
<updated>2020-11-28T21:46:32+00:00</updated>
<author>
<name>Josh Rahm</name>
<email>joshuarahm@gmail.com</email>
</author>
<published>2020-11-28T21:46:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/stm32l4.git/commit/?id=0ed233b879675929559fb413dd7e018d5aee26c3'/>
<id>0ed233b879675929559fb413dd7e018d5aee26c3</id>
<content type='text'>
Bitfields are officially stupid. Bizzarre behavior was found in how the
bitfields integers were overflowing and causing other members to change
value, causing really screwy behavior. In addition, with the discovery
of 48k being available to the heap, a 12-bit value was no longer
sufficient to define the size.

I rewrote parts of the kalloc code to allow a generic size for the
kalloc header because now it'll require 2 words per block allocated,
and who knows what size the header will be on different platforms
with more memory.

Unfortunately, the second word of the header consists only of the "used"
bool. Because I wish to keep alignmennt with 32-bit words, 31 bits are
"wasted." However, these bits are used as a canary value to detect
heap corruption, so they're not completely wasted.

Also, testing was broken since adding the huge amount of platform
dependent code for doing system calls. These dependent parts were
put under a macro guard so they don't interfere with the x86 testing.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Bitfields are officially stupid. Bizzarre behavior was found in how the
bitfields integers were overflowing and causing other members to change
value, causing really screwy behavior. In addition, with the discovery
of 48k being available to the heap, a 12-bit value was no longer
sufficient to define the size.

I rewrote parts of the kalloc code to allow a generic size for the
kalloc header because now it'll require 2 words per block allocated,
and who knows what size the header will be on different platforms
with more memory.

Unfortunately, the second word of the header consists only of the "used"
bool. Because I wish to keep alignmennt with 32-bit words, 31 bits are
"wasted." However, these bits are used as a canary value to detect
heap corruption, so they're not completely wasted.

Also, testing was broken since adding the huge amount of platform
dependent code for doing system calls. These dependent parts were
put under a macro guard so they don't interfere with the x86 testing.
</pre>
</div>
</content>
</entry>
<entry>
<title>Primitive ability to call kernel code from userspace.</title>
<updated>2020-11-25T22:47:02+00:00</updated>
<author>
<name>Josh Rahm</name>
<email>joshuarahm@gmail.com</email>
</author>
<published>2020-11-25T22:47:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/stm32l4.git/commit/?id=6d22b0dfc7761a605758552d5824f8039ac5a00f'/>
<id>6d22b0dfc7761a605758552d5824f8039ac5a00f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add priv.h/c to allow switching to user mode. Change some things with the MPU in main() to actually work.</title>
<updated>2020-11-25T19:25:05+00:00</updated>
<author>
<name>Josh Rahm</name>
<email>joshuarahm@gmail.com</email>
</author>
<published>2020-11-25T19:23:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/stm32l4.git/commit/?id=f06d29ca9da724866ae99ee2225d53f382d32bcd'/>
<id>f06d29ca9da724866ae99ee2225d53f382d32bcd</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add module for controlling the MPU.</title>
<updated>2020-11-25T18:32:16+00:00</updated>
<author>
<name>Josh Rahm</name>
<email>joshuarahm@gmail.com</email>
</author>
<published>2020-11-25T18:27:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/stm32l4.git/commit/?id=d7d50cc81f72d1275140d7a15c52b6f9e272896f'/>
<id>d7d50cc81f72d1275140d7a15c52b6f9e272896f</id>
<content type='text'>
The MPU is a module in arm chips which allow for memory access
protection. They are more primitive than full MMUs, but can still
provide at least basic access control between different process
controls.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The MPU is a module in arm chips which allow for memory access
protection. They are more primitive than full MMUs, but can still
provide at least basic access control between different process
controls.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix kalloc. Now the HEAP START and HEAP END globals are defined by the linker script.</title>
<updated>2020-11-24T22:59:23+00:00</updated>
<author>
<name>Josh Rahm</name>
<email>joshuarahm@gmail.com</email>
</author>
<published>2020-11-24T22:59:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/stm32l4.git/commit/?id=0c0f5c3d8397ba5168f0cd01b25ba70c238b36e0'/>
<id>0c0f5c3d8397ba5168f0cd01b25ba70c238b36e0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add better logging capabilities, including the ability to panic.</title>
<updated>2020-11-24T22:22:42+00:00</updated>
<author>
<name>Josh Rahm</name>
<email>joshuarahm@gmail.com</email>
</author>
<published>2020-11-24T22:15:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/stm32l4.git/commit/?id=ecbcb2509f4b811bce0a56e07de9737d14815251'/>
<id>ecbcb2509f4b811bce0a56e07de9737d14815251</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>rename halloc to kalloc</title>
<updated>2020-11-24T20:51:05+00:00</updated>
<author>
<name>Josh Rahm</name>
<email>joshuarahm@gmail.com</email>
</author>
<published>2020-11-24T20:51:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/stm32l4.git/commit/?id=6a1e0acc14b62c00317ac61c6ad6d8ffe441be4f'/>
<id>6a1e0acc14b62c00317ac61c6ad6d8ffe441be4f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
