0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

自定义RISC V的bootloader-v3

XL FPGA技术交流 2025-03-10 09:05 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在生成SoC时,会生成一个预定义bootloader .bin文件,用于指定soc的工程运行的地址,这包括在flash的存储地址 ,加载到外存中的运行地址及在外存中分配的存储空间的大小 。下面我们来讲解下怎样定义自己的bootloader

指向外部存储的Bootloader

1、导入软件自带的bootloader工程,在工程中选择bootloaderConfig.h文件。

wKgZPGfOO-qAPvMrAAHrH1C7FoQ040.png

2、修改参数。

USER_SOFTWARE_MEMORY:对应的是APP在外部存储器中的运行起始地址;USER_SOFTWARE_FLASH:对应APP在flash中的存储地址;USER_SOFTWARE_SIZE:APP对应片外存储的大小;

如下是一个设置案例,也可以根据自己的需要进行相应的修改:

把下面参数

#defineUSER_SOFTWARE_MEMORY 0x00001000#defineUSER_SOFTWARE_FLASH  0x380000#defineUSER_SOFTWARE_SIZE   0x01F000

修改成:

#defineUSER_SOFTWARE_MEMORY 0x00008000#defineUSER_SOFTWARE_FLASH  0x500000#defineUSER_SOFTWARE_SIZE   0x01F000

3、编译修改后的工程。接下来会有两种方法处理。

方法一:

4、重新生成存储器初始化文件。

(1)路径转到efinty安装路径的bin文件夹下,运行setup.bat,然后重新生成OCR初始文件。

${EFINITY_HOME}/bin/setup.bat

(2)再转到embedded_sw//tool路径下,并把bootloader.bin文件拷贝到该文件夹下,运行指令,打开浮点生成8个bin,f设置为1

python3 binGen.py -b bootloader.bin -s<RAMsize>-f<FPU>
wKgZPGfOO-qAY8zHAABIjFggjCI760.png

(3)生成的初始化bin文件在tool/rom文件夹下;

wKgZPGfOO-qAWUtvAABQ-Ucxqvg896.png

5、将步骤4中的rom文件夹里的bin替换工程中的bin文件

wKgZPGfOO-qAKEssAADdrdkuRlI559.png

----------------------------------------------------------------------

方法二:

4、勾选Cache/Memory下sapphire IP中Overwrite the default SPI flash bootloader with the user application前面的对勾。并添加上第3步生成的bootloader.hex文件.

wKgZPGfOO-qAYbjXAAP-NpIniG8582.png

5、重新生成IP并编译 。

--------------------------------------------------------------------

6、重新编译工程。合成工程时注意指定的Flash地址.

wKgZPGfOO-uAEGsVAABM47nPWLY859.png

这里有一个问题,修改flash的地址是多少合适呢?以Ti60F100为例 ,内部合封了一个16Mb的flash,0x38000这个地址是超出范围的,那RISCV的地址应该放上哪些呢,从上面的合并操作中可以看到soc.hex文件的Flash Length为0x00362c95,那memTest.bin的地址只要保证不重合,也就是大于0x00362c95即可。

另外值的强调的是逻辑工程生成的hex文件放在flash地址必须要从0x0开始。

指向内部存储的Bootloader

今天有客户在问如果打开了外部存储,但是希望程序从片上RAM启动应该怎么修改bootloader。只需要将bootloader工程的makefile里面的LDSCRIPT ?= ${BSP_PATH}/linker/bootloader.ld指向linker文件夹下的default_i.ld(对应钛金系列,default.ld对应trion系列)

wKgZPGfOO-uAGYrtAAGg-313tAE937.pngwKgZPGfOO-uAeNj1AABrpAcph_U317.png


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FlaSh
    +关注

    关注

    10

    文章

    1715

    浏览量

    154706
  • soc
    soc
    +关注

    关注

    38

    文章

    4514

    浏览量

    227623
  • bootloader
    +关注

    关注

    2

    文章

    241

    浏览量

    47676
  • RISC-V
    +关注

    关注

    48

    文章

    2793

    浏览量

    51912
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    易灵思FPGA RISC-V自定义指令的使用方法

    功耗设备到高性能计算。易灵思提供完整的RISC-V 解决方案,致力于让开发者和硬件设计人员可以根据需要自定义和扩展指令集,且无需担心专有技术的限制。
    的头像 发表于 11-24 11:36 3682次阅读
    易灵思FPGA <b class='flag-5'>RISC-V</b><b class='flag-5'>自定义</b>指令的使用方法

    自定义RISC Vbootloader-v2

    在生成SoC时,会生成一个预定义bootloader .bin文件,用于指定soc的工程运行的地址,这包括在flash的存储地址 ,加载到外存中的运行地址及在外存中分配的存储空间的大小 。下面我们
    的头像 发表于 10-31 12:37 1486次阅读
    <b class='flag-5'>自定义</b><b class='flag-5'>RISC</b> <b class='flag-5'>V</b>的<b class='flag-5'>bootloader-v</b>2

    如何使用RISC-V创建自定义处理器

    采用RISC-V来替代其自定义体系结构。该体系结构吸引人的一个关键特征是,CPU开发人员可以在不牺牲为基本标准创建的工具和库的适用性的情况下,使RISC-V功能适应其需求。适应的关键在于了解R
    的头像 发表于 04-14 15:55 4820次阅读
    如何使用<b class='flag-5'>RISC-V</b>创建<b class='flag-5'>自定义</b>处理器

    请问RISC-V自定义指令如何保持软件的兼容性?

    请问RISC-V自定义指令如何保持软件的兼容性?
    发表于 06-17 07:51

    魅族MP3自定义开机画面教程

    魅族MP3自定义开机画面教程
    发表于 12-14 14:59 21次下载

    1602自定义字符

    1602液晶能够显示自定义字符,能够根据读者的具体情况显示自定义字符。
    发表于 01-20 15:43 1次下载

    自定义视图组件教程案例

    自定义组件 1.自定义组件-particles(粒子效果) 2.自定义组件- pulse(脉冲button效果) 3.自定义组件-progr
    发表于 04-08 10:48 15次下载

    如何看待RISC-V SoC设计中自定义扩展的指令集架构

    谈论配置基本处理器或添加自定义扩展以解决片上系统 (SoC) 中的硬件-软件设计权衡并不是什么新鲜事。这一直是 RISC-V 社区所支持的价值主张的关键部分,发布了许多信息并从中受益,例如
    发表于 07-18 15:38 2551次阅读
    如何看待<b class='flag-5'>RISC-V</b> SoC设计中<b class='flag-5'>自定义</b>扩展的指令集架构

    教程 3:构建自定义配置文件

    教程 3:构建自定义配置文件
    发表于 03-15 19:39 0次下载
    教程 <b class='flag-5'>3</b>:构建<b class='flag-5'>自定义</b>配置文件

    教程 3自定义配置文件 gatt cmd 示例

    教程 3自定义配置文件 gatt cmd 示例
    发表于 03-15 19:40 0次下载
    教程 <b class='flag-5'>3</b>:<b class='flag-5'>自定义</b>配置文件 gatt cmd 示例

    教程 3:构建自定义配置文件

    教程 3:构建自定义配置文件
    发表于 07-06 18:49 1次下载
    教程 <b class='flag-5'>3</b>:构建<b class='flag-5'>自定义</b>配置文件

    教程 3自定义配置文件 gatt cmd 示例

    教程 3自定义配置文件 gatt cmd 示例
    发表于 07-06 18:50 1次下载
    教程 <b class='flag-5'>3</b>:<b class='flag-5'>自定义</b>配置文件 gatt cmd 示例

    Out项目之增强RISC-V处理器性能的自定义硬件模块

    电子发烧友网站提供《Out项目之增强RISC-V处理器性能的自定义硬件模块.zip》资料免费下载
    发表于 07-11 10:48 0次下载
    Out项目之增强<b class='flag-5'>RISC-V</b>处理器性能的<b class='flag-5'>自定义</b>硬件模块

    RISC-V自定义计算 – 构建您的抱负

    RISC-V自定义计算 – 构建您的抱负演讲ppt分享
    发表于 07-14 17:15 0次下载

    labview超快自定义控件制作和普通自定义控件制作

    labview超快自定义控件制作和普通自定义控件制作
    发表于 08-21 10:32 14次下载