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

STM32怎么修改启动后不运行main函数

这是经国 2019-04-14 浏览量:1448
STM32怎么修改启动后不运行main函数
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 在STM32中不管使用标准库还是HAL库,都有一个以.s结尾的汇编文件作为启动文件,在这文件中的复位中断中指定了汇编启动代码执行完成后要调用的主函数,通常在这里些的都是main函数,把这个函数名称修改后,可以使用任意名称代码main函数。比如下图所示,修改__main函数名称为myfun,并在工程中添加一个函数为myfun就可以实现调用自己的函数功能了。

    0005.png

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

其他答案 数量:7
  • 可能是卡在硬件错误中断里了,时钟配置问题导致的可能性大一些,看一下pll和晶振设置是不是超过上限频率了
    • 发布于2019-04-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 启动文件里进行修改,你可以参考rt-thread 的程序看下。 启动文件里有个 __main 的把他修改了
    • 发布于2019-04-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个需要修改.s启动文件里面的汇编代码,将原先的__main地址改成你想要执行的函数地址就可以了,比如你写一个Open(){}函数,然后将Open替换main就是将地址指向open,就更换了启动完成后运行的函数
    • 发布于2019-04-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个要在启动函数中进行修改了,修改后,进行重新编译。

    也就是在启动文件中找到:__main,把这里的main替换成你自己的函数就可以了。


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

  • 要修改启动文件,启动文件中调用了main函数,把这里的main函数修改成你自己的函数就可以了
    • 发布于2019-04-16
    • 举报
    • 评论 0
    • 0
    • 0

  • 其实是没有必要的,哪个函数只是名字不一样而已,要修改要通过启动文件中修改的,也就是工程中的.s文件,可以查找一个__main把里的main换成你的函数就可以了
    • 发布于2019-04-16
    • 举报
    • 评论 0
    • 0
    • 0

  • 在那个startup_xxx.s文件里面,找到一句

    LDR     R0 =__main

    将这个main改成需要的函数即可​

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

相关问题

问题达人换一批

STM32怎么修改启动后不运行main函数