摘要:
riscv没有sev/wfe指令,当前无法在spinlock时省功耗,只能通过while循环不断检查条件。 本文分析linux内核下对于spinlock的实现,具体到RISC-V体系结构。由于RISC-V体系结构下目前只是简单的实现了一个基于TAS的最基本的spinlock,本文的另一个附加任务就是 阅读全文
摘要:
Five EmbedDev 关于riscv架构的嵌入式资料 https://five-embeddev.com/baremetal/intro/ 阅读全文
摘要:
1.Introduction 正如本篇文章所说,在非特权ISA设计中,我们试图消除对特定微体系结构特性的任何依赖(如如缓存线大小),或特权体系结构细节的任何依赖(如页面翻译)。这既是为了简单,也是为了给可选微架构或可选特权架构提供最大的灵活性。 term 名词 解释 core 一个组件如果具有取指单 阅读全文
摘要:
https://blog.segger.com/floating-point-face-off-part-2-comparing-performance/ 阅读全文
摘要:
什么是libgloss The libgloss directory contains code specific to particular platforms on which the library will be used, generally referred to as the Boar 阅读全文
摘要:
官网 https://github.com/riscv-collab/riscv-gnu-toolchain 编译器 基于RISC-V交叉编译器包括32bit和64bit两种类型,其中每种类型又包括裸机版本(newlib)和动态链接库版本(linux glibc) newlib ./configur 阅读全文
摘要:
astyle https://astyle.sourceforge.net/ 一篇比较好的中文介绍 https://blog.csdn.net/weixin_39950873/article/details/131635456 总结的一套配置 style_format: @find (dir) \ 阅读全文
摘要:
C语言运行库 任何一个C程序,它的背后都有一套庞大的代码来进行支撑,以使得该程序能够正常运行。这套代码至少包括入口函数,及其所依赖的函数所构成的函数集合。当然,它还理应包括各种标准库函数的实现。 这样的一个代码集合称之为运行时库(Runtime Library)。而C语言的运行库,即被称为C运行库( 阅读全文
摘要:
链接脚本由一系列语句组成,语句分两种,一种是命令语句,另外一种是赋值语句。链接脚本语法像C语言,主要有如下几点相似之处。 语句之间使用分号";"作为分割符。 原则上讲语句之间都要以";"作为分割符,但是对于命令语句来说也可以使用换行来结束该语句,对于赋值详吾句来说必须以";"结束 表达式与运算符 脚 阅读全文
摘要:
弱符号与强符号 说明 对于C/C++语言来说,编译器默认函数和初始化了的全局变量为强符号,未初始化的全局变量为弱符号。我们也可以通过GCC的"__attribute__((weak))"来定义任何一个强符号为弱符号。注意,强符号和弱符号都是针对定义来说的,不是针对符号的引用。 比如我们有下面这段程序 阅读全文