This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC3100MOD:user.h 和用于启用功能的选项

Guru**** 2782485 points

Other Parts Discussed in Thread: CC3100

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/778604/cc3100mod-user-h-and-options-for-enabling-functions

器件型号:CC3100MOD
主题中讨论的其他器件:SEGGERCC3100

尝试使用 Segger SES 将 CC3100集成到 nrf52832环境时出现编译器错误。

在尝试设置 sl_full 之后、让它在一个点工作、这样所有与 simplelink 相关的关键区域都不会灰显、并且导致了未定义的错误。

我认为所有标志都是在 user.h 文件中设置的、我尝试了许多变体、从仅添加#define SL_FULL 或#define SL_FULL 1到在 SES 项目预处理指令中添加 SL_FULL。

我需要能够使用 SmartConfig、AP 配置、WLAN 连接和套接字。

当我工作时,我还添加了 FS 读/写,并能够通过 SPI 将固件更新发送到 CC3100。

我使用的是 CC3100 SDK 1.3。

现在、经过6个小时的尝试后、我无法构建它、因为需要包含在项目中的灰色区域。

user.h 键位于以下位置:

#include
#include "board.h"
#include "spi.h"
#include "wifi。h"
#include
//#include "USART.h"

#define SL_FULL
#define SL_FsOpen
#define SL_FsWrite
#define SL_FsClose
#define SL_Write
#define SL_Protocol_Types
#define SL_Socket
#define SL_Connect
#define NetApp


#ifndef sl_if_type_uart
#include "spi.h"
其他
#include "UART.h"
#endif

#define _u8 unsigned char
#define _i8有符号字符
#define _U16无符号短整型
#define _i16 signed short
define _u32 unsigned long
#define _i32 signed long

#define UINT32_t UINT32
#define Int32_t Int32
#define uint8_t uint8
#define INT8_t INT8
#define uint16_t uint16
#define Int16_t Int16
#define bool UINT8



//typedef void (* P_EVENT_handler)(void* pValue);
typedef P_EVENT_handler sl_P_EVENT_handler;

来自 simplelink.h

/********* /
/*主机驱动程序版本的宏声明*/
/********* /
#define SL_DRIVER_VERSION "1.0.1.11"
define SL_MAJOR VERSION_NUM 1L
define SL_MINOR VERSION_NUM 0L
define SL_VERSION_NUM 1L
define SL_SUB_VERSION_NUM 11L


/********* /
/*预定义配置的宏声明*/
/********* /

ifdef sl_Tiny

#undef sl_INC_ARG_CHECK
#undef sl_INC_EXT_API
#undef sl_INC_SOCK_SERVER_SEND_API
#undef sl_INC_WLAN_PKG
#UNDEF SL_INC_NET_CFG_PKG
#undef sl_INC_FS_PKG
#undef sl_INC_SET_UART_MODE
#UNDEF SL_INC_NVMEM_PKG
#define SL_INC_STD_BSD_API_naming
#define SL_INC_SOCK_CLIENT_SON_API
#define SL_INC_SOCK_RECV_API
#define SL_INC_SOCK_SEND_API
#define SL_INC_Socket_PKG
#define SL_INC_NET_APP_PKG

#endif

ifdef sl_small
#undef sl_INC_EXT_API
#undef sl_INC_NET_APP_PKG
#UNDEF SL_INC_NET_CFG_PKG
#undef sl_INC_FS_PKG
#define SL_INC_ARG_CHECK
#define SL_INC_WLAN_PKG
#define SL_INC_Socket_PKG
#define SL_INC_SOCK_CLIENT_SON_API
#define SL_INC_SOCK_SERVER_SOLE_API
#define SL_INC_SOCK_RECV_API
#define SL_INC_SOCK_SEND_API
#define SL_INC_SET_UART_MODE
#endif

ifdef sl_full
#define SL_INC_EXT_API
#define SL_INC_NET_APP_PKG
#define SL_INC_NET_CFG_PKG
#define SL_INC_FS_PKG
#define SL_INC_ARG_CHECK
#define SL_INC_WLAN_PKG
#define SL_INC_Socket_PKG
#define SL_INC_SOCK_CLIENT_SON_API
#define SL_INC_SOCK_SERVER_SOLE_API
#define SL_INC_SOCK_RECV_API
#define SL_INC_SOCK_SEND_API
#define SL_INC_SET_UART_MODE
#endif

#define SL_RET_CODE_OK (0)
#define SL_RET_CODE_INVALID_INPUT (-2)
#define SL_RET_CODE_SELF 错误(-3)
#define SL_RET_CODE_NWP_IF_ERROR (-4)
#define SL_RET_CODE_malloc_ERROR (-5)
#define SL_RET_CODE_ABORT (-6)
#define SL_RET_CODE_PROTOCOL_ERROR (-7)


/*#define sl_memcpy memcpy */
#define SL_Memset (addr、val、len) memset (addr、val、(size_t) len)
#define sl_memcpy (dest、src、len) memcpy (dest、src、(size_t) len)

#ifndef sl_Tiny_EXT
#define SL_MAX_Sockets (_u8)(8)
其他
#define SL_MAX_Sockets (_u8)(2)
#endif


/********* /
/*类型定义*/
/********* /

#ifndef NULL
#define NULL (0)
#endif

#ifndef false
#define false (0)
#endif

#ifndef true
#define true (!false)
#endif

#ifndef 正常
#define OK (0)
#endif

typedef _U16 _SlOpcode_t;
typedef _u8 _SlArgSize_t;
typedef _i16 _SlDataSize_t;
typedef _i16 _SlReturnVal_t;


/*
*此事件状态用于阻止或继续事件传播
*通过所有已注册的外部库/用户应用程序
*
*

typedef 枚举{
EVENT_INVACY_BLOCK = 0、
EVENT_INACY_CONTINUE

}_slEventPropogationStatus_e;


/********* /
/*包含文件*/
/********* /


/*
所有 API 头文件之前必须包含 objInclusion.h 和 user.h
objInclusion.h 必须是包含 API 头文件之前的最后一种安排
因为它基于其他配置来决定应包含哪个对象
*
#include "../source/objInclusion.h
#include "trace.h"
#include "fs.h"
#include "socket.h"
#include "netapp.h"
#include "wlan.h"
#include "device.h"
#include "netcfg.h"
#include "WLAN_Rx_FILTERs.h"

#define _SL_INCLUDE_FUNC (名称)(_SL_INC_##Name)
/*一般事件调度程序
*初始化为用户处理程序*/
#ifdef sl_GeneralEvtHdlr
#define _SlDrvHandleGeneralEvents sl_GeneralEvtHdlr
#endif

/* WLAN 事件调度程序
*初始化为用户处理程序*/
#ifdef sl_WlanEvtHdlr
#define _SlDrvHandleWlanEvents sl_WlanEvtHdlr
#endif

/* NetApp 事件调度员
*初始化为用户处理程序*/
#ifdef sl_NetAppEvtHdlr
#define _SlDrvHandleNetAppEvents sl_NetAppEvtHdlr
#endif

/* http 服务器事件发送程序,即
*已初始化为用户处理程序(如果存在)*/
#ifdef sl_HttpServerCallback
#define _SlDrvHandleHttpServerEvents sl_HttpServerCallback
#endif

/*套接字事件调度程序
*初始化为用户处理程序*/
#ifdef sl_sockEvtHdlr
#define _SlDrvHandleSockEvents sl_sockEvtHdlr
#endif


#ifndef __CONCAT
#define __CONCAT (x、y) x ## y
#endif

#define __CONCAT2 (x、y)__CONCAT (x、y)


/*
*下面的部分处理外部库事件注册
*根据它在其 API 头文件中指定的所需事件。
*外部库应首先由用户安装(请参阅 user.h)
*
ifdef sl_EXT_LIB_1

/*常规事件注册*/
#if __CONCAT2 (sl_EXT_LIB_1、_NOTIFY_General_EVENT)
extern _SlEventPropogationStatus_e __CONCAT2 (sl_EXT_LIB_1、_GeneralEventHdl)(SlDeviceEvent_t *);
#define SlExtLib1GeneralEventHandler __CONCAT2 (sl_EXT_LIB_1、_GeneralEventHdl)

#undef EXT_LIB_Registed_General_Events
#define EXT_LIB_REGAND_General_Events
#endif

/* WLAN 事件注册*/
#if __CONCAT2 (sl_EXT_LIB_1、_NOTIFY_WLAN_EVENT)
extern _SlEventPropogationStatus_e __CONCAT2 (sl_EXT_LIB_1、_WlanEventHdl)(SlWlanEvent_t *);
#define SlExtLib1WlanEventHandler __CONCAT2 (sl_EXT_LIB_1、_WlanEventHdl)

#undef EXT_LIB_REGAND_WLAN_Events
#define EXT_LIB_REGAL_WLAN_Events
#endif

然后是 fs.h 中的一个示例、其中显示了错误代码、然后显示了我需要的灰色区域。

/********* /
/*包含文件*/
/********* /

#include "simplelink.h"

#ifndef __FS_H__
#define __FS_H__

#ifdef __cplusplus
extern "C"{
#endif

/*!

\addtogroup 文件系统
@{

*

/********* /
/*宏声明*/
/********* /

/* FS 错误代码*/
#define SL_FS_OK (0)
#define SL_FS_ERR_EMPTY_SFLASH (-67)
#define SL_FS_ERR_FILE_NOT_SECURE_AND_SIGN (-66)
#define SL_FS_erasing_FLASH (-65)
#define SL_FS_file_has not _been _close_correctly (-64)
#define SL_FS_WRONG_signature (-63)
#define SL_FS_wrong_signature_or_Certificic_name_length (-62)
#define SL_FS_NOT_16_aligned (-61)
#define SL_FS_CERT_CHAIN_ERROR (-60)
#define SL_FS_FILE_NAME_存在(-59)
#define SL_FS_SECURITY_BUF_ALLOC (-58)
#define SL_FS_SECURE_FILE_MOUST_BE_COMMIT (-57)
#define SL_FS_ERR_INCORRECT_OFFSET_EN对 齐(-56)
#define SL_FS_ERR_FAILED_READ_NVMEM_HEADER (-55)
#define SL_FS_WRONG_FILE_NAME (-54)
#define SL_FS_FILE_SYSTEM_IS 已锁定(-53)
#define SL_FS_SECURITY_allert (-52)
#define SL_FS_FILE_UNVALID_FILE_SIZE (-51)
#define SL_FS_ERR_TOKEN_IS _NOT_VALID (-50)
#define SL_FS_NO_DEVICE_IS 加载(-49)
#define SL_FS_DATA_ADDRESS_SHOUD_BE_IN_DATA_RAM (-48)
#define SL_FS_DATA_IS 未对齐(-47)
#define SL_FS_ERR_overlap_detection_threshold (-46)
#define SL_FS_FILE_has RESERVE_NV_INDEX (-45)
#define SL_FS_ERR_MAX_FS_FILES IS _Larger (-44)
#define SL_FS_ERR_MAX_FS_FILES IS _SALES (-43)
#define SL_FS_FILE_MAX_SIZE 超过(-42)
#define SL_FS_INVALID_BUFFER_TO_READ (-41)
#define SL_FS_INVALID_BUFFER_TO_WRITE (-40)
#define SL_FS_ERR_FILE_IMAGE_IS 已损坏(-39)
#define SL_FS_ERR_SIZE =文件的大小_EXT_EXT_EXTRADED (-38)
#define SL_FS_WARNING_FILE_NAME_NOT_STEDEV (-37)
#define SL_FS_ERR_DEVICE_IS 未格式化(-36)
#define SL_FS_ERR_FAILED_WRITE_NVMEM_HEADER (-35)
#define SL_FS_ERR_NO_USE_NV_INDEX (-34)
#define SL_FS_ERR_FAILED_TO_ALLOCATE_MEM (-33)
#define SL_FS_ERR_FAILED_TO_READ_COMPLETE_2 (-32)
#define SL_FS_ERR_FAILED_TO_READ_COMPLETE_HEADER_1 (-31)
#define SL_FS_ERR_NO_USE_BLOCK_BLOCK_S (-30)
#define SL_FS_ERR_FILE_MAX_SIZE 比现有文件大(-29)
#define SL_FS_ERR_FILE_EXISE_ON_MODED_DEVICE_ID (-28)
#define SL_FS_ERR_INVALID_ACCESS_TYPE (-27)
#define SL_FS_ERR_FILE_END_EXISTS (-26)
#define SL_FS_ERR_PROGRAM (-25)
#define SL_FS_ERR_NO_ENTERINS_Available (-24)
#define SL_FS_ERR_FILE_ACCESS_ITH_FROM (-23)
#define SL_FS_ERR_BAD_FILE_MODE (-22)
#define SL_FS_ERR_FAILED_READ_NVFILE (-21)
#define SL_FS_ERR_FAILED_INIT_STORAGE (-20)
#define SL_FS_ERR_CONTINUE_WRITE_MOD_4 (-19)
#define SL_FS_ERR_FAILED_LOAD_FILE (-18)
#define SL_FS_ERR_INVALID_Handle (-17)
#define SL_FS_ERR_FAILED_TO_WRITE (-16)
#define SL_FS_ERR_OFFSET_OUT_of_range (-15)
#define SL_FS_ERR_ALLOC (-14)
#define SL_FS_ERR_READ_DATA_LENGTH (-13)
#define SL_FS_ERR_INVALID_FILE_ID (-12)
#define SL_FS_ERR_FILE_NOT_EXISTS (-11)
#define SL_FS_ERR_EMPTY_ERROR (-10)
#define SL_FS_ERR_INVALID_args (-9)
#define SL_FS_ERR_FAILED_TO_CREATE _FILE (-8)
#define SL_FS_ERR_FS_END_LOADED (-7)
#define SL_FS_ERR_UNKNOWN (-6)
#define SL_FS_ERR_FAILED_TO_CREE_LOCK_OBJ (-5)
#define SL_FS_ERR_DEVICE_NOT_LOADED (-4)
#define SL_FS_ERR_INVALID_魔术_NUM (-3)
#define SL_FS_ERR_FAILED_TO_READ (-2)
#define SL_FS_ERR_NOT_SUPPORTED (-1)
/*错误代码结束*/

然后、这全部呈灰色且不会定义到编译器。

#if _sl_include_FUNC (sl_FsOpen)
_i32 sl_FsOpen (const _u8 * pFileName、const _u32 AccessModeAndMaxSize、_u32 * pToken、_i32 * pFileHandle);
#endif

/*!
简要关闭存储设备中的文件

\param[in]文件 Hdl 指针到文件(从 sl_FsOpen 分配)
\param[in] pCertificateFileName 保留供将来使用。 使用 NULL。
\param[in] pSignature 保留供将来使用。 使用 NULL。
\param[in] SignatureLen 保留供将来使用。 使用0。

成功返回、返回0。 出错时、返回错误代码

sa sl_FsRead sl_FsWrite sl_FsOpen
注意调用 fs_close、签名="A"、签名长度= 1、以激活中止操作
警告
\PAR 示例:
代码
sl_FsClose (FileHandle、0、0、0);
结束代码
*
#if _sl_include_FUNC (sl_FsClose)
_i16 sl_FsClose (const _i32 FileHdl、const _u8* pCertificateFileName、const _u8* pSignature、const _u32 SignatureLen);
#endif

/*!
\brief 从存储设备中的文件中读取数据块

\param[in]文件 Hdl 指针到文件(从 sl_FsOpen 分配)
\param[in]特定读取块的偏移量
接收数据的\param[out] pData 指针
接收数据的长度为\param[in]

\Return on Success、返回读取的字节数。 出错时、返回负数

sa sl_FsClose sl_FsWrite sl_FsOpen
\note 属于\ref basic_API
警告
\PAR 示例:
代码
状态= sl_FsRead (FileHandle、0、readBuff[0]、readSize);
结束代码
*
#if _sl_include_FUNC (sl_FsRead)
_i32 sl_FsRead (const _i32 FileHdl、_u32 Offset、_u8* pData、_u32 Len);
#endif

/*!
\brief 将数据块写入存储设备中的文件

\param[in]文件 Hdl 指针到文件(从 sl_FsOpen 分配)
\param[in]要写入的特定块的偏移量
\param[in] pData 将传输的数据指针指向存储设备
传输数据的长度\param[in]

成功返回、返回写入的字节数。 出错时、返回错误代码

\sa
\note 属于\ref basic_API
警告
\PAR 示例:
代码
状态= sl_FsWrite (FileHandle、0、&buff[0]、readSize);
结束代码
*
#if _sl_include_FUNC (sl_FsWrite)
_i32 sl_FsWrite (const _i32 FileHdl、_u32 Offset、_u8* pData、_u32 Len);
#endif

/*!
\brief 获取文件信息

\param[in] pFileName 文件名
\param[in]令牌保留供将来使用。 使用0
\param[out] pFsFileInfo 返回文件的信息:标志、文件大小、分配的大小和令牌

成功返回、返回0。 出错时、返回错误代码

sa sl_FsOpen
\note 属于\ref basic_API
警告
\PAR 示例:
代码
状态= sl_FsGetInfo ("filename.html"、0、FsFileInfo);
结束代码
*
#if _sl_include_FUNC (sl_FsGetInfo)
_i16 sl_FsGetInfo (const _u8 * pFileName、const _u32 Token、SlfsFileInfo_t* pFsFileInfo);
#endif

/*!
简要删除存储中的特定文件或存储中的所有文件(格式)

\param[in] pFileName 文件名
\param[in]令牌保留供将来使用。 使用0
成功返回、返回0。 出错时、返回错误代码

\sa
\note 属于\ref basic_API
警告
\PAR 示例:
代码
状态= sl_FsDel ("filename.html"、0);
结束代码
*
#if _sl_include_FUNC (sl_FsDel)
_i16 sl_FsDel (const _u8 * pFileName、const _u32 Token);
#endif
/*!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Clark、

    您是否知道它的工作状态与现在的工作状态有何不同? 您是否能够将更改恢复为您所处的工作状态? 您能否分享您遇到的构建错误的屏幕截图?

    Jesu
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Clark、

    我假设您由于线程不活动而解决了您的问题。 如果您有新问题、请不要随意回答或创建新主题。

    祝您好运!

    Jesu