Difference between revisions of "User:Pmcg521"
From REU@MU
Line 43: | Line 43: | ||
<tr><td> Drew diagrams of the boot sequence and compilation for better understanding of the Pi 3's mechanisms</td></tr> | <tr><td> Drew diagrams of the boot sequence and compilation for better understanding of the Pi 3's mechanisms</td></tr> | ||
<tr><td> Traced through the dynamics of written Assembly code in the full research version of Xinu</td></tr> | <tr><td> Traced through the dynamics of written Assembly code in the full research version of Xinu</td></tr> | ||
− | <tr><th style="font-family:verdana; border-bottom: 2px solid #000000; border-top: 2px solid #000000">'''Week 2: June 5-9'''</th></tr> | + | <tr><th style="font-family:verdana; border-bottom: 2px solid #000000; border-top: 2px solid #000000; background: #edb52a">'''Week 2: June 5-9'''</th></tr> |
<tr><td> Tested the LED program in updated Assembly code. Began testing the Serial Port Transceiver driver for the Pi 3</td></tr> | <tr><td> Tested the LED program in updated Assembly code. Began testing the Serial Port Transceiver driver for the Pi 3</td></tr> | ||
<tr><td> Read about Raspberry Pi bare metal programming via online sources</td></tr> | <tr><td> Read about Raspberry Pi bare metal programming via online sources</td></tr> | ||
Line 49: | Line 49: | ||
<tr><td> Read ARM processor documentation about configuring UART clock frequency</td></tr> | <tr><td> Read ARM processor documentation about configuring UART clock frequency</td></tr> | ||
<tr><td> Used the oscilloscope in attempt to obtain the clock frequency of the UART pin</td></tr> | <tr><td> Used the oscilloscope in attempt to obtain the clock frequency of the UART pin</td></tr> | ||
− | <tr><th style="font-family:verdana; border-bottom: 2px solid #000000; border-top: 2px solid #000000">'''Week 3: June 12-16'''</th></tr> | + | <tr><th style="font-family:verdana; border-bottom: 2px solid #000000; border-top: 2px solid #000000; background: #edb52a">'''Week 3: June 12-16'''</th></tr> |
<tr><td> Read an online textbook about the ARM processor of the Pi 3. </td></tr> | <tr><td> Read an online textbook about the ARM processor of the Pi 3. </td></tr> | ||
<tr><td> Successfully controlled the PL011 UART with a 48MHz frequency. Began porting full version of Xinu.</td></tr> | <tr><td> Successfully controlled the PL011 UART with a 48MHz frequency. Began porting full version of Xinu.</td></tr> | ||
Line 55: | Line 55: | ||
<tr><td> Began working on the context switch for the 64-bit architecture.</td></tr> | <tr><td> Began working on the context switch for the 64-bit architecture.</td></tr> | ||
<tr><td> Finishing work on the files necessary for context switching and rescheduling.</td></tr> | <tr><td> Finishing work on the files necessary for context switching and rescheduling.</td></tr> | ||
− | <tr><th style="font-family:verdana; border-bottom: 2px solid #000000; border-top: 2px solid #000000">'''Week 4: June 19-23'''</th></tr> | + | <tr><th style="font-family:verdana; border-bottom: 2px solid #000000; border-top: 2px solid #000000; background: #edb52a">'''Week 4: June 19-23'''</th></tr> |
<tr><td> Continue working on the boot functions of our implementation. Finished the Research Conduct course.</td></tr> | <tr><td> Continue working on the boot functions of our implementation. Finished the Research Conduct course.</td></tr> | ||
<tr><td> Read about register manipulation in the ARM guide. Continue working on process creation.</td></tr> | <tr><td> Read about register manipulation in the ARM guide. Continue working on process creation.</td></tr> | ||
Line 61: | Line 61: | ||
<tr><td> Read guides to porting from ARM32 to ARM64. Digging deep for a solution to a memory allocation problem.</td></tr> | <tr><td> Read guides to porting from ARM32 to ARM64. Digging deep for a solution to a memory allocation problem.</td></tr> | ||
<tr><td> Read about ATAGS and what steps need to be taken to ensure the proper accessible RAM amount.</td></tr> | <tr><td> Read about ATAGS and what steps need to be taken to ensure the proper accessible RAM amount.</td></tr> | ||
− | <tr><th style="font-family:verdana; border-bottom: 2px solid #000000; border-top: 2px solid #000000">'''Week 5: June 26-30'''</th></tr> | + | <tr><th style="font-family:verdana; border-bottom: 2px solid #000000; border-top: 2px solid #000000; background: #edb52a">'''Week 5: June 26-30'''</th></tr> |
<tr><td> Narrowed down the memory issue to an Aarch64-specific register-load requirement. Working on the fix.</td></tr> | <tr><td> Narrowed down the memory issue to an Aarch64-specific register-load requirement. Working on the fix.</td></tr> | ||
<tr><td> Fixed memory issue - now allocating nearly all available memory.</td></tr> | <tr><td> Fixed memory issue - now allocating nearly all available memory.</td></tr> | ||
Line 67: | Line 67: | ||
<tr><td> Began formulating research poster. Working on process queue structure.</td></tr> | <tr><td> Began formulating research poster. Working on process queue structure.</td></tr> | ||
<tr><td> Continue outlining research paper for submission to EWiLi Embedded Systems conference.</td></tr> | <tr><td> Continue outlining research paper for submission to EWiLi Embedded Systems conference.</td></tr> | ||
− | <tr><th style="font-family:verdana; border-bottom: 2px solid #000000; border-top: 2px solid #000000">'''Week 6: July 3-7'''</th></tr> | + | <tr><th style="font-family:verdana; border-bottom: 2px solid #000000; border-top: 2px solid #000000; background: #edb52a">'''Week 6: July 3-7'''</th></tr> |
<tr><td> Major change of working state: switch from 64-bit to 32-bit for compatibility and teachability reasons.</td></tr> | <tr><td> Major change of working state: switch from 64-bit to 32-bit for compatibility and teachability reasons.</td></tr> | ||
<tr><td> Migrating all code from non-working 64-bit to working 32-bit.</td></tr> | <tr><td> Migrating all code from non-working 64-bit to working 32-bit.</td></tr> | ||
<tr><td> Processes create and context switch among one core. Push to resolve multiple cores.</td></tr> | <tr><td> Processes create and context switch among one core. Push to resolve multiple cores.</td></tr> | ||
− | <tr><th style="font-family:verdana; border-bottom: 2px solid #000000; border-top: 2px solid #000000">'''Week 7: July 10-14'''</th></tr> | + | <tr><th style="font-family:verdana; border-bottom: 2px solid #000000; border-top: 2px solid #000000; background: #edb52a">'''Week 7: July 10-14'''</th></tr> |
<tr><td> Expanding startup code to include change in privilege level.</td></tr> | <tr><td> Expanding startup code to include change in privilege level.</td></tr> | ||
<tr><td> Finished outlining poster. Tested ethernet driver and multiple core threading throughout the week.</td></tr> | <tr><td> Finished outlining poster. Tested ethernet driver and multiple core threading throughout the week.</td></tr> | ||
− | <tr><th style="font-family:verdana; border-bottom: 2px solid #000000; border-top: 2px solid #000000">'''Week 8: July 17-21'''</th></tr> | + | <tr><th style="font-family:verdana; border-bottom: 2px solid #000000; border-top: 2px solid #000000; background: #edb52a">'''Week 8: July 17-21'''</th></tr> |
<tr><td> Studied simple Linux-style multi-core scheduling algorithms using mutual exclusion.</td></tr> | <tr><td> Studied simple Linux-style multi-core scheduling algorithms using mutual exclusion.</td></tr> | ||
<tr><td> Created a method of scheduling across multiple cores with Xinu.</td></tr> | <tr><td> Created a method of scheduling across multiple cores with Xinu.</td></tr> | ||
<tr><td> Tested multicore synchronization with atomic instructions.</td></tr> | <tr><td> Tested multicore synchronization with atomic instructions.</td></tr> | ||
− | <tr><th style="font-family:verdana; border-bottom: 2px solid #000000; border-top: 2px solid #000000">'''Week 9: July 24-28'''</th></tr> | + | <tr><th style="font-family:verdana; border-bottom: 2px solid #000000; border-top: 2px solid #000000; background: #edb52a">'''Week 9: July 24-28'''</th></tr> |
<tr><td> Studied technical documentation on how Raspberry Pi CPU mailboxes have worked in the past.</td></tr> | <tr><td> Studied technical documentation on how Raspberry Pi CPU mailboxes have worked in the past.</td></tr> | ||
<tr><td> Test core mailboxes and work out kinks corresponding to core setup.</td></tr> | <tr><td> Test core mailboxes and work out kinks corresponding to core setup.</td></tr> | ||
<tr><td> Finished final version of research poster: Utilizing Multi-core threading on Embedded Xinu.</td></tr> | <tr><td> Finished final version of research poster: Utilizing Multi-core threading on Embedded Xinu.</td></tr> | ||
<tr><td> Finished research paper and submitted it to EWiLi conference.</td></tr> | <tr><td> Finished research paper and submitted it to EWiLi conference.</td></tr> | ||
− | <tr><th style="font-family:verdana; border-bottom: 2px solid #000000; border-top: 2px solid #000000">'''Week 10: July 31-August 4'''</th></tr> | + | <tr><th style="font-family:verdana; border-bottom: 2px solid #000000; border-top: 2px solid #000000; background: #edb52a">'''Week 10: July 31-August 4'''</th></tr> |
<tr><td> Expanded material of final presentation.</td></tr> | <tr><td> Expanded material of final presentation.</td></tr> | ||
<tr><td> Presented my research poster alongside colleagues. Viewed and discussed posters outside my discipline.</td></tr> | <tr><td> Presented my research poster alongside colleagues. Viewed and discussed posters outside my discipline.</td></tr> |
Revision as of 19:49, 7 August 2017
Patrick J. McGee
Error creating thumbnail: Unable to save thumbnail to destination |
|
Logs
All specific progress concerning code can be viewed on our GitHub repository (commits across multiple branches).
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 31-August 4 |
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. |