<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[哎呦不错哦！]]></title><description><![CDATA[也就笔记啊心得啊什么的啦~~~]]></description><link>https://blog.youkuaiyun.com/Maple_Leaf_15</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Maple_Leaf_15]]></copyright><item><title><![CDATA[【从嵌入式视角学习香山处理器】六、NutShell代码结构（乱画的框图）]]></title><link>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/124227915</link><guid>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/124227915</guid><author>Maple_Leaf_15</author><pubDate>Sun, 17 Apr 2022 12:56:44 +0800</pubDate><description><![CDATA[文章目录一、前言二、简单粗暴版：最终成品的框图三、不要太凌乱版：去掉连线后的框图
一、前言
这是从上一篇文章《【从嵌入式视角学习香山处理器】五、香山开发工作流实践1：主要子模块工程之间的关系》引出的对果壳核(NutShell)——一个简单入门级的risc-v SoC项目的学习总结文章。
主要内容是对果壳的chisel工程进行分析，尝试展示出几个问题的答案：
1. 果壳核里有哪些模块？
2. 这些模块之间的相互连接连接关系是怎样的？
这篇文章暂不涉及/不讨论的内容：

不讨论各个模块是如何实现的（比如Simp]]></description><category></category></item><item><title><![CDATA[【从嵌入式视角学习香山处理器】五、香山开发工作流实践1：主要子模块工程之间的关系]]></title><link>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/123585188</link><guid>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/123585188</guid><author>Maple_Leaf_15</author><pubDate>Fri, 18 Mar 2022 23:48:55 +0800</pubDate><description><![CDATA[文章目录一、前言二、子模块工程简介三、子模块工程关系：步骤说明：四、疑问与回答：
一、前言
这篇文章梳理了xs-env（https://github.com/OpenXiangShan/xs-env）代码工程下，几个和香山开发相关的四个子模块（submodule）工程之间的使用关系：nexus-am、NEMU、XiangShan、Nutshell。

二、子模块工程简介

NEMU：NJU Emulator，来自南京大学的是一个简单但完整的全系统模拟器, 目前支持x86, mips32, riscv32, ]]></description><category></category></item><item><title><![CDATA[【从嵌入式视角学习香山处理器】四、Chisel语言基础]]></title><link>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/123160050</link><guid>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/123160050</guid><author>Maple_Leaf_15</author><pubDate>Sun, 27 Feb 2022 22:08:54 +0800</pubDate><description><![CDATA[chisel官方文档的笔记]]></description><category></category></item><item><title><![CDATA[【从嵌入式视角学习香山处理器】三、了解类似的芯片项目——RocketChip]]></title><link>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/122518301</link><guid>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/122518301</guid><author>Maple_Leaf_15</author><pubDate>Sun, 16 Jan 2022 00:47:53 +0800</pubDate><description><![CDATA[文章目录一、前言二、简介三、RocketChip介绍
一、前言
这篇文章主要是记录下我最近看到RocketChip项目的官方介绍文档。

二、简介
RocketChip是一个比香山发起得早的Risc-V开源芯片（SoC）项目。它本身并不直接创建SoC的各个模块的实例，包括cache、TLB、各种内部总线、FPU，甚至是加速器。而是创建各种生成器（generator），再利用生成器去生成各个部件的实例。
更进一步，RocketChip不负责创建所有的部件生成器，而是留给设计者去定义自己的SoC硬件“包含什么部]]></description><category></category></item><item><title><![CDATA[【从嵌入式视角学习香山处理器】二、调试起来是什么样的？（体验GUI工具）]]></title><link>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/121781393</link><guid>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/121781393</guid><author>Maple_Leaf_15</author><pubDate>Thu, 09 Dec 2021 01:00:01 +0800</pubDate><description><![CDATA[文章目录一、前言
一、前言
最小配置的香山核（CONFIG=Minimal）编译完后，已经可以继续按照readme指引试用下两个GUI工具了。目的不在于正式开始分析代码、功能啥的，而是期望：通过这种可视化的方式，让初学者体验到自己的一顿折腾是有意义的，非常有助于在入门阶段保持学习的信心。


...]]></description><category></category></item><item><title><![CDATA[【从嵌入式视角学习香山处理器】一、如何开始？（开发环境搭建）]]></title><link>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/121622260</link><guid>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/121622260</guid><author>Maple_Leaf_15</author><pubDate>Tue, 30 Nov 2021 23:27:37 +0800</pubDate><description><![CDATA[一、前言
当你看到这篇文章的时候，可能多少已经听说一点关于“香山处理器”项目的描述：它是一个完全开源的CPU设计项目，由中科院的老师和同学们发起并维护；如果说香山项目有“官方组织”，那应该就是中科院的师生们了。
Github仓库在这里：https://github.com/OpenXiangShan。
另外还有个Gitee仓库：https://gitee.com/OpenXiangShan。
这篇文章的内容主要为了记录我在搭建环境过程中踩过的坑，以及怎么解决的。包括：

github代码克隆不下来
相关工具]]></description><category></category></item><item><title><![CDATA[《视觉SLAM十四讲》备忘录]]></title><link>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/116334303</link><guid>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/116334303</guid><author>Maple_Leaf_15</author><pubDate>Sat, 01 May 2021 23:27:19 +0800</pubDate><description><![CDATA[前言
前三章实践过程中比较重要的内容。


从Pangolin库的使用过程中了解其具体使用方法及cmake的命令编译方式：

使用Pangolin：
在工程的CMakeList.txt下添加以下语句：
find_package(Pangolin)
target_link_libraries(&lt;工程名&gt;, ${Pangolin_LIBRARIES})
命令使用cmake进行编译：（参考Pangolin的README.md）
创建build文件夹，在里面进行操作：
cd &lt;工程根目录&gt;
]]></description><category></category></item><item><title><![CDATA[将本地已有的git仓库推送到github]]></title><link>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/115800123</link><guid>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/115800123</guid><author>Maple_Leaf_15</author><pubDate>Sat, 17 Apr 2021 19:28:51 +0800</pubDate><description><![CDATA[在本地搞了一个keil代码工程，经过一段时间的编辑有了几个commit，最近想要推送（发布）到github，执行git push xxx命令提示各种错误。
刚刚终于成功推送，得益于另一篇文章。这里记录一下正确姿势：

先登录自己的github，新建一个项目：比如我在自己的用户MapleLeafFall下新建bldc_keil的公开仓库（public repo）；
重点：注意新建bldc_keil时不勾选“添加Readme.md”之类的选项；
git remote add origin git@github.]]></description><category></category></item><item><title><![CDATA[[嵌入式Linux]uboot启动kernel的过程分析]]></title><link>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/103131834</link><guid>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/103131834</guid><author>Maple_Leaf_15</author><pubDate>Mon, 18 Nov 2019 22:16:57 +0800</pubDate><description><![CDATA[这篇文章结合JZ2440v3开发板和uboot1.1.6代码讲述uboot如何启动内核（kernel版本为linux2.2.26，但实际没讲到和kernel代码有关的阶段）]]></description><category></category></item><item><title><![CDATA[[C/C++]Hex文件和Bin文件的关系]]></title><link>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/100809490</link><guid>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/100809490</guid><author>Maple_Leaf_15</author><pubDate>Fri, 13 Sep 2019 21:32:39 +0800</pubDate><description><![CDATA[Hex文件和Bin文件的关系背景Hex文件的样子Bin文件的样子两个文件大小对比什么时候用hex什么时候用bin呢？
背景
从学习单片机以来，在Keil下的烧写都是把.hex文件烧写到单片机内部Flash，对于.hex文件的格式和烧写流程都没有深究。直到需要了解IAP（In Application Programming，即脱离JLink等烧写器进行在线升级）的时候，才发现.hex文件不能作为被直...]]></description><category></category></item><item><title><![CDATA[[C/C++]谈谈我对STM32启动过程的理解]]></title><link>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/98957883</link><guid>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/98957883</guid><author>Maple_Leaf_15</author><pubDate>Fri, 09 Aug 2019 18:28:15 +0800</pubDate><description><![CDATA[我对STM32启动过程的理解从*.s文件看程序启动过程参考资料*.s文件干了什么Cortex M3核和STM32单片机启动顺序的关系
从*.s文件看程序启动过程
如果没记错的话，C语言中我们看代码一定都是从main()看起吧？因为“main()函数是程序的入口”，大家都这么说。但实际上如果我们从硬件上电复位看起，它并不是直接来到main()的——对于stm32单片机来说它至少还要把工程文件中对应的...]]></description><category></category></item><item><title><![CDATA[[仿真]PMSM矢量控制——滑模速度环]]></title><link>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/96984055</link><guid>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/96984055</guid><author>Maple_Leaf_15</author><pubDate>Tue, 23 Jul 2019 20:38:01 +0800</pubDate><description><![CDATA[PMSM在Simulink下的FOC滑模速度环仿真摘要PMSM的FOC模型——PI速度环PMSM的FOC模型——滑模速度环新的改变功能快捷键合理的创建标题，有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能，丰富你的...]]></description><category></category></item><item><title><![CDATA[[教程]开源电调VESC在Win7 64bit下开发环境的搭建(失败)]]></title><link>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/96981340</link><guid>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/96981340</guid><author>Maple_Leaf_15</author><pubDate>Tue, 23 Jul 2019 12:10:01 +0800</pubDate><description><![CDATA[从入门到放弃的过程
为什么要弄这个
为什么要弄这个？
VESC是什么？
硬件准备
软件准备
IDE方案2的验证
硬件的坑
软件的坑
没有写出来的细节
经过一周多的查找资料和尝试，VESC开源电调在Window下的开发环境搭建最后还是失败了。
主要问题有：原作者没有对windows下的开发提供教程支持（他本人一直使用Linux）、原作者6年前用的Eclipse插件现在已不被支持、硬件上SWD接口不能...]]></description><category></category></item><item><title><![CDATA[test]]></title><link>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/96275140</link><guid>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/96275140</guid><author>Maple_Leaf_15</author><pubDate>Wed, 17 Jul 2019 15:36:46 +0800</pubDate><description><![CDATA[经过一周多的查找资料和尝试，VESC开源电调在Window下的开发环境搭建算是失败了。主要问题有：原作者没有对windows下开发固件提供教程支持（他本人一直在Linux下做开发）、原作者6年前用的Eclipse插件现在已不被支持、硬件上SWD接口不能成功连接（原因未知）。]]></description><category></category></item><item><title><![CDATA[[备份]优快云-Markdown欢迎页的示例]]></title><link>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/96272473</link><guid>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/96272473</guid><author>Maple_Leaf_15</author><pubDate>Wed, 17 Jul 2019 09:45:34 +0800</pubDate><description><![CDATA[这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题，有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能，丰富你的文章UML 图表FLowchart流程图导出与导入导出导入
欢迎使用Ma...]]></description><category></category></item><item><title><![CDATA[【转】几种经典的滤波算法]]></title><link>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/52052870</link><guid>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/52052870</guid><author>Maple_Leaf_15</author><pubDate>Thu, 28 Jul 2016 10:39:06 +0800</pubDate><description><![CDATA[以下是十种经典滤波算法的简介，后面有C实现程序。我只看了简介部分，程序部分未验证1、限幅滤波法（又称程序判断滤波法） 
    A、方法： 
        根据经验判断，确定两次采样允许的最大偏差值（设为A） 
        每次检测到新值时判断： 
        如果本次值与上次值之差<=A,则本次值有效 
        如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本]]></description><category></category></item><item><title><![CDATA[STM32 硬件I2C 到底是不是个坑？]]></title><link>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/52052370</link><guid>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/52052370</guid><author>Maple_Leaf_15</author><pubDate>Thu, 28 Jul 2016 10:04:58 +0800</pubDate><description><![CDATA[/********************************************************************************* @author    Maoxiao Hu* @version   V1.0.0* @date       May-2015********************************************************]]></description><category></category></item><item><title><![CDATA[HardFault定位步骤]]></title><link>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/51443310</link><guid>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/51443310</guid><author>Maple_Leaf_15</author><pubDate>Wed, 18 May 2016 13:35:21 +0800</pubDate><description><![CDATA[HardFault]]></description><category></category></item><item><title><![CDATA[STM32调试CAN总线RxMessage.Id异常]]></title><link>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/51418874</link><guid>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/51418874</guid><author>Maple_Leaf_15</author><pubDate>Sun, 15 May 2016 20:45:19 +0800</pubDate><description><![CDATA[STM32调试CAN总线RxMessage.Id异常]]></description><category></category></item><item><title><![CDATA[static全局变量与普通的全局变量的区别／static局部变量和普通局部变量的区别／static函数与普通函数的区别]]></title><link>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/51395328</link><guid>https://blog.youkuaiyun.com/Maple_Leaf_15/article/details/51395328</guid><author>Maple_Leaf_15</author><pubDate>Fri, 13 May 2016 14:48:10 +0800</pubDate><description><![CDATA[全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式， 静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序， 当一个源程序由多个源文件组成时，非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域， 即只在定义该变量的源文件内有效， 在同一源程序的其它源文件中不能使用]]></description><category></category></item></channel></rss>