您尚未登录。

楼主 # 2023-11-24 14:29:24

muxi01
会员
注册时间: 2020-10-24
已发帖子: 54
积分: 136

[rockchip-rk3xxx] rkdeveloptool 在windows上的编译

工具使用说明
可执行文件,直接重命名为.exe

diff --git a/DefineHeader.h b/DefineHeader.h
index cea0f02..cebc639 100644
--- a/DefineHeader.h
+++ b/DefineHeader.h
@@ -21,12 +21,22 @@
 #include <sstream>
 #include <algorithm>
 using namespace std;
-typedef unsigned char BYTE, *PBYTE;
-typedef unsigned char UCHAR;
-typedef unsigned short WCHAR;
-typedef unsigned short USHORT;
-typedef unsigned int	UINT;
-typedef unsigned int	DWORD;
+// typedef unsigned char BYTE, *PBYTE;
+// typedef unsigned char UCHAR;
+// typedef unsigned short WCHAR;
+// typedef unsigned short USHORT;
+// typedef unsigned int	UINT;
+// typedef unsigned int	DWORD;
+
+#define PBYTE unsigned char *
+#define BYTE unsigned char
+#define UCHAR unsigned char
+#define WCHAR unsigned short
+#define USHORT unsigned short
+#define UINT unsigned int
+#define DWORD unsigned int
+
+
 #define ALIGN(x, a)		__ALIGN_MASK((x), (a) - 1)
 #define __ALIGN_MASK(x, mask)	(((x) + (mask)) & ~(mask))
 #define RK28_SEC2_RESERVED_LEN 473
diff --git a/RKLog.cpp b/RKLog.cpp
index 37dc62b..c24bbfe 100644
--- a/RKLog.cpp
+++ b/RKLog.cpp
@@ -74,8 +74,11 @@ bool CRKLog::Write(string text)
 	char szDateTime[100];
 	string  strName;
 	FILE *file=NULL;
-	time(&now);
-	localtime_r(&now, &timeNow);
+	//time(&now);
+	//localtime_r(&now, &timeNow);
+
+	now =time(0);
+	localtime_s(&timeNow,&now);
 	sprintf(szDateTime, "%04d-%02d-%02d.txt", timeNow.tm_year + 1900, timeNow.tm_mon + 1, timeNow.tm_mday);
 	strName = m_path + m_name+szDateTime;
 
diff --git a/crc.cpp b/crc.cpp
index 8bd2647..9dd6ab8 100644
--- a/crc.cpp
+++ b/crc.cpp
@@ -188,15 +188,52 @@ unsigned int crc32_le(unsigned int crc, unsigned char *p, unsigned int len)
 	}
 	return nAccum;
 */
+#if 0
+
+	unsigned long long      addr =(unsigned long long) p;
+	unsigned int      *tab = crc32table_le;
+	crc = crc ^ 0xFFFFFFFF;
+	if(( (addr & 3) && len)){
+		do {
+			unsigned char *p = (unsigned char *)addr;
+			DO_CRC(*p++);
+			addr = (unsigned long long)p;
+		} while ((--len) && (addr &3 ));
+	}
+	if((len >= 4)){
+		unsigned int save_len = len & 3;
+		len = len >> 2;
+		addr-=4;
+		do {
+			addr +=4;
+			crc ^= *((unsigned int *)addr);
+			DO_CRC(0);
+			DO_CRC(0);
+			DO_CRC(0);
+			DO_CRC(0);
+		} while (--len);
+		addr+=4;
+		len = save_len;
+	}
+	if(len){
+		do {
+			unsigned char *p = (unsigned char *)addr;
+			DO_CRC(*p++);
+			addr = (unsigned long long)p;
+		} while (--len);
+	}
+	crc = crc ^ 0xFFFFFFFF;
+	return crc;
+#else
 	unsigned int      *b =(unsigned int *)p;
 	unsigned int      *tab = crc32table_le;
 	crc = crc ^ 0xFFFFFFFF;
-	if((((long)b)&3 && len)){
+	if(( (((unsigned long long)b) & 3) && len)){
 		do {
 			unsigned char *p = (unsigned char *)b;
 			DO_CRC(*p++);
 			b = (unsigned int *)p;
-		} while ((--len) && ((long)b)&3 );
+		} while ((--len) && ((unsigned long long)b)&3 );
 	}
 	if((len >= 4)){
 		unsigned int save_len = len & 3;
@@ -221,7 +258,7 @@ unsigned int crc32_le(unsigned int crc, unsigned char *p, unsigned int len)
 	}
 	crc = crc ^ 0xFFFFFFFF;
 	return crc;
-
+#endif
 }
 
 #define CRC16_CCITT         0x1021  //CRC operator
diff --git a/main.cpp b/main.cpp
index 72bd94b..0e864ca 100644
--- a/main.cpp
+++ b/main.cpp
@@ -3292,7 +3292,7 @@ bool handle_command(int argc, char* argv[], CRKScan *pScan)
 	return bSuccess;
 }
 
-
+#include <unistd.h>
 int main(int argc, char* argv[])
 {
 	CRKScan *pScan = NULL;
@@ -3303,10 +3303,11 @@ int main(int argc, char* argv[])
 	struct stat statBuf;
 
 	g_ConfigItemVec.clear();
-	sprintf(szProgramProcPath, "/proc/%d/exe", getpid());
-	if (readlink(szProgramProcPath, szProgramDir, 256) == -1)
-		strcpy(szProgramDir, ".");
-	else {
+	// sprintf(szProgramProcPath, "/proc/%d/exe", getpid());
+	// if (readlink(szProgramProcPath, szProgramDir, 256) == -1)
+	// 	strcpy(szProgramDir, ".");
+	// else 
+	{
 		char *pSlash;
 		pSlash = strrchr(szProgramDir, '/');
 		if (pSlash)
@@ -3317,7 +3318,7 @@ int main(int argc, char* argv[])
 	strConfigFile = szProgramDir;
 	strConfigFile += "/config.ini";
 	if (opendir(strLogDir.c_str()) == NULL)
-		mkdir(strLogDir.c_str(), S_IRWXU | S_IRWXG | S_IROTH);
+		mkdir(strLogDir.c_str());
 	g_pLogObject = new CRKLog(strLogDir.c_str(), "log",true);
 
 	if(stat(strConfigFile.c_str(), &statBuf) < 0) {

离线

楼主 #1 2023-11-24 22:03:00

muxi01
会员
注册时间: 2020-10-24
已发帖子: 54
积分: 136

Re: [rockchip-rk3xxx] rkdeveloptool 在windows上的编译

好像不对,在这里失败了pComm =  new CRKUsbComm(dev, g_pLogObject, bRet);

离线

楼主 #2 2023-12-09 19:27:19

muxi01
会员
注册时间: 2020-10-24
已发帖子: 54
积分: 136

Re: [rockchip-rk3xxx] rkdeveloptool 在windows上的编译

在Linux下运行需要sudo 权限,否则同样的异常错误,具体原因不知道,建议在linux使用。

离线

#3 2024-04-16 10:14:08

taotieren
会员
注册时间: 2020-05-19
已发帖子: 116
积分: 151

Re: [rockchip-rk3xxx] rkdeveloptool 在windows上的编译

muxi01 说:

在Linux下运行需要sudo 权限,否则同样的异常错误,具体原因不知道,建议在linux使用。

这个是缺少 udev 的 rules 文件,可以参考这个包的处理

install -Dm644 99-rk-rockusb.rules -t "$pkgdir/usr/lib/udev/rules.d/"

udev 用户组的配置可以参考这里【gx-isptool】添加到 Arch Linux 的 AUR 仓库

离线

楼主 #4 2024-04-16 16:12:51

muxi01
会员
注册时间: 2020-10-24
已发帖子: 54
积分: 136

Re: [rockchip-rk3xxx] rkdeveloptool 在windows上的编译

群里某位大神写的xrock很好使

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn