User:Pmcg521
From REU@MU
Patrick J. McGee
Error creating thumbnail: Unable to save thumbnail to destination |
|
Logs
All specific progress concerning code can be viewed on our GitHub (multiple branches used): https://github.com/tomlazar/xinu/tree/feature/multicore
Week 1: May 30-June 2 |
---|
Began attempts to boot the full version of Embedded Xinu kernel with Raspberry Pi 3 |
Researched a Linaro Cross-Compiler to use for its Cortex A-53 ARM processor with ARMv8 architecture |
Drew diagrams of the boot sequence and compilation for better understanding of the Pi 3's mechanisms |
Traced through the dynamics of written Assembly code in the full research version of Xinu |
Week 2: June 5-9 |
Tested the LED program in updated Assembly code. Began testing the Serial Port Transceiver driver for the Pi 3 |
Read about Raspberry Pi bare metal programming via online sources |
Read about how the Raspberry Pi 3 controls the frequency of its UART pins |
Read ARM processor documentation about configuring UART clock frequency |
Used the oscilloscope in attempt to obtain the clock frequency of the UART pin |
Week 3: June 12-16 |
Read an online textbook about the ARM processor of the Pi 3. |
Successfully controlled the PL011 UART with a 48MHz frequency. Began porting full version of Xinu. |
Read ARM64 documentation on registers to use with process interrupt handling. |
Began working on the context switch for the 64-bit architecture. |
Finishing work on the files necessary for context switching and rescheduling. |
Week 4: June 19-23 |
Continue working on the boot functions of our implementation. Finished the Research Conduct course. |
Read about register manipulation in the ARM guide. Continue working on process creation. |
Begin researching physical memory space in the Pi 3. |
Read guides to porting from ARM32 to ARM64. Digging deep for a solution to a memory allocation problem. |
Read about ATAGS and what steps need to be taken to ensure the proper accessible RAM amount. |
Week 5: June 26-30 |
Narrowed down the memory issue to an Aarch64-specific register-load requirement. Working on the fix. |
Fixed memory issue - now allocating nearly all available memory. |
Presentation by Dr. Kim Factor on tips to create a good research poster. |
Began formulating research poster. Working on process queue structure. |
Continue outlining research paper for submission to EWiLi Embedded Systems conference. |
Week 6: July 3-7 |
Major change of working state: switch from 64-bit to 32-bit for compatibility and teachability reasons. |
Migrating all code from non-working 64-bit to working 32-bit. |
Processes create and context switch among one core. Push to resolve multiple cores. |
Week 7: July 10-14 |
Expanding startup code to include change in privilege level. |
Finished outlining poster. Tested ethernet driver and multiple core threading throughout the week. |
Week 8: July 17-21 |
Studied simple Linux-style multi-core scheduling algorithms using mutual exclusion. |
Created a method of scheduling across multiple cores with Xinu. |
Tested multicore synchronization with atomic instructions. |
Week 9: July 24-28 |
Studied technical documentation on how Raspberry Pi CPU mailboxes have worked in the past. |
Test core mailboxes and work out kinks corresponding to core setup. |
Finished final version of research poster: Utilizing Multi-core threading on Embedded Xinu. |
Finished research paper and submitted it to EWiLi conference. |
Week 10: July 3-7 |
Expanded material of final presentation. |
Presented my research poster alongside colleagues. Viewed and discussed posters outside my discipline. |
Watched my fellow researchers' presentations and continued making notes of guidelines. |
Gave my final formal research presentation on the final day of the REU. |