C6678多核烧写固化程序.pptVIP

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4. 多核烧写文件生成过程 4. 多核烧写文件生成过程 在core0的main函数中要增加写各辅核入口地址到相应的BOOT_MAGIC_ADDRESS 及触发IPC中断的逻辑,如图所示,否则多核不可能正常boot。 void MulticoreBoot() { int *pBootMagicAddCore0; int *IpcGr0; int i; int coreId = 0; coreId = platform_get_coreid (); if(coreId == 0) { pBootMagicAddCore0 = (int*)0x1087FFFC; /*core0 的magic address*/ *pBootMagicAddCore0=0 /*core0 的_c_int00 函数入口地址*/ /*此处写入各辅核的入口地址*,在此core1 的_c_int00函数入口地址/ *(pBootMagicAddCore0+04)=0x1180c300; /*core0发送IPC中断*/ IpcGr0 = (int*)0 for(i = 1;i CORE_NUM_6678;i++)//core0 sent ipc interrupt to { *(IpcGr0+i) = (*(IpcGr0+i)) | 0 } } } 可在转换工具链\spi_boot_suit_v2.3.1_release\2_ledtestprj\1.6678\src找到原版代码。 4. 多核烧写文件生成过程 四核烧写文件的生成 工具链选择:spi_boot_suit_v2.3.1_release?1_utilities ? 1.6678 ? multicore_boot_4cores 。 把要处理的四个.out文件粘贴到该文件夹下,依次修改文件名为simple0~simple3(必须为core序号一 一对应关系)。 点击该文件夹下的批处理文件: spiboot_multi_4cores.bat,生成镜像文件spirom_le.dat,即烧写文件。 4. 多核烧写文件生成过程 两核烧写文件的生成 修改批处理文件spiboot_multi_4cores.bat中内容如下。 删掉多余的hex6x simple2.rmd 和hex6x simple3.rmd 以及第五行中simple2.btbl 和 simple3.btbl,将修改后文件保存为文件名为spiboot_multi_2cores.bat的批处理文件。 点击该批处理文件就可以生成两核程序的.dat代码。 4. 多核烧写文件生成过程 _c_int00入口地址的获得 在编译链接之后的工程下有一个文件夹:Debug。 在此文件夹下有一个以工程名命名的.map文件,在此文件的开头可以看到_c_int00的入口地址。 各core启动之前PC指令应该指向_c_int00的位置,即在执行main函数之前应该先执行_c_int00开始的一段初始化过程,比如全局变量赋初值、局部变量入栈等操作,之后才开始main函数。 5. 多核烧写操作过程 5. 多核烧写操作过程 烧写:将之前生成的烧写文件通过SPI的烧写工程my_spi_modify写到Nor Flash里 1.运行SPI工程完成初始化部分,断点到ddr3测试结束,这样可以可以确认ddr3工作正常,程序工作正常。一般断点设到 Init_val= nor_init() 注意:在断点之前,设置系统工作环境并向DDR3起始地址空间写入0~9,若程序暂停到断点时DDR3起始地址空间为递增数,则说明DDR3时钟等配置正常。这一验证非常必要,因为镜像文件需要先镜像存储在DDR3中,之后由SPI写入到外部Flash。 5. 多核烧写操作过程 烧写:将之前生成的烧写文件通过SPI的烧写工程my_spi_modify写到Nor Flash里 2.此时,从memory browser里将.dat文件load到程ddr3里,在memory browser的范围右击,选择load memory。 5. 多核烧写操作过程 烧写:将之前生成的烧写文件通过SPI的烧写工程my_spi_modify写到Nor Flash里 3.选择之前产生的.dat文件,勾选 use head i

文档评论(0)

挺进公司 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档