在main函数之前,程序进入Reset_Handler[WEAK],可以通过重新定义Reset_Handler添加我们需要在main之前所执行的函数。

在ARM CC的Reset_Handler中,程序可以拆分为SystemInit和__main。

Reset_Handler    PROCEXPORT  Reset_Handler             [WEAK]IMPORT  SystemInitIMPORT  __mainLDR     R0, =SystemInitBLX     R0LDR     R0, =__mainBX      R0ENDP

对Reset_Handler重新定义

__ASM void INTO_MAIN(void)
{IMPORT  __mainLDR     R0, =__mainBX      R0
}void Reset_Handler(void)
{SystemInit();INTO_MAIN();
}

如果我们的函数不需要进行堆栈操作,比如判断flash存储的数据,那么修改的函数可以放在INTO_MAIN之前。

经过反编译发现__main主要包含的是__scatterload这个函数

如果需要在main函数之前对GPIO进行配置,必须要在堆栈相关初始化工作完成之后,因此对应的函数应该添加在__main_after_scatterload之前。

ios main函数之前的操作_添加函数在ARM在进入main函数之前相关推荐

  1. 廖雪峰讲python高阶函数求导公式_一文读懂Python 高阶函数

    高阶函数 将函数作为参数传入,这样的函数称为高阶函数.函数式编程就是指这种高度抽象的编程范式. 变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函 ...

  2. codeblocks printf函数打印不出来_最全C语言基本程序交互函数之输出到屏幕

    前言 上一栏目主要讲解了各种数据类型的知识,大家先闭眼回顾一下数据类型的知识哦.本章节主要内容是讲解程序的基本交互设计之程序的输出.程序和人交互无非就是通过外设进行输入信息,C语言中基本的交互的基本流 ...

  3. c++中函数放在等号右边_如何从C或C++中的函数返回多个值?

    新程序员通常在寻找从函数返回多个值的方法.不幸的是,C和C++不允许直接这样做.但是幸运的是,通过一些巧妙的编程,我们可以轻松实现这一目标. 下面是从C函数中返回多个值的方法: 通过使用指针. 通过使 ...

  4. c ++ 函数的esp指针_在C ++中通过指针访问成员函数

    c ++ 函数的esp指针 Create a class along with data member and member functions and then access the member ...

  5. python一个函数调用另一个函数中的变量_在Python 中同一个类两个函数间变量的调用方法...

    在Python 中同一个类两个函数间变量的调用方法 更新时间:2019年01月31日 15:44:54 作者:wxy_summer 今天小编就为大家分享一篇在Python 中同一个类两个函数间变量的调 ...

  6. python怎么用函数查看变量类型_查看变量类型的Python内置函数是()。

    [单选题]下列不属于反射的是( ) [判断题]传统通俗史学有普及型和通俗型 [单选题]当前最流行和最受重视的资料分析是( ). [简答题]什么情况下采用斜视图比较合适? [单选题]下列命题正确的是( ...

  7. python函数分几种_简单了解Python中的几种函数

    python是支持多种范型的语言,可以进行所谓函数式编程,其突出体现在有这么几个函数: filter.map.reduce.lambda.yield lambda lambda函数的使用方法:在lam ...

  8. MySQL用函数统计记录总数_在mysql中使用COUNT 或者SUM函数计算记录总数

    count函数的作用 想要真正的理解count函数,我们就必须明白count函数的作用. 作用一:统计某一列非空(not null)值得数量,即统计某列有值得结果数,使用count(col),其中co ...

  9. offset函数的高级用法_数据验证(数据有效性)结合Offset函数 的综合用法

    #数据验证# 在2013版本以前称为#数据有效性#.数据验证主要用于验证数据的输入的准确性,避免输入非法值以及在输入非法值时能给出提示或警告.可以根据实际需要限制输入范围,提供预设值通过下拉列表选择输 ...

最新文章

  1. 时髦而精巧的Iphone墙纸收集
  2. L2-002. 链表去重
  3. 主流html5桌面应用开发,主流HTML5开发工具推荐
  4. Unicode和UTF-8的区别
  5. 我眼中的计算机,我眼中的计算机-计算机开机背后的故事
  6. 在 VirtualBox 中 CentOS 网络设置
  7. CCNA-第二篇-路由器交换机概述
  8. java break递归_【Java】递归总结
  9. 关于文件的工具类例子
  10. 把 mysql sql_mode 设置为严格模式的方法
  11. js生成二维码附带logo
  12. Python中用于身份证验证的库函数
  13. 【开关电源】matlab/simulink入门
  14. ps无法在此计算机上运行,解决PS打开图片"无法完成请求,因为文件格式模块不能解析该文件"...
  15. 交换机ARP代理详解
  16. 打开html自动跳转其他,打开网页直接跳转其他网页怎么办
  17. ceph存储 scsi设备驱动体系架构
  18. 微信|公众平台开发者文档
  19. 快速分割任何视频 Flv 音频aac wma等等文件,无需重新编码
  20. 2021届中信银行总行信息科技部笔试面试经历

热门文章

  1. linux crontab 怎么用,Linux crontab 如何使用
  2. 计算机网络的唯一缺点,有点伤感的说说 我唯一的缺点就是,对你太好
  3. C语言课后习题(8)
  4. DTC精彩回顾—黄东旭《TiDB数据驱动的企业智能化转型新方向》丨PPT视频
  5. 2020年12月国产数据库排行:榜首TiDB 2.7亿融资再破纪录;openGauss晋级十强!
  6. 直播预告丨原厂专家解析MySQL的性能管理
  7. 故障恢复:一次底层超融合故障导致的异常处理
  8. 5h Oralcle进阶直播课,限时免费报名,手慢无!
  9. 带你认识大模型训练关键算法:分布式训练Allreduce算法
  10. 架构可视化支撑系统演进探索