MON166 is a debug monitor for C16x and ST10 user programs. It consists of:

  • A configurable monitor program that resides and runs on your target system.
  • The µVision Debugger and its associated MON166 driver.

The code space requirements of MON166 are small. It can run from about 5K of external or on-chip CODE memory.

It requires only 256 bytes of RAM for monitor variables and storage.

To debug programs with MON166, you must configure the monitor for your specific target system (which has several requirements).

Then, you must alter the load/starting address of your target program and download it to your target system using MON166 and the µVision Debugger.

MON166 offers the following features:

  • Controlled program execution with single-stepping and multiple software breakpoints.
  • Ability to view and change CPU registers and memory.
  • Access to Special Function Registers (SFRs).
  • Full speed execution of user programs.

The MON166 Monitor has the following requirements:

  • MCU compatible with 80C166, C161, C163, C164, C165, C167, or ST10.
  • Software trap for breakpoints (NMI is typical).
  • Ten (10) words of stack space in the user program being tested.
  • 256 bytes of off-chip data memory (RAM).
  • 5K bytes of off-chip code memory (ROM) loaded with the MON166 monitor. RAM may be used with the MCU in bootstrap mode.
  • Serial interface. 
    This may be the on-chip UART, 
    a simulated UART (using two port pins), 
    or an external UART (like the 16450 or 16550 used on standard PC's).
    MON166 requires only the TRANSMIT DATA and RECEIVE DATA RS-232/V.24 signals along withGROUND
    In some cases, additional connections are necessary to enable communications 
    (for example, loop-back connections for DTR, DSR, RTS, CTS, and DCD).

There are a few restrictions to using the MON166 Monitor to debug your target programs.

  • The memory mapping of a CPU board with MON166 is selected with hardware components and the Monitor configuration file.
    It is not possible to use Debug — Memory Map to change the memory mapping of the target system.
  • The Performance AnalyzerCall StackCode Coverage, and Step Out capabilities are not available.
  • The View — Periodic Window Update option is not available.
  • Breakpoint Options are handled directly by MON166.
    However, when access or conditional breakpoints are set,
    the application is executed in single steps and not in real time.
    Single-step execution is at least 1,000 times slower then real time execution.

Using the monitor requires proper setup and configuration of two distinct applications:

the MON166 Target Monitor program and the µVision IDE and Debugger.

  • MON166 is a program that resides on your target system.
    It may be programmed into EPROM, ROM, EEPROM, FLASH, non-volatile memory, or RAM.
    It communicates with the µVision Debugger and allows you
    to download programs (to RAM), set breakpoints,
    watch memory areas and program objects, and so on.
    When programmed into ROM, MON166 starts running when you reset your target system.
    When using your MCU in bootstrap mode, MON166 downloads when you start the µVision Debugger.
  • The µVision Debugger begins a debugging session with the monitor
    by establishing serial communication with the MON166 program running on the target system.
    The target program being debugged in µVision is transmitted to MON166 and is written into RAM (by MON166).
    Once the target program has been downloaded, you may proceed to step through it, set breakpoints, and so on.

    All operations performed in the µVision Debugger are communicated to MON166 using a proprietary serial protocol.
    MON166 serial commands are NOT ASCII text-based and cannot be easily viewed or created with a terminal program
    — the µVision Debugger and MON166 driver are required.

Debugging programs with MON166 has some side-effects:

  • MON166 can be configured to use the on-chip UART.
    The target program may use the on-chip UART as long as the UART configuration is not changed.
    If the serial port, timer, or baud rate configuration are changed,
    the monitor will lose communication with the µVision Debugger.
    Characters transmitted by the target appear in the µVision Serial Window.
    Note that the Stop Program Execution with Serial Interrupt Option must not be checked
    if your target program uses the serial port.
  • You may use the serial interrupt to signal MON166 to halt program execution.
    If you enable this option, your target program cannot use the on-chip UART.

MON166 is easily adapted to a wide variety of target hardware.

Several µVision projects are provided to help you quickly configure the monitor for your target system.

These are found in the \KEIL\C166\MONITOR\ folder.

USER166\USER_166.UV2 : User configuration files for 8xC166 CPU and ST10-166.

USER167\USER_167.UV2 : User configuration files for all other CPU variants, like C161, C163, C164, C165, C167, and ST10.

Bootstrap Mode

In bootstrap mode, MON166 is downloaded into RAM of the target system.

This is typically the best mode to start with since the MCU auto-adjusts the serial port baudrate

and does not require you to program an EPROM.

In this mode, the MCU communicates with the PC using the built-in ASC0 UART.

UART Mode

In UART Mode, MON166 is programmed into FLASH memory or an EPROM.

Compared to the Bootstrap Mode, UART Mode saves the download time for MON166.

In this mode, the MCU communicates with the PC using the built-in ASC0 UART or ASC1 UART which is available on some devices.

You may configure that UART for an exact baudrate or you may use auto-baudrate detection.

Simulated Serial Mode

In Simulated Serial Mode, MON166 is programmed into FLASH memory or an EPROM.

This mode does not use any of the on-chip peripherals, but has the restrictions

that you cannot use the uVision HALT toolbar command to stop program execution since there is no serial interrupt.

Tha advantage is that your target program has complete use of the ASC0 UART.

In this mode, the MCU communicates with the PC using two (2) unused I/O pins.

Code in the monitor toggles the transmit pin to send serial characters one bit at a time.

Code to receive serial characters listens for one bit time and determines the character received.

MON166 User's Guide的更多相关文章

  1. 如何在 arm 官网上找到合适的手册

    http://infocenter.arm.com/help/advanced/help.jsp 在这里输入合适的版号即可 这样就可以不用去 CSDN 了 100000_0000_00_EN - AR ...

  2. Beennan的内嵌汇编指导(译)Brennan's Guide to Inline Assembly

    注:写在前面,这是一篇翻译文章,本人的英文水平很有限,但内嵌汇编是学习操作系统不可少的知识,本人也常去查看这方面的内容,本文是在做mit的jos实验中的一篇关于内嵌汇编的介绍.关于常用的内嵌汇编(AT ...

  3. The Practical Guide to Empathy Maps: 10-Minute User Personas

    That’s where the empathy map comes in. When created correctly, empathy maps serve as the perfect lea ...

  4. Scrum Guide - Scrum指南中文版

    现在公司在使用敏捷开发模式进行日常的开发和管理工作,所以我看了下Ken Schwaber的<Scrum Guide>这本小册子,原本是英文的,这里提供中文的,以供日后复习和参考. Scru ...

  5. The Hacker's Guide To Python 单元测试

    The Hacker's Guide To Python 单元测试 基本方式 python中提供了非常简单的单元测试方式,利用nose包中的nosetests命令可以实现简单的批量测试. 安装nose ...

  6. A Beginner's Guide to Paxos

    Google Drive: A Beginner's Guide to Paxos The code ideas of Paxos protocol: 1) Optimistic concurrenc ...

  7. pipedata3d User Guide

    pipedata3d User Guide 1. Introduction 在管道设计过程中,会使用到大量的标准,如ASME,DIN,GB,CB,HG,SH等等.管道设计人员在设计过程中,需要翻阅相关 ...

  8. Flume官方文档翻译——Flume 1.7.0 User Guide (unreleased version)中一些知识点

    Flume官方文档翻译--Flume 1.7.0 User Guide (unreleased version)(一) Flume官方文档翻译--Flume 1.7.0 User Guide (unr ...

  9. Flume官方文档翻译——Flume 1.7.0 User Guide (unreleased version)(二)

    Flume官方文档翻译--Flume 1.7.0 User Guide (unreleased version)(一) Logging raw data(记录原始数据) Logging the raw ...

随机推荐

  1. tomcat Manger App

    转发链接,嘿嘿http://simeon.blog.51cto.com/18680/58877

  2. 基于Web的数据推送技术(转)

    基于Web的数据推送技术 对于实时性数据显示要求比较高的系统,比如竞价,股票行情,实时聊天等,我们的解决方案有以下几种.1. HTTP请求发送模式,一般可以基于ajax的请求,比如每3秒一次访问下服务 ...

  3. Python函数练习:冒泡算法+快速排序(二分法)

    冒泡算法: #-*- coding: UTF-8 -*-#冒泡排序 def func(lt):if type(lt).__name__ !='list' and type(lt).__name__ ! ...

  4. Selenium IDE- 不同的浏览器

    Selenium IDE- 不同的浏览器 Selenium IDE脚本只能对火狐的工具Firefox插件运行测试.使用Selenium-IDE开发的测试可以对其他浏览器所保存为Selenium网络驱动 ...

  5. 将Tomcat注册为Windows服务

    1.从官网http://tomcat.apache.org/下载Tomcat. 2.将Tomcat压缩文件解压到相应的路径下(例如E:\TomcatServer) 3.从bin目录下找到service ...

  6. javascript --- jQuery --- Deferred对象

    javascript --- jQuery --- Deferred对象 javascript的函数式编程是多么引人入胜,jQuery使代码尽可能的精简,intelligent! defer - 必应 ...

  7. 从四大音乐APP首页设计对比分析产品方向

    原帖:http://www.ui.cn/detail/63201.html 本文章中作者例举四个音乐APP应用:虾米.网易.百度.QQ首页 1. 推荐内容:作者将四个首页界面划分出官方推荐与个性化推荐 ...

  8. QS之Intro

    公司里用Questa Sim做仿真,其实跟ModelSim差不多,总结常用的命令如下. 1 启动 vsim -gui 2 编译 -- VCOM vcom [-2008 | -2002 | -93 | ...

  9. 组建你自己的Theme,组件你的Style

    Andorid-Style,组建你自己的Theme,组件你的Style 前言: 今天,尝试了一个新的Demo,也尝试深入学习,话不多说,看一下,这个Demo如何实现的自定义主题与组件Style是如何绑 ...

  10. 桶排序-OC

    NSArray * b = @[@,@,@,@,@]; NSMutableArray *a = @[].mutableCopy; ; i<; i++) { a[i] = @; } for (NS ...