- 博客(49)
- 资源 (1)
- 收藏
- 关注
原创 第一次写python的小程序
由于找不到pyinstaller命令,所以执行下面的命令来使用pyinstaller。安装pyinstaller:pip install pyinstaller。生成exe:python __main__.py -F test.py。功能:遍历目录下的所有txt文件将*和-之间的时间戳转换为rtc时间。pip show pyinstaller,来查找安装目录。cd 进入到查找到的目录的PyInstaller目录。
2023-11-01 11:06:24
191
原创 GDB调试
info 显示信息,info locals显示局部变量 info args显示参数 info break显示断点信息。p 打印 p a打印变量a的值 p/x a十六进制显示变量a的值。save breakpoints filename 保存断点信息。disable n 进制断点n。delete n 删除断点n。enable n 使能断点n。b 文件名:函数名/行号。
2023-08-17 09:23:18
87
原创 Harmony在Linux下编译以及如何提高编译速度
环境配置以及如何编译,可以参照鸿蒙的官网:文档中心下面主要谈谈如何提高编译速度:gradle assembleDebug --parallel -p 工程根路径--parallel这个参数只对多module工程起作用,所以尽可能的将工程模块化,如果是多个工程,不能模块化,就可以多个工程一起编译,然后新建一个Build的工程专门用于编译,修改Build根目录下的settings.gradle文件,添加:include ‘:xxxxx’ project(':xxxxx').projectDir =.
2022-03-11 10:32:13
309
原创 Ubuntu下QT程序的发布
由于QT程序需要在没有QT环境的PC上运行,所以需要准备程序的发布包,包含需要的bin文件、库文件、插件、配置文件以及要发布的程序,如下图所示。准备程序的桌面启动器文件和桌面图标,准备好的文件如下图所示。桌面图标就是一个PNG图片,作为显示在ubuntu的应用列表中的图标。桌面启动器文件(APMonitor.desktop)是重点,文件内容如下所示:[Desktop Entry]Name = APMonitorcomment = APMonitorEx...
2021-08-27 09:08:55
1282
原创 Linux下QT程序的发布及相关问题
最近,公司要求开发一个Linux上的有画面的程序,记得上学时,开发过嵌入式QT的程序,这是我对QT程序唯一的一点儿经验。这次开发我还是选择了QT。开发环境如下:PC系统版本:ubuntu14.04 QTCreator:5.8.0之前做过几个windows上 程序,使用的时VS、MFC之类的,商用的集成开发环境一切都是那么方便,由于是首次正式开发Linux上的界面程序,在发布的时候遇到了一些问题,现记录下来。Linux QT程序要想在没有QT环境的目标机运行,可以采用静态编译,也可以采用动态编译,
2020-10-30 09:46:21
476
原创 将Android10编译成真正的具有root权限的系统
修改su命令的源码位置:system/extras/su/su.cpp注释main函数的开始两行: //uid_t current_uid = getuid(); //if (current_uid != AID_ROOT && current_uid != AID_SHELL) error(1, 0, "not allowed");为其他用户添加su命令的可执行权限位置:system/core/libcutils/fs_config.cpp文件中搜索修改
2020-07-01 16:20:37
2742
1
原创 SD卡和文件系统那些事儿
最近在研究STM32F4的SD卡Fatfs文件系统,官方和开发板提供的例程完全可以使用,但是缺少了理论的支持,完全看不懂。所以在网上以及《零死角玩转STM32》上整理了一些SD卡相关的基础知识。SD卡的分类目前常用的存储卡按照尺寸可分为SD卡和micro SD卡(TF卡)(其实种类繁多,我只接触过这两种),按照容量可分为标准容量SD(不大于2GB)、高容量SDHC(大于2GB,不大于32GB)和超大容量SDXC(大于32GB,不大于2TB),还可以按照传输速度进行划分,SD2.0规范...
2020-06-03 10:22:24
6296
2
转载 Win10启动wifi共享源码(C#)
下面的代码是从网上下载的,具体从哪里下载的已经找不到链接了。源文件:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;using Windows.Devices...
2019-07-04 10:20:04
2513
6
转载 Win7启动承载网络的方式(代码)
下面的代码是从网上下载的,具体从哪里下载的已经找不到链接了。源文件:// WIFIMAIN.cpp : 实现文件////#include "stdafx.h"#include "pch.h"#include "WifiShareTool.h"#include "WIFIMAIN.h"// WIFIMAINIMPLEMENT_DYNAMIC(WIFIMAIN, CWn...
2019-07-04 10:16:44
566
原创 win7和win10对于wifi共享的不同
Win7:是以承载网络的方式来实现共享(hostednetwork) 设置:netsh wlan set hostednetwork mode=allow ssid=mywifi key=12345678 启动:netsh wlan start hostedwork 停止:netsh wlan stop hostedwork...
2019-07-04 10:12:22
632
原创 判断程序是否以管理员身份运行
BOOL IsAdministrator(void){ BOOL bIsElevated = FALSE; HANDLE hToken = NULL; if (!IsWindows7OrGreater()) { return FALSE; } if (OpenProcessToken(GetCurrentProcess(), TOK...
2019-07-04 09:59:46
1024
原创 windows防止程序重复启动
MFC(C++):在OnInitDialog()函数中。 CString strClassName = L"AJISWifiShareTool"; HANDLE m_hMutex = NULL; m_hMutex = OpenMutex(MUTEX_ALL_ACCESS, FALSE, strClassName); if (m_hMutex == NULL) { m_h...
2019-07-04 09:55:23
833
原创 简单的DHCP
使用win7的承载网络开启共享wifi,ICS分配IP地址比较慢,自己重新写了一个简单的DHCP协议,IP地址可以从2分配到254.可以用winshark来抓包,分析DHCP协议。mydhcp.cpp#include "pch.h"#include "mydhcp.h"#include <winsock2.h>#include <iphlpapi.h>#i...
2019-07-04 09:50:27
322
原创 Windows处理系统睡眠唤醒消息
MFC(C++):LRESULT CWifiShareToolDlg::WindowProc(UINT message, WPARAM wParam, LPARAM IParam){ if ((message == WM_POWERBROADCAST) && (wParam == PBT_APMRESUMEAUTOMATIC)) { } return CDialo...
2019-07-04 09:37:19
1523
原创 linux动态库及动态库的版本管理
Linux下动态库有三个名字:real name、so name、link name。real name:共享库本身的名字,命名格式为libname.so.x.y.z,lib是前缀,name是共享库的名字,so是后缀,x是主版本,y是次版本号,z是发布版本号。 主版本号、次版本号和发布版本号的意义如下: 主版本号:表示库的重大升级,比如改变了原有的接口。不...
2019-03-14 12:31:09
2124
原创 Android系统中添加声音文件和jar包等
1、添加jar包(1)system/core/rootdir/init.environ.rc.inexport BOOTCLASSPATH %BOOTCLASSPATH%:/system/framework/xxx.jar: /system/framework/xxx.jar(2)vendor/xx/libs/xxx在新建的目录中,添加xxx.jar、xxx.jar和xxx.mk文件。文件内容如下...
2018-06-20 15:06:04
857
转载 SD卡应用总结(FatFs)
SD卡应用总结(FatFs)此文转载地址为:http://bbs.eeworld.com.cn/thread-377465-1-1.html对于SD卡的应用,想必大家都尝试多。不过,很多网友恐怕只停留在实验的基础上吧。对于SD卡在文件系统下或者不带文件系统下,对SD卡的操作都是很简单的。是的,只是简单的文件读写确实不难。但是,如果每秒钟不停的写数据,而且是不停的工作,恐怕SD卡的应用就没有
2016-03-17 13:47:42
1996
原创 CString与char的相互转换
CString CharToCString(char *pText){int iLength = 0; wchar_t *pwText = NULL;CString csText = _T("");/* Get the number of wide character array */iLength = MultiByteToWideChar(CP_ACP
2015-12-16 08:42:11
428
转载 用MFC实现串口编程
用MFC实现串口编程(作者:付杰本文详细介绍了串行通信的基本原理,以及在Windows NT、Win98环境下用MFC实现串口(COM)通信的方法:使用ActiveX控件或Win API.并给出用Visual C++6.0编写的相应MFC32位应用程序。关键词:串行通信、VC++6.0、ActiveX控件、Win API、MFC32位应用程序、事件驱
2015-09-22 13:51:07
673
原创 windows下写日志文件的代码
void CreateLogFile(){ ofstream file(LOG_FILE_PATH,ios::binary); file.close();}bool isLogFileExist(){ bool bRet = false; fstream file; file.open(LOG_FILE_PATH, ios::binary |ios::in); if(!fi
2015-09-22 09:16:43
1278
原创 windows启动进程
BOOL StartupFTPServer(){ BOOL ret = FALSE; SHELLEXECUTEINFO shell = { sizeof(shell) }; shell.fMask = SEE_MASK_FLAG_DDEWAIT; shell.lpVerb = _T("open"); shell.lpFile = _T("FTPServer
2015-09-22 09:13:40
592
原创 通过进程名称查找和杀死进程
void KillRelatedProcess(char* cProcess){ HANDLE hSnapshot; PROCESSENTRY32 pe; hSnapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); Process32First(hSnapshot,&pe); do {
2015-09-22 09:11:41
512
原创 获取本地IP
获取本地IP地址,直接上代码:BOOL GetLocalPCIPAdrdr(CString& csIPAddr){ BOOL bRet = FALSE; char szHostName[128] = {0}; int iRet; WSADATA wsaData; struct hostent *pHost; int i; LPC
2015-09-22 09:07:41
363
原创 程序调用plink.exe发送命令设置路由
项目要求程序调用cmd.exe然后执行plink.exe登录到路由器,然后执行路由器的命令对其进行设置。本体和cmd.exe交换数据,发送命令到cmd.exe然后从其获取执行的结果进行判断。代码如下:初始化代码:BOOL CMotorolaSetDlg::OpenCMDProcess(){ SECURITY_ATTRIBUTES sa; STARTUPINFO si;
2015-09-22 09:01:56
1404
原创 windows系统下文件不能删除的原因
最近做的一个小项目,用MFC做了一个路由器设定的小工具。遇到了一个小问题,从路由器copy出它的配置文件到ftp服务器,获得路由的SSID等信息后,删除此配置文件,但就是删除不掉,怀疑有两个原因:用户权限和文件属性。开始时没怀疑文件的属性,一直以为是用户权限问题,结果还是删不掉。无意间发现文件是只读属性。下面是更改用户权限和删除文件的代码:BOOL CMotorolaSetDlg::Enabl
2015-09-22 08:51:53
704
原创 UpdateData和PreTranslateMessage函数
this->UpdateData(FALSE):的意义是更新控件关联变量的值到控件。this->UpdateData(TRUE):的意义是将控件的值更新到关联的变量。PreTranslateMessage返回TRUE:表示消息不交给系统处理。PreTranslateMessage返回FALSE:表示消息交给系统处理。
2015-09-02 09:06:19
341
原创 敏捷开发之道
1.做事。指责不会修复BUG。把矛头对准问题的解决办法,而不是人。这是真正有用处的正面效应。把重点放到解决问题上,而不是指责犯错者,或者去抱怨。“为了解决或缓解这个问题,我能够做什么?”、“你出现了什么问题,我能提供什么样的帮助?”。 2.欲速则不达。不要坠入快速的简单修复之中。要投入时间和精力保持代码的整洁、敞亮。如果时间紧迫,可以简单修复,但是简单修复之后要明其理,时间充裕时,要
2015-07-15 17:11:59
519
原创 CM3 STM32F的低功耗
Cortex M3低功耗的模式CM3提供了两种低功耗模式:sleep和deep sleep。在睡眠时,可以停止系统时钟(SYSCLK),但让FCLK继续走,以允许处理器能被SysTick异常唤醒。 寄存器位描述SCRSLEEPDEEP用于控制处理器使用sleep还是使用d
2015-07-15 17:10:36
1683
原创 ST芯片的引脚复用功能和重映射功能
重映射:将原来属于A引脚的默认的复用功能,转移到具有这个重映射功能的B引脚。当把GPIO用作EXTI外部中断或使用重映射功能的时候,必须开启AFIO时钟,使用默认复用功能的时候不用开启。
2015-07-15 17:05:14
1599
原创 使用Commander烧写RAM并运行方法
1、将kernel-ram.hex文件使用JFlash转换成bin文件;2、将转换好的kernel-ram.bin文件放置在D盘的根目录下;3、打开JLink-Commander,输入命令:loadbin d:\kernel-ram.bin 0x10000000(RAM起始地址);4、使用命令mem32 0x10000000,8查看RAM开始的数据,将前两个数据赋值给MSP和PC寄存器
2015-07-15 17:03:30
638
原创 一张图了解所有USB接口和线序
在OTG中,初始主机设备称为A设备,外设称为B设备。可用电缆的连接方式来决定初始角色。HNP(主机协商协议):当两个OTG设备使用电缆相连,检测到接地的ID引脚时,表示默认的是A设备(主机),而检测到ID引脚浮空的设备则认为是B设备(外设)。这两个角色不是一成不变的,可以通过HNP协议来转换角色。 SRP(对话请求协议):允许B设备请求A设备打开VBUS电源并启动一次对话。一次OT
2015-07-15 17:00:50
18831
原创 keil环境下载程序到RAM中运行
首先,修改链接脚本,将ROM区域的地址更改为RAM区域中的地址;其次,将option->debug->Initialization File中添加一个.ini文件,内容如下;FUNC void Setup (unsigned int region) { region &= 0xFFFF0000; SP = _RDWORD(region);
2015-07-15 16:58:50
2256
原创 一个尚不完善的printf
#ifndef __PRINTF_UART_H__#define __PRINTF_UART_H__#define PSTR(x) xtypedef void* va_list;#define _INTSIZEOF(n) ((sizeof(n)+sizeof(int)-1)&~(sizeof(int) - 1))#define va_start(ap,v) ( ap = (va
2015-07-15 16:57:38
289
原创 数制转换函数
EXPORT UW ltostr(UW Val,B *pString,UB Base,UW Length){ B c, *pInit; UB i,j; UW Len,SwapLen; *pString='\0'; pInit=pString; if(Val==0) { *pString++='0'; *pStri
2015-07-15 16:55:16
614
原创 push-pull和open drain
push-pull(推挽):一般指两个三极管分别受两个互补信号的控制,总是在一个三极管导通的时候另一个截止。它既可以输出高电平,也可以输出低电平,用于连接数字器件。open drain(开漏):开漏中的“漏”指的是MOSFET的漏极。开漏的引脚,如果不连接上拉电阻就只能输出低电平(例如51单片机的P0口,当我们使用时要加排阻,这样就可以输出高电平啦!)。因此开漏输出适合做电流型的驱
2015-07-15 15:10:10
1128
原创 Linux下基于tty架构的串口驱动分析(S3C2440)
在TTY驱动架构中有四个重要的结构体:termios、tty_driver、tty_operations和tty_struct。下面分别介绍:(1) termios结构体struct termios{ tcflag_t c_iflag; tcflag_t c_oflag; tcflag_t
2015-07-15 15:07:33
547
原创 可重入和不可重入的概念
TaskA调用函数Fun(),Fun()函数还没执行完,启动TaskB,TaskB也调用函数Fun(),函数Fun()内没有全局变量,或者是对硬件的操作等影响全局性的影响,就是可重入,否则就是不可重入。
2015-07-15 15:06:22
442
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人