实现MAXQ2000微控制器的JTAG加载主机

模拟技术 时间:2012-03-19 来源:网络
进行验证。
  • 没有让启动加载程序验证装入的代码,而是使用卸载代码可变长度(20h)命令验证装入的代码是否匹配发送的数据,JTAG主机直接验证装入的数值。
  • 从程序存储器卸载代码

    装入所有代码后,JTAG演示的最后一步是读回一个块中的所有代码。向启动加载程序发送卸载代码可变长度(20h)命令来完成这一读操作。这一命令的参数是开始卸载的地址(读),以及卸载的字节数。注意,对于所有的JTAG启动加载程序命令,必须为每一读回的字节发送一个字节。因此,这一命令需要大量的零填充字节,从程序存储器读取每一字节都需要一个。
    ;;;;;;;; Dump program code;;;;move DP[0], #str_dumpCodeVariablecall txStringmove DP[0], #0move @DP[0], #CMD_DUMP_CODE_VARIABLEmove @++DP[0], #1 ; Indicates single byte length (256 bytes)move @++DP[0], #00h ; AddrL (byte address 0000h)move @++DP[0], #00h ; AddrHmove @++DP[0], #128 ; Length - 128 bytesmove LC[1], #128main_loop1:move @++DP[0], #00hdjnz LC[1], main_loop1 move @++DP[0], #000h ; Paddingmove @++DP[0], #000h ; Paddingmove @++DP[0], #55hmove LC[1], DP[0]move DP[0], #0nopcall sendCommandnopjump C, main_failJTAGcall getStatusjump C, main_failJTAGmove Acc, A[3] ; Check that loader status is 00h (no error)jump NZ, main_failStatus
    读取这些代码字节后,JTAG演示应用程序通过串口以十六进制格式输出这些代码字节。

    退出启动加载程序

    单字节命令集0中的命令01h (退出启动加载程序)导致启动加载程序完成操作,并退出,如下所示。 由于退出启动加载程序命令自动清除SPE和PSS位,而后面的复位清除TAP控制器,使它返回旁路模式,因此,不需要JTAG主机来完成这些操作。
    ;;;;;;;; Exit loader mode and allow program code to execute;;;;call waitForPromptmove Acc, #CMD_EXIT_LOADERcall shiftDRmove Acc, #00hcall shiftDRmove Acc, #00hcall shiftDRmove Acc, #00hcall shiftDR

    操作演示

    需要下面的硬件和软件来运行JTAG启动加载程序演示。

    硬件 软件 设置说明
    1. 如果还没有安装MAX-IDE,按照MAXQ2000评估套件中的文档说明进行下载并安装。
    2. 如果还没有安装MTK,按照MAXQ2000评估套件中的文档说明进行下载并安装。
    3. 连接LCD子卡和从机MAXQ2000板的J3插座,如前面的图1所示。LCD子卡应固定在MAXQ2000评估板的上部。
    4. 在两块MAXQ2000评估板(在Y1)上安装8.00MHz晶振。
    5. 在主机MAXQ2000板的原型区安装2 x 5 JTAG插座,引脚连接至主机MAXQ2000引脚,如表1所列。
    6. 配置串口至JTAG板以及两块MAXQ2000评估板上的跳线和DIP开关,如表2所列。
    7. 使用DB9串行电缆连接PC的COM1口和串口至JTAG板的J1。
    8. 将第一个5V电源连接至串口至JTAG板的J2。
    9. 将第二个5V电源连接至从机MAXQ2000评估板的J1。
    10. 使用第一条JTAG电缆,连接串口至JTAG板的P2和主机MAXQ2000板的J4。红色线应连接两个JTAG插座的引脚1。
    11. 使用第二条JTAG电缆,连接主机MAXQ2000板原型区的JTAG插座和从机MAXQ2000板的J4。红色线应连接两个JTAG插座的引脚1。
    编译并装入JTAG演示
    1. 下载JTAG演示软件包,把它解压缩到工作路径中。
    2. 启动MAX-IDE。
    3. 打开两路5V电源。
    4. 从菜单中选择ProjectArrowOpen Project ,选择maxqjtag.prj工程文件,打开它。
    5. 从菜单中选择DebugArrowMake。应出现"Build Successful"消息。
    6. 从菜单中选择DebugArrowRun。应出现一连串的"Loading"消息,随后是"Done"。
    7. 从菜单中选择DebugArrowStop。
    8. 关闭MAX-IDE。
    9. 关掉电源。
    运行JTAG演示
    1. 在断电情况下,从串口至JTAG板断开DB9串行电缆。
    2. DB9电缆连接至主机MAXQ2000板的J5。
    3. 启动MTK。在起始对话框中选择"Dumb Terminal"。
    4. 从菜单中选择OptionsArrowConfigure Serial Port。在对话框中,设置Port为COM1,Speed为9600波特率。
    5. 从菜单中选择TargetArrowOpen COM1 at 9600 baud。
    6. 打开电源。
    如果已经装入应用程序,并且都连接正确,串口将输出以下文本(图5)。

    实现MAXQ2000微控制器的JTAG加载主机
    图5. 演示应用程序,串口提示符

    现在输入一个4位十进制数;不需要随后按下回车键。演示应用程序会完成剩下的操作(主机擦除、装入代码和卸载代码),并输出结果,以及从程序存储器中卸载的十六进制字节值,如图6所示。

    实现MAXQ2000微控制器的JTAG加载主机
    图6. 演示应用程序,串口输出

    结论

    利用一组标准命令,MAXQ微控制器提供的JTAG启动加载程序使外部JTAG主机能够轻松地识别MAXQ微控制器,并对其进行编程。本应用笔记中的代码可以用作构建全功能JTAG启动加载主机应用程序的出发点,以识别、初始化、装入和验证支持标准启动加载程序命令集MAXQ微控制器的程序和数据存储器内容。
    1 2 3 4 5 6 7

    关键词:MAXQ2000微控制器JTAG

    加入微信
    获取电子行业最新资讯
    搜索微信公众号:EEPW

    或用微信扫描左侧二维码

    相关文章


    用户评论

    请文明上网,做现代文明人
    验证码:
    查看电脑版