微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI WIFI设计交流 > CC3200 自己画的板子,用uniflash烧写的时候出错

CC3200 自己画的板子,用uniflash烧写的时候出错

时间:10-02 整理:3721RD 点击:

[15:14:30] Begin Format operation.
[15:14:31] INFO: > Executing Operation: Connect
[15:14:33] INFO: setting break signal
[15:14:33] INFO: connection succeeded
[15:14:33] INFO: getting storage list
[15:14:33] INFO: > Executing Operation: Init
[15:14:33] INFO: reading version info
[15:14:33] INFO: DEVICE CC3200 ES1.33
[15:14:33] INFO: reading version info
[15:14:34] INFO: reading version info
[15:14:36] INFO: > Executing Operation: Format
[15:14:36] INFO: Erase storage SFLASH
[15:14:37] INFO: erase storage failed
[15:14:37] INFO: erase storage completed
[15:14:37] INFO: > Executing Operation: Disconnect
[15:14:37] Operation Format returned.
[15:14:48] Begin ServicePackProgramming operation.
[15:14:48] INFO: > Executing Operation: Connect
[15:14:50] INFO: setting break signal
[15:14:51] INFO: detecting FTDI for device reset
[15:14:53] INFO: connection succeeded
[15:14:53] INFO: getting storage list
[15:14:53] INFO: > Executing Operation: ServicePackProgramming
[15:14:53] INFO: Path to the service pack file: C:/TI/CC3100_CC3200_ServicePack_1.0.1.6-2.6.0.5/servicepack_1.0.1.6-2.6.0.5.bin
[15:14:53] INFO: reading version info
[15:14:53] INFO: CC3200R Device detected.
[15:14:53] INFO: NWP/MAC/PHY Version from Service Pack:
[15:14:53] INFO: NWP Patch version: 2.6.0.5
[15:14:53] INFO: MAC Patch version: 1.4.0.1
[15:14:53] INFO: PHY Patch version: 1.0.3.34
[15:14:53] INFO: reading version info
[15:14:53] INFO: DEVICE CC3200 ES1.33
[15:14:53] INFO: reading version info
[15:14:54] INFO: reading version info
[15:14:56] INFO: Downloading file "/sys/servicepack.ucf" with size 25820
[15:14:56] ERROR: Open operation failed
[15:14:56] INFO: > Executing Operation: Disconnect
[15:14:56] Operation ServicePackProgramming returned.

新片子第一次使用需要更新servicepack,选择"Service Pack Update"更新

Hi Viki,

Servicepack的更新是在UniFlash里吗?我没有找到

具体说一下出现的问题:

format后list file system是正常的,但是在service pack programming后显示file system is not formatted

换了一块更大的Flash,问题解决

另外,使用自己画的板子在线调试(用launchpad上的JTAG)的时候,运行一半会报错Unable to determine target status after 20 attempts

将程序烧入Flash也运行不正常

调试在 lRetVal = ConfigureSimpleLinkToDefaultState(); 这一行出错

请问可能是什么原因

在仿真状态下进入函数体内部,这个函数配置了CC3200的很多参数,具体是在哪一行出错的?

//*****************************************************************************
//! \brief This function puts the device in its default state. It:
//! - Set the mode to STATION
//! - Configures connection policy to Auto and AutoSmartConfig
//! - Deletes all the stored profiles
//! - Enables DHCP
//! - Disables Scan policy
//! - Sets Tx power to maximum
//! - Sets power policy to normal
//! - Unregister mDNS services
//! - Remove all filters
//!
//! \param none
//! \return On success, zero is returned. On error, negative is returned
//*****************************************************************************
static long ConfigureSimpleLinkToDefaultState()
{
SlVersionFull ver = {0};
_WlanRxFilterOperationCommandBuff_t RxFilterIdMask = {0};

unsigned char ucVal = 1;
unsigned char ucConfigOpt = 0;
unsigned char ucConfigLen = 0;
unsigned char ucPower = 0;

long lRetVal = -1;
long lMode = -1;

lMode = sl_Start(0, 0, 0);
ASSERT_ON_ERROR(lMode);

// If the device is not in station-mode, try configuring it in station-mode
if (ROLE_STA != lMode)
{
if (ROLE_AP == lMode)
{
// If the device is in AP mode, we need to wait for this event
// before doing anything
while(!IS_IP_ACQUIRED(g_ulStatus))
{
#ifndef SL_PLATFORM_MULTI_THREADED
_SlNonOsMainLoopTask();
#endif
}
}

// Switch to STA role and restart
lRetVal = sl_WlanSetMode(ROLE_STA);
ASSERT_ON_ERROR(lRetVal);

lRetVal = sl_Stop(0xFF);
ASSERT_ON_ERROR(lRetVal);

lRetVal = sl_Start(0, 0, 0);
ASSERT_ON_ERROR(lRetVal);

// Check if the device is in station again
if (ROLE_STA != lRetVal)
{
// We don't want to proceed if the device is not coming up in STA-mode
return DEVICE_NOT_IN_STATION_MODE;
}
}

// Get the device's version-information
ucConfigOpt = SL_DEVICE_GENERAL_VERSION;
ucConfigLen = sizeof(ver);
lRetVal = sl_DevGet(SL_DEVICE_GENERAL_CONFIGURATION, &ucConfigOpt,
&ucConfigLen, (unsigned char *)(&ver));
ASSERT_ON_ERROR(lRetVal);

UART_PRINT("Host Driver Version: %s\n\r",SL_DRIVER_VERSION);
UART_PRINT("Build Version %d.%d.%d.%d.31.%d.%d.%d.%d.%d.%d.%d.%d\n\r",
ver.NwpVersion[0],ver.NwpVersion[1],ver.NwpVersion[2],ver.NwpVersion[3],
ver.ChipFwAndPhyVersion.FwVersion[0],ver.ChipFwAndPhyVersion.FwVersion[1],
ver.ChipFwAndPhyVersion.FwVersion[2],ver.ChipFwAndPhyVersion.FwVersion[3],
ver.ChipFwAndPhyVersion.PhyVersion[0],ver.ChipFwAndPhyVersion.PhyVersion[1],
ver.ChipFwAndPhyVersion.PhyVersion[2],ver.ChipFwAndPhyVersion.PhyVersion[3]);

// Set connection policy to Auto + SmartConfig
// (Device's default connection policy)
lRetVal = sl_WlanPolicySet(SL_POLICY_CONNECTION,
SL_CONNECTION_POLICY(1, 0, 0, 0, 1), NULL, 0);
ASSERT_ON_ERROR(lRetVal);

// Remove all profiles
lRetVal = sl_WlanProfileDel(0xFF);
ASSERT_ON_ERROR(lRetVal);

//
// Device in station-mode. Disconnect previous connection if any
// The function returns 0 if 'Disconnected done', negative number if already
// disconnected Wait for 'disconnection' event if 0 is returned, Ignore
// other return-codes
//
lRetVal = sl_WlanDisconnect();
if(0 == lRetVal)
{
// Wait
while(IS_CONNECTED(g_ulStatus))
{
#ifndef SL_PLATFORM_MULTI_THREADED
_SlNonOsMainLoopTask();
#endif
}
}

// Enable DHCP client
lRetVal = sl_NetCfgSet(SL_IPV4_STA_P2P_CL_DHCP_ENABLE,1,1,&ucVal);
ASSERT_ON_ERROR(lRetVal);

// Disable scan
ucConfigOpt = SL_SCAN_POLICY(0);
lRetVal = sl_WlanPolicySet(SL_POLICY_SCAN , ucConfigOpt, NULL, 0);
ASSERT_ON_ERROR(lRetVal);

// Set Tx power level for station mode
// Number between 0-15, as dB offset from max power - 0 will set max power
ucPower = 0;
lRetVal = sl_WlanSet(SL_WLAN_CFG_GENERAL_PARAM_ID,
WLAN_GENERAL_PARAM_OPT_STA_TX_POWER, 1, (unsigned char *)&ucPower);
ASSERT_ON_ERROR(lRetVal);

// Set PM policy to normal
lRetVal = sl_WlanPolicySet(SL_POLICY_PM , SL_NORMAL_POLICY, NULL, 0);
ASSERT_ON_ERROR(lRetVal);

// Unregister mDNS services
lRetVal = sl_NetAppMDNSUnRegisterService(0, 0);
ASSERT_ON_ERROR(lRetVal);

// Remove all 64 filters (8*8)
memset(RxFilterIdMask.FilterIdMask, 0xFF, 8);
lRetVal = sl_WlanRxFilterSet(SL_REMOVE_RX_FILTER, (_u8 *)&RxFilterIdMask,
sizeof(_WlanRxFilterOperationCommandBuff_t));
ASSERT_ON_ERROR(lRetVal);

lRetVal = sl_Stop(SL_STOP_TIMEOUT);
ASSERT_ON_ERROR(lRetVal);

InitializeAppVariables();

return lRetVal; // Success
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top