单片机内存资源比较小
用途主要是一些专用的功能
应用处理器在MCU的基础上,扩展了一些模块由于芯片内部ram flash比较小可外接DDR 和flash,芯片内部可扩展lcd GPU dsp等模块功能。可以装各种操作系统linux ios windows等,有了操作系统可以开发各种应用。
发展路线:
对于复杂的外设cpu内部有相应的控制器
板子上电后,cpu会执行第一条指令,如果是sd卡启动,cpu是不能直接访问sd,需通过芯片内部的rom(only read),
Pc主板不是soc,硬件设计比较复杂,每个模块都是独立的。
操作fpio一般分为4步:
1、 enable power/clock control
2、 pins mode (决定从uart 或者 gpio_data_reg)
3、 引脚输入/输出
4、 Data 1或者0 高低电平
设置引脚是通过操作寄存器。
寄存器操作3步(不能只修改某一位会影响其他位,所以需要三步走):
1、 read 寄存器的值
2、 修改寄存器的值
3、 写回修改的寄存器的值
如上三步是一般寄存器操作方法,但是不同的芯片也会有所不同,具体还需要查看相应的芯片手册
板子上电运行步骤(sd卡启动)
1、 交叉编译程序,添加相应的头部信息(告诉片内rom被复制到何处以及长度)
2、 程序文件烧写到sd卡,程序文件有头部信息指定加载程序被复制到外部ddr哪个位置(0x80000000)和其他信息(被复制是通过片内rom完成的,因为cpu不能直接读sd卡等存储设备)。
由于位于sd卡上的程序不会直接运行,需要片内Rom固化程序,根据头部信息就知道了把sd卡上的程序复制到ddr中哪里去。
2、cpu执行一条汇编代码,汇编代码包括从ddr哪里读程序,从程序的哪个函数开始。
ARM 的地址在在一个空间 ×86不在一个空间 对于不同的空间需要不同的指令
CPU内部也有很多寄存器,和gpio不太一样
串口数据交互原理图