• 大小: 14.89MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-06-13
  • 语言: C/C++
  • 标签: JLINK  ARM  C++  linux  

资源简介

支持CORTEX系列芯片读写,可实现jlink rtt功能,通过JLINK编写单片机烧写上位机程序参考,C++代码

资源截图

代码片段和文件信息

//============================================================================
// Name        : udt-view.cpp
// Author      : houxd
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C++ Ansi-style
//============================================================================

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#define CTRL_BLK_FLAG “tHiSISflagSTRforUdt2017109“ /*for searching use*/
#define CTRL_BLK_ALIGN (0x1000) /*4k align*/

#pragma pack(push)
#pragma pack(1)
struct CtrlBlkInfo {
uint32_t flag;
uint32_t data;
};
struct CtrlBlk {
uint8_t flag[31];
uint8_t actflag;
CtrlBlkInfo tx;
CtrlBlkInfo rx;
uint8_t txbuf[256];
uint8_t rxbuf[256];
};
#pragma pack(pop)

#define TRAD_OFFSET(m) (cb_addr+offsetof(CtrlBlkm))

uint32_t cb_addr = 0;
CtrlBlk ctrl_blk;
FILE* flog;
time_t log_time;
uint32_t log_tickcount;
volatile bool run_flag = 1;

bool (*JlinkARM_IsHalted)(void);
bool (*JlinkARM_Halt)(void);
void (*JlinkARM_Open)(void);
void (*JlinkARM_Close)(void);
bool (*JlinkARM_IsOpen)(void);
uint32_t (*JlinkARM_GetSN)(void);
uint32_t (*JlinkARM_GetId)(void);
uint32_t (*JlinkARM_GetDLLVersion)(void);
uint32_t (*JlinkARM_GetSpeed)(void);
uint32_t (*JlinkARM_ReadDCC)(uint32_t *buf uint32_t size int32_t timeout);
uint32_t (*JlinkARM_WriteDCC)(const uint32_t *buf uint32_t sizeint32_t timeout);
uint32_t (*JlinkARM_ReadDCCFast)(uint32_t *buf uint32_t size int32_t timeout);
uint32_t (*JlinkARM_WriteDCCFast)(const uint32_t *buf uint32_t sizeint32_t timeout);
uint32_t (*JlinkARM_WaitDCCRead)(uint32_t timeout);
void (*JlinkARM_SetSpeed)(uint32_t spd);
uint32_t (*JlinkARM_ExecCommand)(const char* cmd uint32_t a uint32_t b);

void (*JlinkARM_WriteU8)(uint32_t addr uint8_t dat);
void (*JlinkARM_WriteU16)(uint32_t addr uint16_t dat);
void (*JlinkARM_WriteU32)(uint32_t addr uint32_t dat);
uint32_t (*JlinkARM_ReadMemU8)(uint32_t addr uint32_t leng uint8_t *bufuint8_t *status);
uint32_t (*JlinkARM_ReadMemU16)(uint32_t addr uint32_t leng uint16_t *bufuint8_t *status);
uint32_t (*JlinkARM_ReadMemU32)(uint32_t addr uint32_t leng uint32_t *bufuint8_t *status);
void (*JlinkARM_ReadMemHW)(uint32_t addr uint32_t leng uint8_t *buf);
uint32_t (*Jlink_TIF_Select)(uint32_t tif);
uint32_t (*Jlink_Connect)(void);
uint32_t (*Jlink_IsConnected)(void);
void (*JlinkARM_ReadMem)(uint32_t addr uint32_t leng uint8_t *buf);
void (*Jlink_ReadMemU8)(uint32_t addr uint32_t leng uint8_t *bufuint8_t *status);
uint32_t (*Jlink_GetMemZones)(uint32_t a uint32_t b);
void (*JlinkARM_Go)(void);

int load_jlinkarm_dll(char *libpath) {
void* lib = dlopen(libpath RTLD_NOW);
if (lib == NULL) {
return -1;
}

JlinkARM_Open = (void (*)(void))(dlsym(lib “JlinkARM_Open“));
JlinkARM

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-10-10 05:23  jlinkUDT-master\
     文件       13756  2017-10-10 05:23  jlinkUDT-master\.cproject
     文件         809  2017-10-10 05:23  jlinkUDT-master\.project
     目录           0  2017-10-10 05:23  jlinkUDT-master\.settings\
     文件        2085  2017-10-10 05:23  jlinkUDT-master\.settings\language.settings.xml
     目录           0  2017-10-10 05:23  jlinkUDT-master\Debug\
     文件          16  2017-10-10 05:23  jlinkUDT-master\Debug\libjlinkarm.so
     文件          21  2017-10-10 05:23  jlinkUDT-master\Debug\libjlinkarm.so.6
     文件    16562560  2017-10-10 05:23  jlinkUDT-master\Debug\libjlinkarm.so.6.20.4
     文件          20  2017-10-10 05:23  jlinkUDT-master\Debug\libjlinkarm_x86.so
     文件          25  2017-10-10 05:23  jlinkUDT-master\Debug\libjlinkarm_x86.so.6
     文件    15648740  2017-10-10 05:23  jlinkUDT-master\Debug\libjlinkarm_x86.so.6.20.4
     文件        3246  2017-10-10 05:23  jlinkUDT-master\Debug\log-20171009.txt
     文件       93148  2017-10-10 05:23  jlinkUDT-master\Debug\log-20171010.txt
     文件        1336  2017-10-10 05:23  jlinkUDT-master\Debug\makefile
     文件         246  2017-10-10 05:23  jlinkUDT-master\Debug\objects.mk
     文件         528  2017-10-10 05:23  jlinkUDT-master\Debug\sources.mk
     目录           0  2017-10-10 05:23  jlinkUDT-master\Debug\src\
     文件         689  2017-10-10 05:23  jlinkUDT-master\Debug\src\subdir.mk
     文件          36  2017-10-10 05:23  jlinkUDT-master\Debug\src\udt-view.d
     文件      197912  2017-10-10 05:23  jlinkUDT-master\Debug\src\udt-view.o
     文件      105840  2017-10-10 05:23  jlinkUDT-master\Debug\udt-view
     文件           0  2017-10-10 05:23  jlinkUDT-master\Readme.md
     目录           0  2017-10-10 05:23  jlinkUDT-master\src\
     文件       15194  2017-10-10 05:23  jlinkUDT-master\src\udt-view.cpp
     目录           0  2017-10-10 05:23  jlinkUDT-master\target\
     文件        4613  2017-10-10 05:23  jlinkUDT-master\target\jlinkudt.c
     文件         421  2017-10-10 05:23  jlinkUDT-master\target\jlinkudt.h

评论

共有 条评论