- 博客(27)
- 资源 (1)
- 收藏
- 关注
原创 【从嵌入式视角学习香山处理器】六、NutShell代码结构(乱画的框图)
文章目录一、前言二、简单粗暴版:最终成品的框图三、不要太凌乱版:去掉连线后的框图一、前言这是从上一篇文章《【从嵌入式视角学习香山处理器】五、香山开发工作流实践1:主要子模块工程之间的关系》引出的对果壳核(NutShell)——一个简单入门级的risc-v SoC项目的学习总结文章。主要内容是对果壳的chisel工程进行分析,尝试展示出几个问题的答案:1. 果壳核里有哪些模块?2. 这些模块之间的相互连接连接关系是怎样的?这篇文章暂不涉及/不讨论的内容:不讨论各个模块是如何实现的(比如Simp
2022-04-17 12:56:44
822
2
原创 【从嵌入式视角学习香山处理器】五、香山开发工作流实践1:主要子模块工程之间的关系
文章目录一、前言二、子模块工程简介三、子模块工程关系:步骤说明:四、疑问与回答:一、前言这篇文章梳理了xs-env(https://github.com/OpenXiangShan/xs-env)代码工程下,几个和香山开发相关的四个子模块(submodule)工程之间的使用关系:nexus-am、NEMU、XiangShan、Nutshell。二、子模块工程简介NEMU:NJU Emulator,来自南京大学的是一个简单但完整的全系统模拟器, 目前支持x86, mips32, riscv32,
2022-03-18 23:48:55
1307
翻译 【从嵌入式视角学习香山处理器】三、了解类似的芯片项目——RocketChip
文章目录一、前言二、简介三、RocketChip介绍一、前言这篇文章主要是记录下我最近看到RocketChip项目的官方介绍文档。二、简介RocketChip是一个比香山发起得早的Risc-V开源芯片(SoC)项目。它本身并不直接创建SoC的各个模块的实例,包括cache、TLB、各种内部总线、FPU,甚至是加速器。而是创建各种生成器(generator),再利用生成器去生成各个部件的实例。更进一步,RocketChip不负责创建所有的部件生成器,而是留给设计者去定义自己的SoC硬件“包含什么部
2022-01-16 00:47:53
1292
原创 【从嵌入式视角学习香山处理器】二、调试起来是什么样的?(体验GUI工具)
文章目录一、前言一、前言最小配置的香山核(CONFIG=Minimal)编译完后,已经可以继续按照readme指引试用下两个GUI工具了。目的不在于正式开始分析代码、功能啥的,而是期望:通过这种可视化的方式,让初学者体验到自己的一顿折腾是有意义的,非常有助于在入门阶段保持学习的信心。...
2021-12-09 01:00:01
1139
原创 【从嵌入式视角学习香山处理器】一、如何开始?(开发环境搭建)
一、前言当你看到这篇文章的时候,可能多少已经听说一点关于“香山处理器”项目的描述:它是一个完全开源的CPU设计项目,由中科院的老师和同学们发起并维护;如果说香山项目有“官方组织”,那应该就是中科院的师生们了。Github仓库在这里:https://github.com/OpenXiangShan。另外还有个Gitee仓库:https://gitee.com/OpenXiangShan。这篇文章的内容主要为了记录我在搭建环境过程中踩过的坑,以及怎么解决的。包括:github代码克隆不下来相关工具
2021-11-30 23:27:37
2748
3
原创 《视觉SLAM十四讲》备忘录
前言前三章实践过程中比较重要的内容。从Pangolin库的使用过程中了解其具体使用方法及cmake的命令编译方式:使用Pangolin:在工程的CMakeList.txt下添加以下语句:find_package(Pangolin)target_link_libraries(<工程名>, ${Pangolin_LIBRARIES})命令使用cmake进行编译:(参考Pangolin的README.md)创建build文件夹,在里面进行操作:cd <工程根目录>
2021-05-01 23:27:19
289
2
原创 将本地已有的git仓库推送到github
在本地搞了一个keil代码工程,经过一段时间的编辑有了几个commit,最近想要推送(发布)到github,执行git push xxx命令提示各种错误。刚刚终于成功推送,得益于另一篇文章。这里记录一下正确姿势:先登录自己的github,新建一个项目:比如我在自己的用户MapleLeafFall下新建bldc_keil的公开仓库(public repo);重点:注意新建bldc_keil时不勾选“添加Readme.md”之类的选项;git remote add origin git@github.
2021-04-17 19:28:51
461
原创 [嵌入式Linux]uboot启动kernel的过程分析
这篇文章结合JZ2440v3开发板和uboot1.1.6代码讲述uboot如何启动内核(kernel版本为linux2.2.26,但实际没讲到和kernel代码有关的阶段)
2019-11-18 22:16:57
1105
原创 [C/C++]Hex文件和Bin文件的关系
Hex文件和Bin文件的关系背景Hex文件的样子Bin文件的样子两个文件大小对比什么时候用hex什么时候用bin呢?背景从学习单片机以来,在Keil下的烧写都是把.hex文件烧写到单片机内部Flash,对于.hex文件的格式和烧写流程都没有深究。直到需要了解IAP(In Application Programming,即脱离JLink等烧写器进行在线升级)的时候,才发现.hex文件不能作为被直...
2019-09-13 21:32:39
1799
原创 [C/C++]谈谈我对STM32启动过程的理解
我对STM32启动过程的理解从*.s文件看程序启动过程参考资料*.s文件干了什么Cortex M3核和STM32单片机启动顺序的关系从*.s文件看程序启动过程如果没记错的话,C语言中我们看代码一定都是从main()看起吧?因为“main()函数是程序的入口”,大家都这么说。但实际上如果我们从硬件上电复位看起,它并不是直接来到main()的——对于stm32单片机来说它至少还要把工程文件中对应的...
2019-08-09 18:28:15
998
原创 [仿真]PMSM矢量控制——滑模速度环
PMSM在Simulink下的FOC滑模速度环仿真摘要PMSM的FOC模型——PI速度环PMSM的FOC模型——滑模速度环新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的...
2019-07-23 20:38:01
13822
34
原创 [教程]开源电调VESC在Win7 64bit下开发环境的搭建(失败)
从入门到放弃的过程为什么要弄这个为什么要弄这个?VESC是什么?硬件准备软件准备IDE方案2的验证硬件的坑软件的坑没有写出来的细节经过一周多的查找资料和尝试,VESC开源电调在Window下的开发环境搭建最后还是失败了。主要问题有:原作者没有对windows下的开发提供教程支持(他本人一直使用Linux)、原作者6年前用的Eclipse插件现在已不被支持、硬件上SWD接口不能...
2019-07-23 12:10:01
9593
11
原创 test
经过一周多的查找资料和尝试,VESC开源电调在Window下的开发环境搭建算是失败了。主要问题有:原作者没有对windows下开发固件提供教程支持(他本人一直在Linux下做开发)、原作者6年前用的Eclipse插件现在已不被支持、硬件上SWD接口不能成功连接(原因未知)。
2019-07-17 15:36:46
744
转载 [备份]优快云-Markdown欢迎页的示例
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...
2019-07-17 09:45:34
465
转载 【转】几种经典的滤波算法
以下是十种经典滤波算法的简介,后面有C实现程序。我只看了简介部分,程序部分未验证1、限幅滤波法(又称程序判断滤波法) A、方法: 根据经验判断,确定两次采样允许的最大偏差值(设为A) 每次检测到新值时判断: 如果本次值与上次值之差<=A,则本次值有效 如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本
2016-07-28 10:39:06
1293
转载 STM32 硬件I2C 到底是不是个坑?
/********************************************************************************* @author Maoxiao Hu* @version V1.0.0* @date May-2015********************************************************
2016-07-28 10:04:58
9017
5
转载 static全局变量与普通的全局变量的区别/static局部变量和普通局部变量的区别/static函数与普通函数的区别
全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用
2016-05-13 14:48:10
511
原创 “*** error 65: access violation at 0x0000000C : no 'read' permission”错误的解决
摘要:STM32F407VG工程进入软件仿真时,出现*** error 65: access violation at 0x0000000C : no 'read' permission错误。当点击RUN按钮时会重复提示*** error 65: access violation at 0x00000000 : no 'execute/read' permission的错误。解决步骤: 1. Op
2016-04-04 19:28:10
26771
11
转载 单片机调试——《浅谈工程师的调试法宝(四)——RTT的应用》
摘要: 我们前三篇的文档中介绍的调试方法,都因为各种原因而不能在所有的MCU上做到通用,而今天这一切将发生改变。现在就一起来看一下这个神奇的调试工具-RTT。 RTT( Real Time Terminal)是SEGGER公司新出的可以在嵌入式应用中与用户进行交互的实时终端。J-Link驱动4.90之后的版本都有这个软件哦。 用RTT可以从目标MCU上输出信息的同时也可以非常高速的
2016-03-30 22:19:34
5369
原创 Keil for ARM-MDK的使用
概念:μVision:是Keil的文本编辑界面。目前的μVision支持代码自动补全。如果想使用外部的文本编辑器,可以在Tools-Customize Tools Menu设置。MDK:就是Keil for ARM。全称Microcontroller Development Kit。具体可以参考这里的说明。调试方法:调试方法分两种:软件仿真和硬件调试,即Simulator和Debugger。
2016-03-28 21:24:26
4553
原创 笔记-一些MOS管和栅驱
简介:目前收集到的一些MOS管和栅极驱动(NVIC)的重要参数,主要是AO和IR两个牌子。当作一个笔记以供以后参考(但不限于从这里选)。 Nmos管型号 Vds(V) Id(A) Rds_on(mΩ)(10V) 续流二极管电流(A) 备注 AO4248 60 4.5 56 - AO4616 30 8 20 - AO4806
2016-03-27 20:05:42
2680
原创 连接器
简介:收集到的一些连接器型号,在这里记录一下主要参数以供以后选型作参考(也就是简单看一下,并不限于从这里选)。目前只有JST和MOLEX两个牌子。 型号 电流(A) 耐压(V) 4P卧贴尺寸 pitch 引脚数 4P立插尺寸 贴\插类型 带扣 BOSS eACHF 2.5 50 7.3x4.95x1.43 1.2 3,4,6 -
2015-12-15 22:32:33
700
原创 mos管使用小知识
mos管使用小知识1.栅极和源极之间泄放电阻的作用:电路中的mos管VT3工作在开关状态下,VT1和VT2轮流导通,使得mos管VT3的 栅极等效电容 处于充电、放电的交替状态。如果电路断电时正好是mos管VT3栅极等效电容为充满电状态,由于电路已断电,这样VT1和VT2截止,VT3栅极等效电容所充电荷 没有放电回路 ,使VT3栅极电场仍然能保持较长时间(因为mos管的输入阻抗相当大),如果这时再
2015-12-11 20:52:19
2343
ULINK2固件(V1.42到V2.01)+FlashMagic烧录软件
2016-04-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人