自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 【无标题wnahsanwnashan

【代码】【无标题wnahsanwnashan。

2023-09-15 14:53:07 42 1

原创 等待时间函数

如果 nanosleep 函数由于某种原因失败(例如,接收到一个信号),它将返回-1,并且rem 结构将包含剩余的未休眠时间。将传入的时间值赋给 timespec 结构的相应成员。我们包含 <time.h> 和 <stdio.h> 头文件来使用 nanosleep 和 printf 函数。这个函数是个简单且通用的等待时间函数,在实际使用时,你可能需要添加更多的错误处理和检查代码以使其更健壮。在 main 函数中,我们调用 waitTime 函数来等待1.5秒(1秒和500000000纳秒)。

2023-09-08 17:40:38 249 1

原创 翻译好好好

The customer configuration area for CC26x2 is called CCFG and is located in the uppermost flash sector.The CC26x2 devices have one flash size, 352 KB, and the bootloader configuration absolute address is0x0005.7FD8. The CC26x2 CCFG is also memory mapped

2023-09-08 13:57:36 51 1

原创 BL_CC2650_BL_CONFIG_ENABLED_BM解释

SBL_CC2650_BL_CONFIG_ENABLED_BM 是一个宏或常量,用于表示CC2650微控制器的引导加载程序(Bootloader)配置中启用的位掩码(Bit Mask)。在这个示例中,SBL_CC2650_BL_CONFIG_ENABLED_BM被定义为0x01,这意味着二进制中的最低位用于表示引导加载程序的启用/禁用状态。在你的原始代码中,它用于测试正在写入的数据是否尝试更改引导加载程序的配置,如果是,它会根据该信息调整写入的行为。

2023-09-08 13:48:09 47 1

原创 write写入函数的注意事项

Bootloader Configuration Address(引导加载程序配置地址): 这是一个特殊的地址,其中存储了有关引导加载程序的配置信息。这样做的目的是,如果引导加载程序配置正在更改(即,它被禁用),它被视为一个特殊的情况,并且需要单独处理,以避免不必要的错误或问题。如果不更改引导加载程序配置,代码将创建一个传输,其中包含所有要写入的数据,而不会分开处理引导加载程序配置数据。// 此函数应返回引导加载程序启用地址的值,这里是一个占位实现。// 此函数应返回地址所在的页码,这里是一个占位实现。

2023-09-08 11:20:58 43 1

原创 writefalshrange函数

define SBL_CC2650_MAX_BYTES_PER_TRANSFER 128 // 示例值,请根据实际情况调整。#define SBL_CC2650_BL_CONFIG_ENABLED_BM 0xFF // 示例值,请根据实际情况调整。#define CMD_RET_UNKNOWN_CMD 0xFF // 示例值,请根据实际情况调整。// 这个函数需要您自己实现,读取设备的状态。

2023-09-08 09:31:31 33 1

原创 readramsize函数

接着,我们定义了两个uint32_t类型的变量addr和value。首先,我们包含了必要的头文件:stdint.h用于uint32_t定义,stdlib.h用于NULL定义,和string.h用于strerror函数。我们定义了readRamSize函数,它接受一个指向uint32_t类型的指针pui32RamSize作为参数,并返回一个uint32_t类型的值。最后,如果pui32RamSize不是NULL,我们将m_ramSize的值存储在pui32RamSize所指向的内存位置。

2023-09-07 17:45:38 38

原创 calculateRamSize

【代码】calculateRamSize。

2023-09-07 17:19:07 21

原创 readmemory32函数

注意:此代码需要与其他相关函数(如ulToCharArray, min, setProgress, isConnected, sendCmd, getCmdResponse, getResponseData, sendCmdResponse, setState等)一起使用,这些函数应根据您的代码库适当定义。65-71: 发送读取命令,并检查是否收到了成功的响应(ACK)。12: 定义retCode变量并初始化为SBL_SUCCESS,该变量用于存储函数的返回代码。1-6: 导入必要的头文件并定义宏。

2023-09-07 15:35:09 90

原创 readflashsize

define SBL_SUCCESS 0, #define SBL_CC2652_FLASH_SIZE_CFG 0x50001234, #define SBL_CC2652_PAGE_ERASE_SIZE 4096: 这些行定义了几个宏,它们分别代表操作成功的代码、CC2652闪存大小配置的地址和一页擦除的大小。*pui32FlashSize = value * SBL_CC2652_PAGE_ERASE_SIZE: 计算闪存的大小,它是低8位值与页擦除大小的乘积。

2023-09-07 15:04:51 23

原创 reset函数

通信初始化变量(m_bCommInitialized in C++)已更名为g_bCommInitialized并定义为全局变量,因为C语言没有类来封装此变量。原C++方法中的每个步骤都被保留,但是调用getCmdResponse时使用了指针来传递bSuccess变量,这是C语言中引用的等价物。我们假设sendCmd, getCmdResponse, 和setState函数已经被定义和实现。在C语言版本中,SblDeviceCC2650_reset函数是一个全局函数,而不是类的成员函数。

2023-09-06 17:58:38 174 1

原创 cmd_send_data

我们假设这些常量(如SBL_SUCCESS, SBL_ERROR, SBL_CC2650_MAX_BYTES_PER_TRANSFER, CMD_SEND_DATA)已在其他地方定义。对于getCmdResponse函数,我们假设它接受一个bool指针和一个整数作为参数。我们将bSuccess的地址传递给它,这样它可以更新bSuccess的值。函数cmdSendData不再是一个类的成员函数,所以我们去掉了类作用域(SblDeviceCC2650::)。

2023-09-06 16:58:49 64 1

原创 cmddownload

请注意,这个C语言版本的代码需要你提供其他函数的C语言实现,如addressInFlash、setState、sendCmd、getCmdResponse和ulToCharArray。在C语言中,我们使用bool数据类型来表示布尔值,并用true和false来表示真和假,这需要#include 头文件。我们去除了C++类特定的函数调用,如setState和sendCmd,而是直接调用了普通C函数(你需要提供这些函数的C语言版本实现)。

2023-09-06 14:56:17 30 1

原创 readstatus

原有的C++方法调用(如 isConnected())已被更改为C语言风格的函数调用(如 SblDeviceCC2650_isConnected())。函数的签名已被修改为 uint32_t SblDeviceCC2650_readStatus(uint32_t *pui32Status),以遵循C语言的函数命名和定义规则。在实际代码中,您可能需要根据实际情况调整这些函数和变量的名称和用法。在C语言中,我们通常不在赋值语句中直接使用if语句中的返回值,因此将相关行更改为两步:首先是赋值,然后是比较。

2023-09-05 20:09:47 39

原创 【无标题】

这段代码的功能是保持和原始的C++代码相同的功能,但使用C语言的语法和结构。注意,这里的generateCheckSum和其他几个函数需要根据您的实际代码和需求来实现和调整。数据头读取:尝试读取2字节的数据头,包含负载长度和校验和,使用循环直到满足条件或达到最大重试次数。负载长度和校验和验证:验证从数据头读取的负载长度和校验和是否在允许的范围内。函数签名和结构体定义:定义了与原C++代码中的类等效的结构体和函数。校验和验证:验证接收到的数据的校验和是否与数据头中的校验和匹配。

2023-09-05 14:07:05 23

原创 【getresponsedata】

同时,您需要将C++类中的函数和成员变量转换为C语言的函数和结构体成员变量。数据头接收: 在一个do-while循环中,它尝试读取2字节的数据头,包含负载长度和校验和。结构体定义: 定义了两个结构体SblDevice和ComType来模拟您的原始代码中的类。包含头文件和宏定义: 包含了必要的头文件和定义了一些宏,这些宏用于表示不同的错误代码。校验和验证: 验证接收到的数据的校验和是否与数据头中的校验和匹配。负载长度和校验和检查: 检查接收到的负载长度和校验和是否合法。// 其他相关的函数声明。

2023-09-05 11:46:49 34

原创 getcmdresponse

它尝试读取来自设备的ACK(Acknowledgement)或NAK(Negative Acknowledgement)响应,并根据收到的响应返回相应的状态代码。这个C版本的代码应该具有与给定的C++代码相同的功能,但你需要确保isInitiated, setState和readBytes这些函数在你的代码库中有适当的C语言实现。结构体定义: 定义了两个结构体SblDevice和ComType,它们在这里主要作为占位符,表示你的代码库中的实际结构体。宏定义了一些状态代码,用于表示函数的返回状态。

2023-09-05 11:23:23 21

原创 【sendcmd】

首先,我们包含必要的头文件,其中包括stdint.h(为了uint32_t等类型),stdio.h(用于printf),string.h(用于memcpy函数),和stdlib.h(为了malloc和free函数)。然后,我们有一个函数convertCmdForEarlySamples,它处理对早期版本的命令ID转换(该函数的实现细节取决于你的具体需求和项目架构)。首先设置数据包的长度,接着设置校验和和命令ID,然后如果有任何要发送的数据,我们使用memcpy函数将其复制到数据包。

2023-09-05 10:27:26 289

原创 生成checksum

函数原型是 uint8_t generateCheckSum(uint32_t ui32Cmd, const char *pcData, uint32_t ui32DataLen),返回一个8位无符号整数作为校验和。这是因为我们是通过将ui32Cmd强制转换为uint8_t来实现的。该函数基本上是计算命令ID的低8位和数据中所有字节的累积和,这种方法通常用于校验数据传输的准确性,以识别在传输过程中是否有任何数据损坏或错误。ui32Cmd(uint32_t类型): 命令ID,它是一个32位无符号整数。

2023-09-05 10:03:13 83

sendautobaud函数

sendautobaud函数

2023-09-08

writefalshrange函数

writefalshrange函数

2023-09-07

readramsize函数

readramsize函数

2023-09-07

calculateRamSize(函数

calculateRamSize(函数

2023-09-07

readmemory32函数接口

readmemory32函数接口

2023-09-07

readflashsize

readflashsize

2023-09-07

reset函数,最后调用

reset函数,最后调用

2023-09-06

进行刷写数据,cmd send data

进行刷写数据,cmd send data

2023-09-06

cmddownload函数,发送写入时候必须步骤

cmddownload函数,发送写入时候必须步骤

2023-09-06

readstatus函数

readstatus函数

2023-09-05

函数出现状况ICJ立刻下载可擦

函数出现状况ICJ立刻下载可擦

2023-09-05

C语言,转换,c++就是

C语言,转换,c++就是

2023-09-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除