摘要: 目录MCU如何使用fopen fread fwrite fclose等函数?1 读写文件改为读写数组2 文件操作函数2.1 fopen()2.2 fclose()2.3 fread()2.4 fwrite()2.5 fgetc()2.6 fgets()2.7 fputc()2.8 fputs()2. 阅读全文
posted @ 2024-12-10 22:30 sureZ_ok 阅读(615) 评论(0) 推荐(0)
摘要: 目录1 内嵌汇编示例2 内嵌汇编样式2.1 模版关键字2.2 汇编指令列表2.3 输出操作数2.4 输入操作数2.5 破坏描述部分3 内嵌汇编使用示例 内嵌汇编(Inline Assembly),允许在高级语言(c或c++)中嵌入汇编语言,从而实现汇编语言和高级语言混合编程。 我之前的一篇学习笔记讲 阅读全文
posted @ 2024-10-07 22:04 sureZ_ok 阅读(1011) 评论(0) 推荐(0)
摘要: 目录1 常用的汇编器指令1.1 定义字符串变量1.2 定义整数变量1.3 定义一个函数2 其它汇编器指令2.1 条件编译与文件引用2.2 宏定义2.3 循环展开2.4 本地标签和程序跳转2 汇编源程序例子 了解了RISC-V的基础指令集以及ABI接口,我们就可以动手写汇编程序了,编写汇编程序有两种常 阅读全文
posted @ 2024-10-07 21:59 sureZ_ok 阅读(1520) 评论(0) 推荐(1)
摘要: 目录1 RISC-V 寄存器使用约定2 Caller-saved 与 Callee-saved2.1 对比几种不同的寄存器保存方式2.2 为什么要分caller-saved与callee-saved?2.3 caller-saved与callee-saved寄存器的灵活使用 寄存器使用约定告诉我们函 阅读全文
posted @ 2024-10-07 21:53 sureZ_ok 阅读(1489) 评论(0) 推荐(0)
摘要: 这一节讲解RISC-V中的栈帧。 1 C语言中的{}的秘密 函数执行的底层其实是操作寄存器,CPU的寄存器是有限的,为什么我们进行一系列函数调用后还能正确运行,这些函数之间是怎么协调使用寄存器的? 答案是:栈 函数之间能随意调用,还能顺利恢复现场,这个就是栈的功劳。为什么我们在代码中并没有操作栈呢? 阅读全文
posted @ 2024-10-07 19:29 sureZ_ok 阅读(921) 评论(0) 推荐(0)
摘要: 目录1 RISC-V ABI接口2 RISC-V 函数调用约定2.1 入参的传递2.2 返回值的传递 1 RISC-V ABI接口 ABI(Application Binary Interface)为应用程序二进制接口,它定义了应用程序之间或应用程序和操作系统之间进行二进制级交互时必须遵循的规则和约 阅读全文
posted @ 2024-10-07 19:17 sureZ_ok 阅读(1806) 评论(0) 推荐(1)
摘要: 一起学RISC-V汇编第8讲之RISC-V寻址方式及内存访问方式 目录一起学RISC-V汇编第8讲之RISC-V寻址方式及内存访问方式1 RISC-V的寻址方式1.1 立即数寻址1.2 寄存器寻址1.3 存储器寻址1.4 PC相对寻址2 内存访问方式 1 RISC-V的寻址方式 计算机常用的寻址方式 阅读全文
posted @ 2024-09-08 15:29 sureZ_ok 阅读(1676) 评论(0) 推荐(0)
摘要: 一起学RISC-V汇编第7讲之自定义指令 目录一起学RISC-V汇编第7讲之自定义指令1 硬件实现1.1 确定opcode1.2 确定指令类型1.3 确定指令编码1.4 实现硬件逻辑2 编译器支持2.1 使用.insn模板2.2 修改binutils的方法 为了方便用户对RISC-V进行扩展,RIS 阅读全文
posted @ 2024-09-08 15:23 sureZ_ok 阅读(1799) 评论(2) 推荐(0)
摘要: 一起学RISC-V汇编第6讲之伪指令 伪指令是方便程序员使用,相当于为实际指令取的别名,编程时可以直接使用伪指令。 上一章已经列出了RISC-V中的伪指令,只是比较分散,这一章以另一个视角重新整理一下伪指令,表格来源于《RISC-V 开放架构设计之道 1.0.0》 1 RISC-V伪指令列表 伪指令 阅读全文
posted @ 2024-09-08 15:18 sureZ_ok 阅读(1454) 评论(0) 推荐(0)
摘要: 一起学RISC-V汇编第5讲之常用指令及伪指令列表 目录一起学RISC-V汇编第5讲之常用指令及伪指令列表1 RISC-V指令命名2 RVI指令集2.1 内存操作指令2.2 算术指令2.3 移位指令2.4 逻辑指令2.5 比较-置位指令2.6 分支指令2.7 跳转指令2.8 同步指令2.9 环境指令 阅读全文
posted @ 2024-09-08 14:53 sureZ_ok 阅读(2817) 评论(0) 推荐(0)