• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

Keil里编译一个库的疑问

FEItwo 2019-03-02 浏览量:766
在Keil里编译一个库,可不可以在不同arm cpu类型的工程里链接使用 ?貌似所有工程, Keil都会强制选一个MCU device。例如编一个库文件,keil会通过加参数 “--cpu Cortex-M0+”来绑定了cpu类型。  这样如果在另一个工程,其cpu 为 Cortex-M4就会链接报错。不知有什么办法能绕过去?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 编译的时候绕不过去啊,因为虽然代码可能类似,但翻译成机器码是不一样的,你可以这么理解,对于一个多国会议上,某个领导人发言了,被不同的同声翻译做了翻译,虽然他们听到的内容相同,但由于受众不同,所以翻译的结果是不一样的。

    但我猜也许最简单的指令没准可以,比如点头笑一笑,大家应该都能理解你是表示友好,

    所以也许,大概,可能,inc一类的指令翻译的时候就不需要这个参数吧。。。。

    • 发布于 2019-03-04
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:12
  • 不能绕,这个是硬件相关的参数,不同cpu需要重新编译。

    其实 m0+ 和 m4 虽然同为单片机,但是他么你还是有差异的,差异还不小。

    • 发布于2019-03-02
    • 举报
    • 评论 0
    • 2
    • 0

  • 不通用的   有专门M0M4的芯片包吧   硬件就匹配不了
    • 发布于2019-03-02
    • 举报
    • 评论 0
    • 1
    • 0

  • 不能,因为这两种内核不同,有些MCU寄存器的地址什么的会不同,不能随便链接的
    • 发布于2019-03-02
    • 举报
    • 评论 0
    • 1
    • 0

  • 不可以的,要对CPU的寄存器相关的程序进行编译的,不可以通用的
    • 发布于2019-03-04
    • 举报
    • 评论 0
    • 0
    • 0

  • 不可以的 M0 M4庫不一樣    都沒有相關的
    • 发布于2019-03-05
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个绕不过去吧,编译器强制要求定义内核,必须选择内核再编译,这样就出现上面keil已经绑定了M0还是M4
    • 发布于2019-03-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 绕不过支的,可以绕过去就相当于把芯片的密码功能给解析出来了。而且不一样的内核,芯片内部的寄存器与地址都不一样的,所以,是不可以绕过去的
    • 发布于2019-03-22
    • 举报
    • 评论 0
    • 0
    • 0

  • 绕不过去,内核不一样,指令都不一样的,你看EMWIN库就是分M1,M3M4的

    • 发布于2019-03-27
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

Keil里编译一个库的疑问