C语言函数

函数
1.main函数通常为用户的入口函数,叫做主函数;
2.程序中可以包含多个自定义函数;
3.函数包括函数首部和函数体,函数首部包括三部分:返回值类型、函数名、参数,参数放在()里面。
函数体放在{}里面,包括变量定义语句和可执行语句。
4.语句后面都要使用;作为结束标志,注意不能用汉字格式;

C语言编译
1.编译,MDK软件使用的编译器是armcc和armasm,它们根据每个C/C++和汇编源文件编译成对应的以’.o’为后缀名的对象文件(Object Code,也称目标文件),其内容主要是从源文件编译得到的机器码,包含了代码、数据以及调试使用的信息;
2.链接,链接器armlink把各个.o文件及库文件链接成一个映像文件“.axf “,它是elf格式文件;
3.格式转换,一般来说Windows或Linux系统使用链接器直接生成可执行映像文件elf后,内核根据该文件的信息加载后就可以运行程序了,但在单片机上,需要把该文件的内容加载到芯片上,所以还需要对链接器生成的elf映像文件利用格式转换器fromelf转换成”.bin"或”.hex"文件,交给下载器下载到芯片的FLASH或ROM中。
编译信息
Rebuild target ‘Test’
compiling main.c…
assembling startup_ARMCM4.s…
compiling system_ARMCM4.c…
linking…
Program Size: Code=344 RO-data=224 RW-data=4 ZI-data=4196
FromELF: creating hex file…
“.\Objects\Code.axf” - 0 Error(s), 0 Warning(s).
Build Time Elapsed: 00:00:00
armar 是用于把.o文件打包成lib文件的,类似于windows系统里的dll文件。

程序组件 所属类别
机器代码指令 Code
常量 RO-data
初值非0的全局变量 RW-data
初值为0的全局变量 ZI-data
局部变量 ZI-data栈空间
使用malloc动态分配的空间 ZI-data堆空间

程序大小 = Code + RO-data+RW-data

软件启动流程:
硬件上电复位->设置堆栈指针->执行复位中断服务程序->配置系统时钟->执行C库中的_main函数->执行用户的main函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值