• Keil和IAR——使用笔记


    1. 几个宏的定义

    Keil和IAR均用到以下三种宏定义,分别是:
    USE_STDPERIPH_DRIVER——表示使用ST提供的标准外设固件库;
    STM32F40_41xxx——作为芯片的判断;
    VECT_TAB_SRAM——中断向量表定位在CPU内部RAM;

    2.批处理文件*.bat的使用
    CopyHex_Flash.bat内容为:copy FlashObjoutput.hex ..out(mdk).hex
    工程文件project.uvproj或者project.eww所在的路径是批处理文件中路径的依据。

    3.调试模式
    STM32仅支持SWD模式;

    4.printf打印函数的使用
    Keil中,在Options的Target页面,选中"Use MicroLIB";
    IAR中,在OptionsGeneral OptionsLibrary Configuation的Library里,选择"Full";
    原因是:
    我又从手册上找到了以下描述:
    “在IAR中所有的输入/输出函数仅调用一个小型初等函数,一个函数集完成一个规定的任务。例如,__open函数用于打开文件,__write函数用于字符输出等。
    注意:仅当运行库配置为full时才能支持文件输入输出功能,即只有允许了配置符号__DLIB_FILE_DESCRIPTOR时运行库才支持文件输入输出功能操作,否则不能使用带有“FILE *”参数的函数。
    如果连接库时采用XLINK选项With I/O emulation modules,将自动链接C-SPY调试器中底层I/O函数以便实现交互调试。”
    链接:http://www.amobbs.com/archiver/tid-3215678.html

    5.IAR中"Use CMSIS"选项
    选中"Use CMSIS"表示包含DSP_Lib所涉及的头文件,其路径为LibrariesCMSISInclude;
    而在OptionsC_C++ CompilerPreprocessor页面内,已经填写了$PROJ_DIR$....LibrariesCMSISInclude;
    因此为避免重复,这里就不需要再选中“Use CMSIS";

    6. 生成Map文件
    OptionsLinkerList页面的"Generate linker mpa file";表示生成map文件,方便查看
    ROM,RAM占用大小;函数和变量定位位置,函数大小等信息;

    7. 在IAR的Options中修改堆和栈大小
    project---options---Linker---Config---Edit,修改CSTACK/HEAP的值;

    8. Error[Li006]: duplicate definitions for "PendSV_Handler"

    这个函数在多个地方定义了。
    解决方法:
    屏蔽其中一个地方即可;

    9. 在A.c中定义的变量,若想在B.c中使用;

    步骤一:
    在A.c中定义该变量,可赋初始值;
    u8 flag1ms = 0;
    u8 flag4ms = 0;
    u8 error = 0;
    步骤二:
    extern u8 flag1ms;
    extern u8 flag4ms;
    extern u8 error;

    10. warning: #1035-D: single-precision operand implicitly converted to double-precision

    此警告来源于没有在浮点数后加f,例如应使用0.123f,而不是0.123。

    11. #define Conn(x,y) x##y

    x##y表示x连接y,举例说明:
    int n = Conn(123,456); 结果就是n = 123456;
    char* str = Conn("abc","def"); 结果就是 str = "abcdef";

    #define ToString(x) #x
    #x就是给x加上双引号,举例说明:
    char* str = ToString(1234); 结果是 str = "1234";

    12. 的

    注:转载请注明出处http://www.cnblogs.com/zaishuiyifang006 人生如棋,我愿为卒,行动虽缓,可谁见我后退一步。
  • 相关阅读:
    牛客小白月赛12 392B
    牛客392A 经典区间覆盖
    hihocoder contest95 1、3、4题目分析 2赛后补题
    hiho一下第234周《矩形计数》题目与解答
    Light oj 1306
    请访问我新的博客
    比特币“投资”记录-1
    如何清爽的使用网页版新浪微博
    Vuex/Vue 练手项目 在线汇率转换器
    重装macOS环境配置笔记
  • 原文地址:https://www.cnblogs.com/zaishuiyifang006/p/5323556.html
Copyright © 2020-2023  润新知