ARM汇编 C语言 混合编程

主函数Main
第一次实验:12月4
这是我见过最坑爹的问题:main这个字段不能使用。。。。
在Release模式下怎么编译都过不去,报错如下
在这里插入图片描述
原因:不能使用main这个标识符。。。。用Main、mAin、main1、mai都行,就是main不行。
原来在DebugRel模式下,使用main仅仅是一个警告,没想到到Release这里直接过不去
在这里插入图片描述
第二次实验:12月5
插播一句:做第七次实验时发现又可以使用main了。。。。mmp
第三次实验:12月8
这次发现了使用main和使用其他Main、MAIN等标号的区别
ADS下__main()是C语言的内部库函数,在进入用户main()之前完成内部RAM的初始化工作。
使用main会有一些额外的效果:
使用main时:
在这里插入图片描述
不使用main时,如使用Main:
在这里插入图片描述
使用main会自动加上__main _move_reg _move_loo 代码
大体架构
文件init.s

	IMPORT main
	AREA init, CODE, READONLY
	ENTRY
	CODE32
start
	BL main

文件main2.c

#include <stdio.h>
int Main() {
}

注意:这里有main、main2两个标识符,是为了知道汇编程序中 IMPORT main 是引入的文件还是函数,现在看了好像是函数。
大小写敏感问题
文件之间调用函数时,大小写是敏感的。ADS集成开发环境配置时,文件名大小写不敏感。

volatile关键字修饰变量
volatile的意思是易变的、可变的,作用是限制编译器优化某些变量。
用volatile变量对变量d修饰后,编译器不对这个变量的操作进行优化,代码的执行达到期望的目的。
一般说来,volatile关键字用在如下的几个地方。  
  (1)中断服务程序中修改的供其他程序检测的变量需要加volatile。
  (2)多任务环境下各任务间共享的标志应该加volatile。
  (3)存储器映射的硬件寄存器通常也要加volatile说明,因为每次对它的读写都可能有不同意义。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

匿名匿名匿名11

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值