上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 164 下一页

2021年12月14日

摘要: eth: eth@0{ compatible = "cdns,macb"; interrupt-parent = <&plic0>; interrupts = <65>, <66>; reg = <0x0 0x83040000 0x0 0x4000>; #local-mac-address = [0 阅读全文
posted @ 2021-12-14 20:16 tycoon3 阅读(232) 评论(0) 推荐(0)
摘要: 特权架构 处理器在架构上一般都会有几种特权模式,比如x86架构有“ring0~ring3”4种级别,一般操作系统内核和驱动运行在ring0级别,也就是最高级别,而普通的应用程序运行在ring3级别,也就是权限最低的级别;再比如arm架构有7种处理器模式,操作系统一般运行在Supervisor模式,而 阅读全文
posted @ 2021-12-14 11:51 tycoon3 阅读(10592) 评论(0) 推荐(2)
摘要: 正常退出 如果想从qemu中退出到命令行,先按住“ctrl+a”,然后再按“x”键即可 通过kill 退出 [root@centos7 lesson10]# ps -elf | grep qemu 2 S root 92555 79657 98 80 0 - 5421 poll_s 21:53 pt 阅读全文
posted @ 2021-12-14 10:57 tycoon3 阅读(619) 评论(0) 推荐(0)
摘要: 我们知道有些寄存器只能在m模式下设置和访问,如果s模式想要使用某个功能,只能先回到m模式然后再进行相应的设置。OpenSBI定义了s模式和m模式之间功能调用的接口,s模式通过执行“ecall”指令回到m模式使用相关功能,在本章节和下一章节我们将通过类似的方式来学习s模式下如何使用ecall和m模式下 阅读全文
posted @ 2021-12-14 10:12 tycoon3 阅读(5897) 评论(1) 推荐(0)

2021年12月13日

摘要: 1. 中断初始化 S模式下的中断初始化和M模式基本类似,只不过操作的是S模式下的CSR寄存器,如下所示。 static void supervisor_trap_init(void) { //this stack is used for supervisor_trap_entry in entry. 阅读全文
posted @ 2021-12-13 16:02 tycoon3 阅读(850) 评论(0) 推荐(0)
摘要: M模式切换到S模式 从m模式切换到s模式下的代码其实也不是很多,主要是设置"mstatus"和“mepc”寄存器。其实从高特权级别切换到低特权级的思路在各个架构下都差不多,从低级别到高级别只有一种方式那就是产生了中断或者异常,从而进入高级别进行中断和异常处理,然后在中断中再返回到低级别。那么第一次从 阅读全文
posted @ 2021-12-13 14:59 tycoon3 阅读(980) 评论(0) 推荐(0)
摘要: 中断(中断返回)本质上也是一种跳转,只不过还需要附加一些读写CSR寄存器的操作。 RISC-V中断分为两种类型,一种是同步中断,即ECALL、EBREAK等指令所产生的中断,另一种是异步中断,即GPIO、UART等外设产生的中断。 中断号保存在 mcause 寄存器中,最高位是 1 说明是同步异常, 阅读全文
posted @ 2021-12-13 12:08 tycoon3 阅读(6393) 评论(2) 推荐(1)
摘要: .global _start _start: MOV r4,#1 // r4=1 1: // Local label ADD r4,r4,#1 // Increment r4 CMP r4,#0x5 // if r4 < 5... BLT 1b // ...branch backwards to l 阅读全文
posted @ 2021-12-13 10:52 tycoon3 阅读(102) 评论(0) 推荐(0)

2021年12月11日

摘要: 1、什么是堆栈? 在嵌入式的世界里,堆栈通常指的是栈,严格来说,堆栈分为堆(Heap)和栈(Stack)。 栈(Stack): 一种顺序数据结构,满足后进先出(Last-In / First-Out)的原则,由编译器自动分配和释放。使用一级缓存,调用完立即释放。 堆(Heap):类似于链表结构,可对 阅读全文
posted @ 2021-12-11 15:04 tycoon3 阅读(969) 评论(0) 推荐(0)
摘要: 如何优化 memcpy 函数 Linux 内核用到了许多方式来加强性能以及稳定性,本文探讨的 memcpy 的汇编实现方式就是其中的一种,memcpy 的性能是否强大,拷贝延迟是否足够低都直接影响着整个系统性能。通过对拷贝函数的理解可以加深对整个系统设计的一个理解,同时提升自身技术实力。 罗马不是一 阅读全文
posted @ 2021-12-11 10:53 tycoon3 阅读(4798) 评论(0) 推荐(0)
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 164 下一页

导航