TI中文支持网
TI专业的中文技术问题搜集分享网站

SDK和NWP的问题

TI专家好。

我下载安装的cc3100的sdk,里面有两套程序,一套是station的,一套是ap的,请问:

1、这两个编译好后,都需要下载到板子上吗? 如果是,难道是板子既是station又是ap吗 ?

2、比如cc3100外连的是MSP430FR5739,sdk中的 station 和 AP 这两套程序是在MSP430FR5739上运行,还是在cc3100上运行?

3、所说的nwp的firmware在什么地方下载 ?

4、nwp的firmware是不是运行在cc3100上?

5、sdk的station程序中启动了监听服务器,请问,对于我的应用来说,我是不是只要在此过滤过来的网络报文,是我这个station的IP的报文,就收下,否则过滤掉,对不对?

刚刚接触新片子,请专家多多指点

Yonghua Pan:

1、这两个编译好后,都需要下载到板子上吗? 如果是,难道是板子既是station又是ap吗 ?

> 有API去修改工作模式

2、比如cc3100外连的是MSP430FR5739,sdk中的 station 和 AP 这两套程序是在MSP430FR5739上运行,还是在cc3100上运行?

> 在5739中运行

3、所说的nwp的firmware在什么地方下载 ?

> http://processors.wiki.ti.com/index.php/CC31xx_%26_CC32xx_SimpleLink_Tools中的uniflash

4、nwp的firmware是不是运行在cc3100上?

>是

5、sdk的station程序中启动了监听服务器,请问,对于我的应用来说,我是不是只要在此过滤过来的网络报文,是我这个station的IP的报文,就收下,否则过滤掉,对不对?

>NWP里面的tcp/ip协议栈会做这件事,你不需要过滤。你可以理解成你的应用就是网络的应用层.

shiping du:

回复 Yonghua Pan:

专家好,感谢您的回答。从你的回答和之前的回答能看出你的精湛的水平。让人敬佩。

1、我的板子(成品)上用一块cc3100,它就是叶子节点了(一台无线路由器的多个设备,设备是叶子),当我运行sdk的AP时,是否意味着,如果我修改了main函数的如下语句:

        sl_WlanSetMode(ROLE_AP);

      sl_WlanSetMode(ROLE_STA);

这样就简单的让cc3100从AP状态切换到station状态了 ?  还是说,如果运行在AP状态,切换到station状态需要其它的修改 ?

2、因为sdk的AP工程里面有比如配置IP,SSID等内容,而sdk中的station工程没有这些内容。

问题 :    如上的这种通过API的参数修改实现从AP状态到station状态的转变,如果想这么做,他相对于sdk中的直接的station这个工程之间有什么优势,或者在某些使用场合的长处 ? 或者这样做根本就不对  ?

3、将来我们自己的应用程序,是不是可以在sdk中做修改就可以,或者我们的程序代替sdk,就可以,对不对 ?

谢谢。

Yonghua Pan:

回复 shiping du:

1、我的板子(成品)上用一块cc3100,它就是叶子节点了(一台无线路由器的多个设备,设备是叶子),当我运行sdk的AP时,是否意味着,如果我修改了main函数的如下语句:

        sl_WlanSetMode(ROLE_AP);

      sl_WlanSetMode(ROLE_STA);

这样就简单的让cc3100从AP状态切换到station状态了 ?  还是说,如果运行在AP状态,切换到station状态需要其它的修改 ?

[YH]: 需要reset一下,就是调用sl_stop然后再调用sl_start

2、因为sdk的AP工程里面有比如配置IP,SSID等内容,而sdk中的station工程没有这些内容。

问题 :    如上的这种通过API的参数修改实现从AP状态到station状态的转变,如果想这么做,他相对于sdk中的直接的station这个工程之间有什么优势,或者在某些使用场合的长处 ? 或者这样做根本就不对  ?

[YH]: 主要是针对配置的应用场景,默认启动是AP,然后手机或电脑连上这个AP,配置好SSID和密码之后,板子重启,转换到STA, 连上家里的路由器。

3、将来我们自己的应用程序,是不是可以在sdk中做修改就可以,或者我们的程序代替sdk,就可以,对不对 ?

[YH]: 是的,在SDK中修改就好,用你们的程序代替SDK也行。

shiping du:

回复 Yonghua Pan:

Hi,

感谢您的回复。如下是我的几个问题:

1、SDK中的AP中的代码,就是在配置完SSID后调用了start和stop接口,就是说TI官网的SDK代码中的AP,它已经实现了自动由AP转换成station了,是吧 ?

2、SDK的代码中,关于socket的部分的代码,比如listen,accept等接口都是通过发送opcode给cc3100实现相关的指定动作的,那么,在我自己的系统里面,现在我要实现让cc3100等待从我的手机发出的相关数据串,比如含有SSID的数据串,实现手机配置cc3100的SSID,要怎么控制才可以 或者需要发个什么指令,以让cc3100进入这种等待配置的状态?

3、SDK里面的操作,为什么那么多地方要用到类似锁的机制,请问,在我们的一个430MCU上是多个进程在处理吗 ? 为什么代码里面并没有多线程的概念,为什么要有这么多的锁机制实现类似的原子操作呢 ?

4、SDK的AP代码里面的g_pCB这个结构体,每次sl_sart调用,在其pool中都分配了10个索引的资源,参考如下代码(见SDK中的AP的文件 driver.c     函数void _SlDrvDriverCBInit(void) 里的一段 ):

for (Idx = 0; Idx < MAX_CONCURRENT_ACTIONS; Idx++) { OSI_RET_OK_CHECK( sl_SyncObjCreate(&g_pCB->ObjPool[Idx].SyncObj, "SyncObj") ); // 11 sl_SyncObjClear(&g_pCB->ObjPool[Idx].SyncObj); // 11 }

而在后面,又对这些资源做可用和不可用的查询 ,参考代码如下:

/* Get free object */ if (MAX_CONCURRENT_ACTIONS > g_pCB->FreePoolIdx) { /* save the current obj index */ CurrObjIndex = g_pCB->FreePoolIdx; /* set the new free index */ if (MAX_CONCURRENT_ACTIONS > g_pCB->ObjPool[CurrObjIndex].NextIndex) { g_pCB->FreePoolIdx = g_pCB->ObjPool[CurrObjIndex].NextIndex; } else { /* No further free actions available */ g_pCB->FreePoolIdx = MAX_CONCURRENT_ACTIONS; } }

我的问题是,对于一个单进程的系统,每次启动起来,或者一个任务到来,就他malloc的一个g_pCB的空间而言,他只需要一份资源够任务本身就ok了,而实际上,代码为他们分配这么多的资源,且对他们初始化,做成了一个貌似是个多进程或者多线程的系统的情形,这是为什么呢 ? 

谢谢。

Yonghua Pan:

回复 shiping du:

1、是的,请确定设置AP或STA 模式的API有被调用

2、这个协议你可以自己定义,TCP/UDP socket连接都是标准的,你可以在TCP/UDP之上定义一个协议来做这件事。

3、CC3100的host driver是可以支持多线程的,主要的定义在user.h里面

4、同#3

赞(0)
未经允许不得转载:TI中文支持网 » SDK和NWP的问题
分享到: 更多 (0)