历史上的今天
返回首页

历史上的今天

今天是:2025年04月22日(星期二)

正在发生

2020年04月22日 | 程序运行框架——基于STM32F767IGT6

2020-04-22 来源:eefocus

一、startup_stm32f767xx.s

Reset_Handler引导进入SystemInit函数和main函数;


二、system_stm32f7xx.c

SystemInit函数:系统初始化;


三、main函数

用户函数入口;


四、stm32f7xx_hal.c

HAL_Init函数:HAL初始化(在main函数开头调用);


五、HAL_MspInit函数

HAL_Init函数内部会调用该函数,进行全局MSP初始化(用户可以重写);


六、sys.c(这是自己编写的文件,不在HAL库等之列)

Stm32_Clock_Init函数:调用HAL_RCC_OscConfig函数和HAL_RCC_ClockConfig函数,进行系统时钟初始化设置;


七、stm32f7xx_hal_ppp.c(ppp代指外设名)

用户函数:程序使用某个片上外设需要调用外设的初始化函数HAL_PPP_Init;


八、HAL_PPP_MspInit函数

外设MSP初始化(用户可重写);


九、用户逻辑控制

我们在51编程的时候,并没有手动添加启动文件,在进入main函数之前的启动代码,编译器自动帮我们添加进去了,但是我们不要以为单片机启动之后就直接进入main函数,执行我们定义的逻辑操作了,只是编译器帮我们做好了而已,在STM32中就需要我们手动添加,startup_stm32f767xx.s由ST提供。


那么startup_stm32f767xx.s都为我们做了些什么呢?

1. 初始化堆栈指针SP;

2. 初始化程序计数器指针PC;

3. 设置堆栈的大小;

4. 设置异常向量表的入口地址;

5. 配置外部SRAM作为数据存储器(这个由用户配置,可能没有);

6. 调用system_stm32f7xx.c中的SystemInit函数,配置系统时钟(我们也可以自己写程序初始化时钟,这样的话我们可以注释掉这个语句);

7. 设置C库的分支入口__main(最终调用main函数);


由此,我们已经进入main函数了,我们接下来可以自己编写代码来控制寄存器,实现目标操作

1. 开启Cache,这样可以加快指令的读取速度;

2. (对于HAL来说,我们还需要)初始化HAL库;

3. 初始化系统时钟;

4. 初始化我们所需要用到的外设(要想启用外设,我们要先使能他的时钟);

5. 函数逻辑控制主体;

推荐阅读

史海拾趣

Amulet Technologies公司的发展小趣事

Amulet Technologies 是一家位于美国佛罗里达州坦帕的公司,专注于嵌入式系统和触摸屏技术。以下是该公司发展的五个相关故事:

  1. 公司成立与初期发展:Amulet Technologies成立于1998年,由一群有经验的电子工程师创立。公司初期的主要目标是开发具有低功耗、高性能和易于集成的嵌入式系统解决方案。他们迅速建立了一支专业团队,并开始研发新技术以满足市场需求。

  2. 触摸屏技术的突破:随着智能手机和平板电脑等设备的普及,触摸屏技术成为了电子行业的热门话题。Amulet Technologies在2006年推出了其首个触摸屏控制器产品,为用户提供了更加直观、灵活的操作体验。这一技术突破使得公司在市场上获得了更多的关注和认可。

  3. 拓展产品线:除了触摸屏技术,Amulet Technologies还不断拓展其产品线,涵盖了嵌入式图形处理器、开发工具和软件库等领域。公司致力于提供全面的解决方案,帮助客户快速开发和部署嵌入式系统。

  4. 合作伙伴关系:为了加强自身实力并扩大市场份额,Amulet Technologies积极与其他公司建立合作伙伴关系。公司与硬件制造商、软件开发商和系统集成商等各个领域的企业合作,共同推动产品创新和市场拓展。

  5. 持续创新与未来展望:Amulet Technologies一直致力于不断创新,满足客户不断变化的需求。公司不断投入研发,开发新技术,并与客户紧密合作,持续改进和优化产品。未来,公司将继续致力于嵌入式系统和触摸屏技术的研究与开发,为客户提供更加优质的产品和服务。

Epitex Inc公司的发展小趣事

Epitex一直将品质管理作为公司的核心竞争力之一。他们建立了严格的质量管理体系,从原材料采购到生产过程的每一个环节都进行严格的控制。同时,Epitex还不断引进先进的生产设备和检测技术,确保产品的稳定性和可靠性。

此外,Epitex还非常重视员工的培训和素质提升。他们定期组织员工进行技能培训和质量意识教育,提高员工的专业素养和工作质量。这种持续改进的精神使得Epitex的产品质量得到了客户的高度认可。

Global Communications公司的发展小趣事
温度传感器的输出与温度之间的线性关系可能不理想,导致补偿效果不准确。此时,可以采用非线性补偿技术或选择具有更好线性度的温度传感器来解决问题。
Hpc Technology Inc公司的发展小趣事
由于温度传感器本身也会受到温度变化的影响而产生测量误差(即温漂),因此需要选择具有低温漂特性的温度传感器,并在电路设计中采取适当的措施来抑制温漂现象。
铨力(ALLPOWER)公司的发展小趣事

随着市场竞争的加剧,铨力公司意识到单纯依靠太阳能电源产品已无法满足市场需求。于是,公司开始着手研发更为先进、高效的能源技术。经过多次试验和改进,铨力成功突破了技术瓶颈,研发出了新一代高效能、低成本的太阳能电池板。这一技术的突破不仅提升了产品的竞争力,也为公司打开了更广阔的市场空间。

HTSEMI( Jin Yu Semiconductor )公司的发展小趣事

面对全球制造业的数字化转型趋势,金宇半导体于2015年启动了智能制造项目。公司投入巨资引进先进的自动化生产线和智能管理系统,实现了从原材料采购、生产制造到产品测试的全程数字化管理。这一举措不仅大大提高了生产效率和产品质量,还降低了运营成本,增强了企业的竞争力。同时,金宇半导体还积极探索工业互联网、大数据等新技术在半导体制造领域的应用,为企业的未来发展注入了新的动力。

问答坊 | AI 解惑

PLC、DCS、FCS三大控制系统的特点(转贴)

FCS是由PLC发展而来的;而在另一些行业,FCS又是由DCS发展而来的,所以FCS与PLC及DCS之间有着千丝万缕的联系,又存在着本质的差异。本文试就PLC、DCS、FCS三大控制系统的特点和差异作一分析,指出它们之间的渊源及发展方向。    摘 要: ...…

查看全部问答>

网络下载WINCE BIN报错,那位大侠能帮忙分析下

求助:我通过platform builter5.0下载WINCE nk.bin文件到ARM板中,提示如下错误: Warning:  Debugger service map is set to none.  If your image has debugging support it may not boot properly. Cannot access selecte ...…

查看全部问答>

基于SEED-DIM3517的网络电视机

基于SEED-DIM3517的网络电视机 [ 本帖最后由 youki12345 于 2010-11-9 15:17 编辑 ]…

查看全部问答>

lcd彩屏显示汉字问题

主要程序字库定义typedef struct typFont16    // 汉字字模数据结构 {    signed char Index[2];  //汉字     uc16 Msk[16] ...…

查看全部问答>

版主这个时序定时器要怎么配置才能实现

版主这个时序怎么定时器要怎么配置才能实现啊! 下载 (21.83 KB) 2010-3-1 14:41 …

查看全部问答>

Smart Grid and Renewable Energy《智能电网与可再生能源》期刊导读

Smart Grid and Renewable Energy《智能电网与可再生能源》期刊导读 ISSN: 2151-481X (Print) 2151-4844 (Online).《智能电网与可再生能源》SGRE免费下载网址: http://www.scirp.org/journal/sgre.   Table of Contents(Vol.02 No.02, May ...…

查看全部问答>

TMS320C6713B捕获脉冲上升沿和下降沿

请问各位高人: 本人之前主要使用TI2000系列,现刚接触6000系列不久,请问如何用TMS320C6713B捕获外部脉冲的上升沿和下降沿。…

查看全部问答>

去掉电机转子,再在定子测通入额定电压,定子为什么会烧毁

不知道能不能在这问,还是希望大家帮帮忙(有公式推导最好)…

查看全部问答>

【TI首届低功耗设计大赛】焊接完成,第一个程序,LED流水灯

【TI首届低功耗设计大赛】焊接完成,第一个程序,LED流水灯 为了验证焊接是否成功,我只焊了复位电流和几个LED灯,先是用EXP430G2开发板下载程序,下了很多次都在downloading时提示通信错误,只有一次成功,平时下MSP430G2553都没有问题,怀疑是仿 ...…

查看全部问答>