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

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

  
楼 主:liufengzhong 2014年8月19日15:11
 [转帖]用编程方式重新启动多处理器系统的推荐方法是什么?
编程方式重新启动多处理器系统(固件升级后)推荐的方法是什么?在单处理器系统是简单的复位开关,但据我所知它的一大堆更复杂的多处理器系统。仅仅使用一个输出端口来驱动,所述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一样。 


>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:有用X86做工控主板的吗?问个技术性问题

[下一篇主题]:[转帖]XLink到XTAG-2来为xSCOPE调试能不能在多处理器系统中调试来自任一处理器的任一空