今天在玩 STM32F3 Discovery 的时候, 烧写程序后,
FreeRTOS 运行一会就会跳转到 startup_stm32f30x.s 内的系统服务调用处理这段程序的“B 。”处, 如下。
SVC_HandlerPROC
EXPORTSVC_Handler[WEAK]
B.
ENDP
查阅了一下 keil-MDK 的帮助文档, 在Built-in variables and constants 节找到了解释, 也就是跳转到当前行呀。
2333333. 如下图:
好吧。 顺便解释一下 [WEAK] 的意义吧。 先看官方解释 :)
先上一句别处的零散话:
WEAK
symbolisonlyimportedintoothersourcesifnoothersourceexportsanalternativesymbol.
If[WEAK]isusedwithoutsymbol,allexportedsymbolsareweak.
意思就是告诉链接器:
“我略弱但我很绅士, 如果你在别处看到和我一样的符号实例。你就用它吧。 表管我, 求忽视! ”
关键字:STM32F3 烧写程序
引用地址:
基于STM32F3烧写程序中B的意义是什么
推荐阅读最新更新时间:2024-11-12 12:13
LPC2378烧写程序三种方法
LPC2378烧写程序方法: 1、UART0 打开Flash Magic (1)按照选项设置:串口、波特率、ARM工作频率等; (2)选项:Erase all或Erase block (3)选项:Hex File,选择要烧写的文件 烧写.bin和.hex文件都可以,start烧写完后,按复位键即可运行程序。 2、J-Link 打开J-Flash ARM V4.2.6 步骤:设置option,再connect(J-Link和ARM芯片的Flash连接上),再Erase section或Erase chip,再open data file(打开要烧写的文件),再program或program ver
[单片机]
北斗导航系统引领汽车信息服务自主创新
中国汽车信息服务产业转型升级大会现场 4月26日,工信部有关领导和相关领域专家参加了由中国汽车工业协会主办的“2013·中国汽车信息服务产业转型升级大会”,大会确立了以北斗引领的汽车信息服务将成为新十年我国汽车产业弯道超车的战略支撑点。 过去十年,我国汽车产业发展一日千里,取得了让全世界刮目相看的成就,2012年我国汽车产销量双双突破1900万辆,成为全球最大的汽车生产与消费国。但同时我们也看到,在全球范围内汽车与信息技术的结合日趋紧密,全球化、信息化、网络化、智能化激起了汽车和相关产业在研究、设计、开发、制造、管理、营销模式上的空前革命。我国在汽车信息服务技术研发、标准研制、产业培育和市场应用等方面虽已具备一定基础,但与发
[汽车电子]
STM8系列单片机复用引脚烧写程序注意事项
最近一个项目烧写程序时,烧写成功测试的时候,与程序的功能对不上。找原因折腾半天才搞明白,程序中有用到引脚复用功能。而我在调试的时候没有进行配置,所以导致实现不了功能。 这个配置对所有STM8系列的单片机都适用,具体配置如下。 配置芯片的复用功能,用到st-visual-program工具。 配置完成后就可以烧写程序到单片机。 注意事项: 配置芯片复用功能引脚和烧写程序的用到ST-LINK下载器,需要注意的地方是有的ST-LINK的每个引脚和JTAG下载电路的引脚要对应上,因为公司请购的ST-LINK有的与原理图上JTAG下载模块SIP1的引脚根本没对应上,SWIN和GND引脚是反的(请核对原理图和ST-LINK丝印上的引脚
[单片机]
基于AVR的语音识别助老助残室内行走服务系统设计方案
1.1 引言 目前,全世界60岁以上的老年人口已达到6亿左右,人口老龄化已成为世界范围的重大社会问题。我国60岁及以上老年人口已达1.32亿,占全国总人口的10%,并以年均3.32%的速度持续增长。预计到2015年,60岁以上的人口将超过2亿,约占总人口的14%,其中老年病患者约有50%需要护理服务。此外,我国还有各类残疾人约6千万,约占我国总人口的5%。因此,我国合计需要进行护理的人口大约为1亿人。人口的加速老龄化使医疗和社会保险系统面临着前所未有的压力。在我国的13亿人口中,家庭约3~4亿,有功能障碍者或需看护人员的家庭,占全国家庭总户数的1/10,约3577万左右。各类残疾人和长期卧床老年人的大量存在,使得助老助残问题正日益
[单片机]
PIC 单片机烧写程序时提示Fuse error 0x2007错误
今天在PIC 单片机烧写程序时提示Fuse error 0x2007 该错误的原因主要是因为配置位的错误 没有详细的去研究,大概做个判断 一应该是编译器或者编程软件的错误,有两个位不能读出来,也可能是置代码保护的原因。 当把代码保护的配置位关闭后,该错误消失。 所以目前的解决方法是:在code中关闭代码保护功能。 //********************************************知识补充***********************************************// 在PIC系列单片机里,其芯片内部大都有设置一个特殊的程序存储单元,地址为2007,由单片机的用户自
[单片机]
关于S3C2440开发板Nand flash程序烧写和运行的一些理解
这两天刚开始学习ARM9的裸机编程和Linux系统移植,在烧写Nand flash内存的时候对一些指定的地址产生了疑惑。 我看过很多教学视频,他们在烧写程序到Nand flash的时候一般会指定一个地址0X3000_0000,而S3C2440的官方手册上指明了0X3000_0000地址对应的片内外设是SDRAM。这不禁让我产生了疑问。明明是指定了SDRAM却烧写到了Nand flash,为什么? 为了解决我的疑惑,在网上看了很多人的解释,这不仅解开了我的疑惑,还引出了许多相关知识点。 要解答这个问题,首先要从Nand flash本身的结构说起。Nand flash的结构和RAM不一样,它的数据线是复用的,内与足够的地址线用来寻址,
[单片机]
openocd 命令行烧写ARM裸机程序
以前是用RVDS 的IDE来烧写调试ARM程序的,不过RVDS虽然是集成化的调试工具调试起来方便,但是有的时候只知其一,不知其二,只知道按部就班的来点击按钮,忽略了一些本质性的东西。而且RVDS还有一个不好的地方是它只能在windows平台下运行,不支持Linux OS。为了便于学习Linux,使用Openocd会是个不错的选择,可以学习gnu 汇编,Makefile编写,工具链命令行使用。 如果这些命令搞熟悉了,你还可以利用Qt 来做个自己的图形化界面烧写调试工具。(不过这只是个壳子而已,精髓在于openocd ,所以如果有时间你还可以分析一下Openocd的源码,因为它是开源的,开源的东西就是好,它可以满足你的好奇心,虽然有些
[单片机]
mini2440采用minitools工具烧写系统或裸机程序方法
(1)、先使用Jlink软件烧写Superboot2440.bin文件到NOR FLASH中,此时S2开关拨在NOR位置。 a、 加载工程:File - Open project - 选择s3c2440a_embedclub.jflash(类似的也行) b、加载文件:File - Open data File - 选择Superboot2440.bin - 地址为0 c、连接和下载:Target - Connect - (连接成功后) - Auto - (完成下载)- Disconnect (2)、拔掉Jlink线,然后接上USB,如果是第一次使用会提示安装USB驱动(如果没反应,就重启一下开发板),第二次之
[单片机]