zoukankan      html  css  js  c++  java
  • 011:Nuvoton(新唐) Cortex M0 使用semihost输入输出办法(转)

    Nuvoton(新唐) Cortex M0 使用semihost输入输出办法 (2010-03-09 19:02)

    标签Cortex M0 Nuvoton semihost 输出  分类: 开发 - ARM / Cortex

    semihosting, 也就是我们平常说的半主机模式。
    在嵌入式开发中,使用semihosting, 即使目标开发板没有外接输出串口,
    我们也能很容易的利用调试工具的窗口,达到输入输出的效果。
    这为我们调试产品带来了极大的便利。
    最近有两家公司的Cortex M0芯片上市了。NXP和Nuvoton。
    对比arm网站的描述,发现M0系列支持的调试功能真是有够简单。
    所幸的是,Nuvotion的工具包支持所谓的semihosting的用法。
    下面介绍如何在Nuvoton NUC100/NUC120...系列上使用semihosting功能。
    笔者所用的开发工具是Keil uVision4,
    Debugger ICE 需要用 Nuvoton的Nu-Link调试器,
    用一块NUC120开发板. 过程如下:
    1. 首先到nuvoton.com上下载一份NUC1XXBSP,
    下载完后, 用Keil uVision4打开其中任何一个工程, 发现每个工程都差不多的组织形式,
    工程中的这两个文件是我们接下来要处理的:
        CMSIS files\startup_NUC1xx.s
        Library files\retarget.c
    2. 如果没有安装Nu-Link调试器驱动, 需要先安装一份.
       安装完后Keil的安装目录下有一个semihost的例子程序
          C:\Keil\ARM\BIN\Nu_Link\SemiHost
       用这个目录下的两个文件
         SH_startup_NUC1xx.s 和 SH_retarget.c
       替换原先工程中的 startup_NUC1xx.s 和 retarget.c
    3. 重新编译原先的工程, 将编好的代码烧录到NUC120开发板上运行.
       烧录/运行的时候一定要用Keil+Nu-Link调试器. 运行起来后, 点击菜单
           "View -> Serial Window -> UART1" , 打开虚拟串口1
       如果程序中有printf, 您会看到printf的输出都输出到这个 "串口1" 来了.
       (不经Keil直接在flash中运行程序怎么样? 当然输出到真实串口了)
    事实上,如果只是测验一下,
    直接编译, 用Keil运行 Nu-Link自带的项目 C:\Keil\ARM\BIN\Nu_Link\SemiHost,
    就可以看到semihost的输入/输出效果了.


    结束之前, 同时写两个注意的地方:
    1. 一定要用Nuvoton的Nu-Link搭配Keil IDE. 用Ulink2也不行, 貌似Ulink2碰到semihost指令就停下了.
    2. 替换文件后重新编译, 如果使用了scatter file连接办法, 要检查下scatter file中的文件名是否要同样修改, 否则build时连接通不过.

  • 相关阅读:
    HDU2586 How far away?(tarjan的LCA)
    You Raise Me Up
    POJ2891 Strange Way to Express Integers(中国剩余定理)
    POJ2142 The Balance(扩展欧几里得)
    HDU 1166模仿大牛写的线段树
    NetWord Dinic
    HDU 1754 线段树裸题
    hdu1394 Minimum Inversion Number
    hdu2795 Billboard
    【完全版】线段树
  • 原文地址:https://www.cnblogs.com/afeibfp/p/2857716.html
Copyright © 2011-2022 走看看