jtag keil v11驱动_Keil MDK AGDI Drivers, ULink, JLink, ST-Link, NuLink, JTAGjet

AGDI Drivers

AGDI is an Application Program Interface (API) third-party developers can use to create hardware debugger drivers that interface directly with the Keil µVision Debugger. The purpose of AGDI is to provide a way to interface the Keil Debugger user-interface to a third-party's hardware debugging interface.

AGDI drivers are DLLs that are created using Microsoft Visual C++ and template files provided by Keil.

For further information please download Appnote 173 for ARM-based target systems or Appnote 145 for 8051 and C166 based systems.

AGDI drivers can interface to:

Emulators.

JTAG Debug Interfaces.

OCDS (on-chip debugging system) Interfaces.

Target Monitors.

Any other target debugging hardware.

#define _EXPO_ __declspec(dllexport)

extern _EXPO_ U32 AG_Init (U16 nCode, void *vp);extern _EXPO_ U32 AG_MemAtt (U16 nCode, UL32 nAttr, GADR *pA);extern _EXPO_ U32 AG_BpInfo (U16 nCode, void *vp);extern _EXPO_ AG_BP *AG_BreakFunc (U16 nCode, U16 n1, GADR *pA, AG_BP *pB);extern _EXPO_ U32 AG_HistFunc (U32 nCode, I32 indx, I32 dir, void *vp);extern _EXPO_ U32 AG_GoStep (U16 nCode, U32 nSteps, GADR *pA);extern _EXPO_ U32 AG_Serial (U16 nCode, U32 nSerNo, U32 nMany, void *vp);extern _EXPO_ U32 AG_MemAcc (U16 nCode, UC8 *pB, GADR *pA, UL32 nMany);extern _EXPO_ U32 AG_RegAcc (U16 nCode, U32 nReg, GVAL *pV);extern _EXPO_ U32 AG_AllReg (U16 nCode, void *pR);

AGDI Interface Functions

All functions that start with AG_ need to be defined in the target driver DLL. If a function executes correctly, the value 0 is returned to µVision, otherwise an error code should be returned. Note that the following exported functions must be defined, either fully functional or just as dummies:

FunctionDescription

AG_Init()

AGDI Initialize function.

AG_MemAtt()

Memory Attribute access function.

AG_BpInfo()

Breakpoint Set / Reset / Enable / Disable / Kill function.

AG_BreakFunc()

Breakpoint access function.

AG_GoStep()

Go / Step / Stop commands.

AG_Serial()

Read / Write a Serial Window function.

AG_MemAcc()

Access target memory function.

AG_RegAcc()

Read / Write a single Register function.

AG_AllReg()

Read / Write Registers function.

AG_HistFunc()

Trace History access function.

If this is not the case, µVision considers the target driver as invalid and cancels using it.

AGDI Callbacks

AGDI can borrow some of the functionality from µVision. This can be done by using the pCbFunc callback pointer, a function code and the appropriate parameters. Note that only the most important callback functions are described here. The additional ones can be found in AGDI.H near the end of the file.

typedef U32 (*pCBF) (U32 nCode, void *vp);#define AG_CB_TRUEXPR 1 //vp := 'EXP *' (use for Bp->ep)

#define AG_CB_PROGRESS 2 //vp := 'struct PgRess *'

#define AG_CB_INITREGV 3 //vp := 'REGDSC *' (into RegView)

#define AG_CB_EXECCMD 4 //vp := 'char *' command string

#define AG_CB_FORCEUPDATE 5 //vp := NULL, force general windows update

#define AG_CB_DISASM 6 //vp := 'DAAS *', disasm opcodes

#define AG_CB_INLASM 7 //vp := 'DAAS *', assemble szB[] into Opc[]

#define AG_CB_MSGSTRING 8 //vp := 'char *' text for message pane

#define AG_CB_GETDEVINFO 9 //vp := 'DEV_X66 *', get device info

#define AG_CB_SYMBYVAL 10 //vp := 'SYMDESC *', find symbol by value

#define AG_CB_SYMBYNAME 11 //vp := 'SYMDESC *', find symbol by name

#define AG_CB_SLE66MM 12 //vp := &slots[0] out of [512]

#define AG_CB_PHYS2MMU 13 //vp := (void *) ((DWORD) physAdr)

#define AG_CB_MMU2PHYS 14 //vp := (void *) ((DWORD) logicalAdr)

#define AG_CB_GETFLASHPARAM 15 //vp := (FLASHPARM *) or NULL

#define AG_CB_GETBOMPTR 16 //vp := &ioc /5.3.2003/

//Note: special callback for DTC-Messaging

#define AG_CB_DCTMSG_WRITE 17 //vp := write-access address

#define AG_CB_DISASM_EXT 18 //vp := 'DAS_MIXED *', disasm to file

#define AG_CB_LAREC_DATA 19 //vp := 'AGDI_LAREC *', send data-record to Logic-Analyzer

#define AG_CB_SHUTDOWN 20 //

#define AG_CB_GETSCOPEINFO 21 //vp := 'AG_SCOPE *', get Scope Info

#define AG_CB_ENUMFUNCTIONS 22 //vp := 'AG_BLOCK *'. enumerate App/Modules/Functions

Keil ULINK, ULINK2, ULINK Pro --UL2ARM.DLL, UM2CM3.DLL, ULP2ARM.DLL, ULP2CM3.DLL

TI LMIDK-AGDI -- LMIDK-AGDI.DLL

Nuvoton NuLink--Nu_Link.dll

ST ST-LINK -- ST-LINKIII-KEIL_SWO.dll

SiLabs UDA--SLAB_ADI.dll, SLAB_ADI_Util.dll, SLAB_CM_Keil.dll

Signum JTAGjet--SigUV3Arm.dll

PEMicro Pemicro_ArmCortexInterface.dll

Segger JLINK-- JLTAgdi.dll, JL2CM3.dll

TDRV0=BIN\UL2ARM.DLL("ULINK2/ME ARM Debugger")

TDRV1=BIN\UL2CM3.DLL("ULINK2/ME Cortex Debugger")

TDRV2=BIN\ABLSTCM.dll("Altera Blaster Cortex Debugger")

TDRV3=BIN\lmidk-agdi.dll("Stellaris ICDI")

TDRV4=Signum\SigUV3Arm.dll("Signum Systems JTAGjet")

TDRV5=Segger\JLTAgdi.dll("J-LINK / J-TRACE ARM")

TDRV6=Segger\JL2CM3.dll("J-LINK / J-TRACE Cortex")

TDRV7=BIN\ULP2CM3.DLL("ULINK Pro Cortex Debugger")

TDRV8=BIN\ULP2ARM.DLL("ULINK Pro ARM Debugger")

TDRV9=NULink\Nu_Link.dll("NULink Debugger")

TDRV10=SiLabs\SLAB_CM_Keil.dll("SiLabs UDA Debugger")

TDRV11=STLink\ST-LINKIII-KEIL_SWO.dll ("ST-Link Debugger")

TDRV12=BIN\CMSIS_AGDI.dll("CMSIS-DAP Debugger")

TDRV13=BIN\DbgFM.DLL("Fast Models Debugger")

TDRV14=PEMicro\Pemicro_ArmCortexInterface.dll("PEMicro Debugger")

// Import Functions from JLINLARM.dll ==========================================

// Keil\ARM\Segger\JLTAgdi.dll

// Keil\ARM\Segger\JL2CM3.dll

//

// Functions for DLL

//

JLINKARM_GetDLLVersion

JLINKARM_GetCompileDateTime

JLINKARM_OpenEx

JLINKARM_Close

JLINKARM_HasError

JLINKARM_EnableLog

JLINKARM_SetLogFile

JLINKARM_SetErrorOutHandler

JLINKARM_SetWarnOutHandler

// JL2CM3

JLINKARM_IsOpen

JLINKARM_GetDebugInfo

//

// Functions for DLL, JLINK, MCU

//

JLINKARM_ExecCommand

//

// Functions for JLINK

//

JLINKARM_GetSN

JLINKARM_GetEmuCaps

JLINKARM_GetOEMString

JLINKARM_GetFeatureString

JLINKARM_GetFirmwareString

JLINKARM_GetHardwareVersion

//

// Functions for JLINK

//

JLINKARM_SetResetType

JLINKARM_GetSpeedInfo

JLINKARM_GetSpeed

JLINKARM_SetSpeed

JLINKARM_EnableSoftBPs

// JL2CM3

JLINKARM_SetEndian

JLINKARM_SelectIP

JLINKARM_SelectUSB

JLINKARM_TIF_GetAvailable

JLINKARM_TIF_Select

JLINKARM_JTAG_SyncBits

JLINKARM_JTAG_StoreRaw

JLINKARM_EMU_SelectIP

JLINKARM_EMU_GetList

JLINKARM_EMU_SelectByUSBSN

//

// Functions for JLINK

//

JLINKARM_GetHWStatus

JLINKARM_GetScanLen

JLINKARM_GetId

JLINKARM_GetIdData

JLINKARM_JTAG_GetDeviceId

JLINKARM_GetDeviceFamily

// JL2CM3

JLINKARM_JTAG_GetDeviceInfo

//

// Functions for MCU Run

//

JLINKARM_Reset

JLINKARM_Step

JLINKARM_Go

JLINKARM_Halt

JLINKARM_IsHalted

// JL2CM3

JLINKARM_SetRESET

JLINKARM_ClrRESET

//

// Functions for MCU Watchpoint

//

JLINKARM_GetNumWPs

JLINKARM_SetWP

JLINKARM_ClrWP

//

// Functions for MCU Breakpoint

//

JLINKARM_GetNumBPUnits

JLINKARM_SetBPEx

JLINKARM_ClrBPEx

//

// Functions for MCU ETM

//

JLINKARM_ETM_IsPresent

JLINKARM_ETM_ReadReg

JLINKARM_ETM_WriteReg

//

// Functions for MCU Trace

//

JLINKARM_TRACE_Control

JLINKARM_TRACE_Read

// JL2CM3

JLINKARM_RAWTRACE_Control

JLINKARM_RAWTRACE_Read

JLINKARM_SWO_Control

JLINKARM_SWO_Read

//

// Functions for MCU Register and Memory

//

JLINKARM_ReadMem

JLINKARM_WriteMem

JLINKARM_ReadReg

JLINKARM_WriteReg

// JL2CM3

JLINKARM_WriteU8

JLINKARM_WriteU16

JLINKARM_WriteU32

JLINKARM_ReadMemU8

JLINKARM_ReadMemU16

JLINKARM_ReadMemU32

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值