导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→[转帖]用编程方式重新启动多处理器系统的推荐方法是什么?

* 65813: [转帖]用编程方式重新启动多处理器系统的推荐方法是什么?

   liufengzhong 
liufengzhong发表的帖子 

 [转帖]用编程方式重新启动多处理器系统的推荐方法是什么?
编程方式重新启动多处理器系统(固件升级后)推荐的方法是什么?在单处理器系统是简单的复位开关,但据我所知它的一大堆更复杂的多处理器系统。仅仅使用一个输出端口来驱动,所述JTAG的方式相同的复位电路的最简单的方法是什么?


回答:

你可以通过写它的PLL CTRL寄存器(寄存器6)重新启动本地的瓷砖。你通常会想读寄存器和写回相同的值。

你也可以通过开关写一个远程tile PLL控制寄存器。下面我有一些示例代码,以供您参考:

/* Note, this function is prototyped in xs1.h only from 13 tools onwards */
    unsigned get_tile_id(tileref);
    extern tileref tile[];
    unsigned int localTileId = get_local_tile_id();
    unsigned int tileId;

    /* Reset all remote tiles */
    for(int i = 0; i  < tileArrayLength; i++)
    {
        /* Cannot cast tileref to unsigned! */
        tileId = get_tile_id(tile[i]);
       
        /* Do not reboot local tile yet! */
        if(localTileId != tileId)
        {
           read_sswitch_reg(tileId, 6, pllVal);
           write_sswitch_reg_no_ack(tileId, 6, pllVal);
        }
     }
    
     /* Finally reboot this tile! */
     read_sswitch_reg(localTileId, 6, pllVal);
     write_sswitch_reg_no_ack(localTileId, 6, pllVal);

在12工具中要找到平铺阵列的长度,你可以使用下面的技巧:

/* Find size of tile array - note in future tools versions this will be available from platform.h */
asm volatile ("ldc %0, tile.globound":"=r"(tileArrayLength));


回答2:

你可以使用一个输出端口驱动多tile系统的复位电路重新启动,在相同的是为JTAG一样。 



发表时间:2014年8月19日15:11:44

  
回复该帖

本主题共有 1 帖,分页:>>>>>该主题的所有内容[1]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

[上一篇帖子]:有用X86做工控主板的吗?问个技术性问题请教一下Core 847 是双核,还是四
[下一篇帖子]:[转帖]XLink到XTAG-2来为xSCOPE调试能不能在多处理器系统中调试来自任一处理器的任一空