韦东山嵌入式第一期学习笔记DAY_12——13_6重定位_清除BSS段的C函数实现

作者:GWD 时间:2019.7.13

一、课程内容
摘要:本节课用汇编传参和符号表传参两种方式各写了一个代码实现用C实现代码重定位与bss段清0;讲解了符号表的原理及引用方式。
1、问:符号表是什么?
2、符号表怎么使用
二、学习要点:
1、问:C函数怎么使用lds文件中的变量abc?
答:
1)、在C函数中声明改变量为extern类型, 比如:extern int abc;
2、使用时, 要取址, 比如:int *p = &abc; // p的值即为lds文件中abc的值。
2)、问:使用链接脚本中的变量时为什么加&符号?
答:这是编译器的一种机制,引入了符号表,lds中的变量是不保存在程序中的,符号表再怎么大也不会影响程序,在引用时候去符号表中找。节省了程序的内存。
在这里插入图片描述

三、代码
(一)、使用汇编函数传递参数的方法;
1、更改start.S
在这里插入图片描述
2、写copy2sdram函数
在这里插入图片描述
3、写clean_bss函数
在这里插入图片描述
4、实验现象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值