实现MAXQ2000微控制器的JTAG加载主机
[09-13 17:04:13] 来源:http://www.88dzw.com 控制技术 阅读:8661次
文章摘要:将代码装入程序存储器为演示JTAG启动加载程序的功能,演示应用程序需要通过JTAG连接,把代码装入到从机MAXQ2000中。在这个例子中,装入的代码是一个简单例程,它启动LCD控制器,在LCD显示屏上显示一个4位数。装入MAXQ2000的代码基于下面的简单演示工程。 org 0 ljump mainorg 20hmain: move LCRA, #03E0h ; xxx0001111100000 ; 00 - DUTY : Static
实现MAXQ2000微控制器的JTAG加载主机,标签:计算机控制技术,工厂电气控制技术,http://www.88dzw.com将代码装入程序存储器
为演示JTAG启动加载程序的功能,演示应用程序需要通过JTAG连接,把代码装入到从机MAXQ2000中。在这个例子中,装入的代码是一个简单例程,它启动LCD控制器,在LCD显示屏上显示一个4位数。装入MAXQ2000的代码基于下面的简单演示工程。
org 0 ljump main org 20h main: move LCRA, #03E0h ; xxx0001111100000 ; 00 - DUTY : Static ; 0111 - FRM : Frame freq ; 1 - LCCS : HFClk / 128 ; 1 - LRIG : Ground VADJ ; 00000 - LRA : RADJ = Min move LCFG, #0F3h ; 1111xx11 ; 1111 - PCF : All segments enabled ; 1 - OPM : Normal operation ; 1 - DPE : Display enabled move LCD0, #LCD_CHAR_0 move LCD1, #LCD_CHAR_0 move LCD2, #LCD_CHAR_0 move LCD3, #LCD_CHAR_2 move LCD4, #00h sjump $然而,由于我们是从演示应用程序中装入代码字节,而不是从硬件编码的十六进制文件中装入(当采用MTK或者MAX-IDE装入代码时会有这种情况),因此,演示应用程序会根据用户输入来修改装入的应用程序。
在装入代码前,JTAG通信演示应用程序首先告诉用户输入一个4位十进制数,然后修改要装入的应用程序,如下所示。
- LCD上显示的数字是用户输入的4位数。
- 密码区的前4个字节(从字地址010h开始)被设置为用户输入的4字符ASCII值。
;;;; ;;;; First load - LJUMP 0020h at start of program memory ;;;; move DP[0], #0 move @DP[0], #CMD_LOAD_CODE_VARIABLE move @++DP[0], #4 ; Length - 4 bytes move @++DP[0], #00h ; AddrL (byte address 0000h) move @++DP[0], #00h ; AddrH move @++DP[0], #000h ; 00 0B 20 0C - ljump 0020h move @++DP[0], #00Bh move @++DP[0], #020h move @++DP[0], #00Ch move @++DP[0], #000h ; Padding move @++DP[0], #000h ; Padding move @++DP[0], #55h move LC[1], DP[0] move DP[0], #0 nop call sendCommand nop jump C, main_failJTAG call getStatus jump C, main_failJTAG move Acc, A[3] ; Check that loader status is 00h (no error) jump NZ, main_failStatus以同样的方式装入其他两个存储器代码块。
验证程序存储器代码
一旦装入代码后,有几种方法来验证是否正确装入。- 没有使用装入代码可变长度命令(10h),而是使用装入和验证代码可变长度命令(50h)。后一命令结合了代码装入操作和验证步骤。
- 或者,也可以调用验证代码可变长度命令(40h)来单独进行验证。
- 没有让启动加载程序验证装入的代码,而是使用卸载代码可变长度(20h)命令验证装入的代码是否匹配发送的数据,JTAG主机直接验证装入的数值。
从程序存储器卸载代码
装入所有代码后,JTAG演示的最后一步是读回一个块中的所有代码。向启动加载程序发送卸载代码可变长度(20h)命令来完成这一读操作。这一命令的参数是开始卸载的地址(读),以及卸载的字节数。注意,对于所有的JTAG启动加载程序命令,必须为每一读回的字节发送一个字节。因此,这一命令需要大量的零填充字节,从程序存储器读取每一字节都需要一个。;;;; ;;;; Dump program code ;;;; move DP[0], #str_dumpCodeVariable call txString move DP[0], #0 move @DP[0], #CMD_DUMP_CODE_VARIABLE move @++DP[0], #1 ; Indicates single byte length (<256 bytes) move @++DP[0], #00h ; AddrL (byte address 0000h) move @++DP[0], #00h ; AddrH move @++DP[0], #128 ; Length - 128 bytes move LC[1], #128 main_loop1: move @++DP[0], #00h djnz LC[1], main_loop1 move @++DP[0], #000h ; Padding move @++DP[0], #000h ; Padding move @++DP[0], #55h move LC[1], DP[0] move DP[0], #0 nop call sendCommand nop jump C, main_failJTAG call getStatus jump C, main_failJTAG move Acc, A[3] ; Check that loader status is 00h (no error) jump NZ, main_failStatus
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] 下一页
Tag:控制技术,计算机控制技术,工厂电气控制技术,控制技术
《实现MAXQ2000微控制器的JTAG加载主机》相关文章
- › 实现MAXQ2000微控制器的JTAG加载主机
- 在百度中搜索相关文章:实现MAXQ2000微控制器的JTAG加载主机
- 在谷歌中搜索相关文章:实现MAXQ2000微控制器的JTAG加载主机
- 在soso中搜索相关文章:实现MAXQ2000微控制器的JTAG加载主机
- 在搜狗中搜索相关文章:实现MAXQ2000微控制器的JTAG加载主机
分类导航
最新更新