ARM学习笔记--day05

裸板编译运行:
arm-linux-gcc -c hello.c生成.o文件
arm-linux-gcc hello.o -o hello是编译不过的,需要加两个参数
参数1:-nostartfiles,
参数2:-nostdlib,动态库
最后arm-linux-gcc -nostartfiles -nostdlib hello.o -o hello就可以编译通过
这两个参数时纯裸机开发的时候才会用
gcc会添加标准c库和启动文件(最后一行代码是跳转到main函数)
实际编译后的代码包含:启动文件,自己编写的函数,C标准库
由于在裸板开发的时候,没有操作系统,启动文件跟C标准库不会运行,他们是需要自己根据开发板来写,所以使用arm-linux-gcc编译的时候就要写明不包含启动文件和库

经过以上编译步骤,编译生成了hello的可执行文件,是elf格式的文件
elf文件除了包含纯机器码之外,还包含文件自有的信息,自有的格式,例如:MP3,里边就包含了id3格式的信息,还包含音频数据
生成的elf格式文件不可以在裸板上运行,由于elf格式文件包含的文件本身的信息,这个是需要linux来解析这个文件的,裸板不具备,所以在裸板上运行①需要把elf格式的头信息;②找个软件来剥离头信息,使用命令:arm-linux-object -O binary hello testhello这样就将hello这个elf文件的头信息剥离,剥离后生成了testhello这个剥离后的文件,就可以在裸板上运行了

嵌入式:
1.硬件工作原理
    例如:LED给个高电平就可以工作了
2.了解硬件原理图(设备与处理器的连接关系,看管脚),芯片的数据手册
3.读处理器的datasheet,从中得出怎么驱动各个管脚让外设工作
板子上有两块板:核心板(处理器 ,存储器),底板(外设)
外设实例1:LED
电阻两端的逻辑值是相等的,数字电路中电阻不影响逻辑值
数字电路中三极管MOS管就是个开关,三极管就是放大基极的电流,基极给电流三极管就导通,没电流就关闭,基极给电流,就会让三极管的集电极和发射极导通
按照上述方法:
1.通过分析底板原理图,来确定管脚的值是高电平还是低电平;
2.去核心板的原理图中搜索这个管脚,找到与其相连的处理器的管脚;
3.通过与处理器相连的管脚,来找到处理器对这个关键的描述,怎么编程才能让处理器控制外设,这个就是处理器手册的作用//反向思维,就是我们编程是控制处理器的,然后处理器再去控制管理外设
这里例如:LED的GPC1_3管脚,是LED与处理器连接的管脚,就可以搜索这个管脚在芯片手册中
低速简单的接口用GPIO
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值