Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RISC-V from scratch 4: Creating a function prologue for our UART driver (2 / 3) #13

Open
utterances-bot opened this issue Oct 15, 2019 · 8 comments

Comments

@utterances-bot
Copy link

RISC-V from scratch 4: Creating a function prologue for our UART driver (2 / 3)

A post continuing implementation of an NS16550A UART driver in RISC-V assembly. Function prologues are explained in depth and implemented for uart_get_char and uart_put_char, diagramming changes to the stack and registers instruction-by-instruction. Topics such as ABIs, calling conventions, stack frames, and more are also discussed.

https://twilco.github.io/riscv-from-scratch/2019/07/28/riscv-from-scratch-4.html

Copy link

ppykalo commented Oct 15, 2019

Great series. Can't wait to read next post :) Is there any chance you would cover RISC-V interrupt controllers in some post?

@twilco
Copy link
Owner

twilco commented Oct 15, 2019

Hey @ppykalo — so glad you enjoyed it! Interrupt controllers do seem like a fun topic to explore, so I'd say there's a good chance I cover them at some point.

@sakuv3
Copy link

sakuv3 commented May 9, 2020

Man you deserve alot of credits for all this work! it helped me ALOT in understanding riscv assembly and the use in a virtual machine ! Thanks !

@twilco
Copy link
Owner

twilco commented May 10, 2020

Thanks for the kind words, @sakuv3! Glad you found it useful.

Copy link

Great series of articles, waiting for the next article...

Copy link

can't wait to see the next post!!!

Copy link

when to post the next one?

Copy link

Hello, thank you for this lesson.
However, we never specified in RAM where the stack is located inside the linker script. Any idea on the how does this work without doing so?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants