aboutsummaryrefslogtreecommitdiff
path: root/02-usart/tests
Commit message (Collapse)AuthorAge
* Moved action to top level.Josh Rahm2020-11-24
| | | | | | Removed old iterations of the project and moved the files from 02-usart to the root directory since that's the sole place where the action is and that subproject has outgrown its initial title.
* Add new GPIO subsystem.Josh Rahm2020-11-23
| | | | | | | | | | This gpio subsystem keeps track of the GPIO pins which have been reserved and takes care of the housekeeping with keeping them running. This gpio subsystem also knows which alternate functions belong to which pins, so it can automatically configure the pins for the alternate functions.
* Update the testing harness to insulate tests in --nofork mode.Josh Rahm2020-11-23
| | | | | | | | | | | | | Before, when running a test binary in --nofork mode, it was up to the test to reset the program state before exiting to avoid dependencies on other tests. Now after each test the test harness will: 1. Wipeout the fake environmennt. 2. Reset the data segment to its initialization state. This achieves reasonable insulation between tests even though certain things (like a segfault) are stil not practical to completely insulate without fork()'ing.
* Fixed diasterous bug with hfree.Josh Rahm2020-11-22
| | | | | | Before this fix, hfree would neglect to set the prev pointer in the next used block and such was leaving the prev pointers invalid after coalescing frees.
* Large reorganization.Josh Rahm2020-11-22
| | | | | | | | | | | | | | | | | | | | | | What was in core/ is now moved to arch/stm34l4xxx/peripherals. This new directory is *supposed to* to contain raw header files defining just the pertinent register structures for the various peripherals. Peripheral management belongs somewhere in the new `kern/..` directories. This is not completely the case at the moment, so more refactoring needs to be done. What was sitting in the root has now been moved into the kern/ directory. The kern/ directory is to contain everything else other than raw device register definitions. The root of the kern/ tree is reserved for standard library-esque headers. The kern/<peripheral> directory contains management systems for that peripheral. (At the moment DMA is the only peripheral with a decent management system.) Preferably these peripheral systems should only include their correlating header in arch/stm34l4xxx/peripherals, and use other management systems for handling other peripherals rather than manipulating their raw registers directly. (Though this ideal will require much more critical mass of management systems.)
* Add the spi headers that define the SPI structure.Josh Rahm2020-11-21
|
* Fix mem.c to use the address of DATA_SEGMENT_START instead of the valueJosh Rahm2020-11-21
|
* Added halloc for allocating memory on the heap.Josh Rahm2020-11-21
| | | | | | | | | | | The new halloc() call allocates memory on the STM32l's SRAM2 starting right above the DATA section. The implementation uses a very-dense, albeit slower, linked-list allocation as opposed to fancy B-trees or something. However, the overhead is just 1 32-bit word per allocation and thus allows for reasonably dense memory-packing on the small 16K memory chip.
* Implemented DMA abstraction in the peri/dma.c source file.Josh Rahm2020-11-21
| | | | | This abstraction makes it much more intuitive to use the DMA features on the STM32L4 boards.
* Finally got a peripheral interrupt!Josh Rahm2020-11-20
|
* Change dma.h over to a regset() strategy.Josh Rahm2020-11-18
| | | | | | Apparently people really don't like bitfields in practice, so I have devised a compromise to retain some readability while using bitmasks instead by writing a regset() macro.
* Reorganize some file. Put thte core register libraries in a core/Josh Rahm2020-11-18
| | | | subdirectory.
* Got the DMA to send a simple message through UART2.Josh Rahm2020-11-16
|
* Add DMA header file which defines the DMA registers and addJosh Rahm2020-11-16
testing_harness with fake environment to allow testing on x86 development machines.