zoukankan      html  css  js  c++  java
  • 在IAR平台建立STC8ASK64S4A12单片机工程

    转载:http://www.51hei.com/bbs/forum.php?mod=viewthread&tid=168481&page=1#pid737250

     一般我们使用STC单片机都是基于老旧的KEIL v4.0平台,STC官方给的头文件也是只支持keil v4.0平台。我们如果要在其他平台比如IAR上开发STC8ASK64S4A12,就没法实现,网上也没有人做过类似的事情。市面上有不少热门的单片机,比如STM32系列单片机不仅支持keil v5.0平台,而且支持IAR平台,这将对开发者是非常便利的,不同开发平台有不同的优点。   为了实现在IAR平台开发STC8ASK64S4A12单片机,自己花了几天时间重写了兼容IAR平台的头文件、链接文件、配置文件,然后在IAR平台成功实现建立STC8ASK64S4A12工程,并且调试成功通过。接下来详细说明如何在IAR平台建立STC8ASK64S4A12工程。
    一、准备工作
    1、安装IAR for 8051 10.10.1版本;
    2、在IAR设备添加STC单片机类型;
      将附录文件夹devices下的STC文件夹复制到IAR安装的目录D:IAR_8051_108051configdevices中。
    3、在IAR添加STC单片机头文件;
      将附录文件夹STC头文件下的ioSTC8.h和ioSTC89xxxx.h复制到IAR目录D:IAR_8051_108051inc中。
    单片机类型和头文件都在附件上有,IAR for 8051 10.10.1软件需要自己去下载安装。
    二、建立新工程
    下面有图文并茂简介在IAR for 8051上建立STC8ASK64S4A12工程的详细过程。我会把自己的工程上传附录文件中。
    1、选择菜单project下Create New Project,然后选择Empty project。
    <ignore_js_op> 

    2、选择左边的工程,右键选中OPTION,在窗口选中General Option下Target的Device那一栏,选择右边的小图标
    <ignore_js_op> 

    3、选中添加好的STC单片,STC8A8K64S4A12。如果找不到STC单片机,需要重新查看准备工作的部分有没有做好
    <ignore_js_op> 

    4、在Tgrget中,Data model选中large,calling convertion选择XDATA stack reetrant。
    <ignore_js_op> 

    5、在Library Configuration中,Library选择CLIB<ignore_js_op> 

    6、Linker中勾选图示的选型。
    <ignore_js_op> 
    7、勾选图示选型,这样才会生成hex文件。
    <ignore_js_op> 
    8、选择菜单project中Edit Configuration,新建一个基于debug的工程,命名为:STC8A8S64S4A12
    <ignore_js_op> 
    9、添加头文件的目录,这个是我自己工程的头文件目录
    $PROJ_DIR$代表工程的目录    $PROJ_DIR$....Componentsoardinclude代表工程的上一级,再上级一级目录Components下board下include文件夹,一般头文件放在include文件夹内。
    <ignore_js_op> 
    10、程序优化等级一般选择Medium,如果选择high会有不少无关变量被IAR全部优化掉,代码所占空间达到最小化,但是调试可能有问题。如果不想某个变量被优化,需要要在变量前加上volatile。
    <ignore_js_op> 
    11、这是自己建立工程,利用DS18B20测量温度,并且通过printf函数打印出来。
    <ignore_js_op> 
    12、编译后将hex文件烧录到STC8A8K64S4A12单片机里,再用串口打印工具,打印测量温度数据
    <ignore_js_op> 
    三、IAR平台的优势
    IAR平台对程序的编译效率比较高,编译所花时间比较少,另外IAR平台还有一个高级的代码分析工具:C-STAT Static Analysis,这个工具不同于编译器,它会分析代码潜在的隐患。比如你用malloc函数申请空间,如果没有对申请的指针做NULL判断,就用警告,但是如果直接用编译器编译,是没有这个警告的。这就是这个工具高级的地方,它可以让工程师完善代码,减少隐患。这个是keil v4.0没有的功能。
    1、选择C-STAT Static Analysis中Analysis Project
    <ignore_js_op> 
    2、分析结果,用malloc()有隐患
    <ignore_js_op> 
    3、最后对pBUF指针做非空判断,再分析,就没有警告了
    <ignore_js_op> 

    四、STC单片机在IAR平台的不足点
    1、虽然IAR平台支持多种烧录器,但是没有基于IAR平台的STC单片机在线仿真工具和在线烧录器,程序烧录还是要用STC官方给的STC-ISP烧录程序。这种情况下,调试程序一般用printf函数外加串口来监控程序运行状态。
    五、后记
    本人也是从接触STC单片机入门的,STC给单片机初学者提供一个良好的学习平台,我这次的移植,也是希望能够多一个编译平台玩STC单片机,不再局限于keil平台。不同平台移植不容易,希望能得到大家的支持,共同完善。

    全部资料51hei下载地址:
    <ignore_js_op>

    IAR平台建立工程准备文件.rar

    34.59 KB, 下载次数: 23

    准备文件

    <ignore_js_op>

    STC8A8K64S4A12.rar

    226.62 KB, 下载次数: 14

    图示例子工程文件

    <ignore_js_op>

    图片文件.rar

    732.66 KB, 下载次数: 4

    如果看不到图片,就看图片附件,序号对应好了

  • 相关阅读:
    使用 requests 维持会话
    使用 requests 发送 POST 请求
    使用 requests 发送 GET 请求
    requests 安装
    使用 urllib 分析 Robots 协议
    使用 urllib 解析 URL 链接
    使用 urllib 处理 HTTP 异常
    使用 urllib 处理 Cookies 信息
    使用 urllib 设置代理服务
    按单生产程序发布
  • 原文地址:https://www.cnblogs.com/CodeWorkerLiMing/p/11918545.html
Copyright © 2011-2022 走看看