导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→[转帖]禁止进程??

* 80164: [转帖]禁止进程??

   liufengzhong 
liufengzhong发表的帖子 

 [转帖]禁止进程??

当我试图在startKIT运行下面的测试代码,我遇到一个问题。
调试与xTimecomposer是没问题的,但是从SPI闪存写测试代码的执行是NG。
(它不能与JTAG执行连接。)

[测试代码]

-----
#include     <xs1.h>    
#include     <stdio.h>    
#include     <platform.h>    
 
in  port DIGITAL_INPUT = XS1_PORT_32A;    //PORT 32A
port out led_d1 = XS1_PORT_1A;
port out led_d2 = XS1_PORT_1D;
 
void led_thread(chanend input_data1)
{
    unsigned busy_flg;
    int delay  = 1000;
 
    printf("LED thread start!!\n");
 
    input_data1 :>     busy_flg;
 
    while (1) {
        delay_milliseconds(delay);
        led_d2     <: 0;
        delay_milliseconds(delay);
        led_d2     <: 1;
    }
 
}
 
void port_inout(chanend input_data1){
 unsigned buf;
 
 printf("port_inout start!!\n");
 
 DIGITAL_INPUT :>     buf;
 input_data1     <: buf;
 
 led_d1     <: 1;
 
};
 
int main(void)
{
    chan input_data;
 
    par {
 
        led_thread(input_data);
        port_inout(input_data);
    }
 
    return 0;
}
 
---

我可以通过增加while(1)in port_inout而解决问题如下所示,总之,通过port_input结束任务引起的问题。


void port_inout(chanend input_data1){
 unsigned buf;
...
 led_d1     <: 1;
 
while(1); // Addition
 
};

我想要知道原因。
有人有一些想法吗?

谢谢。


回答:


当端口驱动高代码中没有while(1),端口将被驱动高和这将结束在逻辑核的范围,所以,当你在代码中加入while(1)你将能够看见LED改变状态。

发表时间:2014年8月31日15:14:40

  
回复该帖

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

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

[上一篇帖子]:[转帖]如何从界面找到一个服务功能的声明?尊敬的研究员, /P P 我是来自意法半导体/&nbs
[下一篇帖子]:[转帖]寻求建立一个AVB分组流媒体的视频编码我想要工作在一个HW,其中只有I /&nbs