day01笔记
国产:
龙芯 飞腾 兆芯 神威 海光 华为
mips ARM 精简指令集
x86 复杂指令集
系统软件 BIOS:basic input output system 基础输入输出系统
kernel开发
编译原理:
hello.c ------>hello.i--------> heelo.s------->hello.o-------->a.out
c源文件 c源文件 汇编文件 可重定位文件 可执行文件
一、编译过程:
1、预处理:
gcc -E hello .c -o hello.i
-E:给预处理器下的命令
-o:是给将要生成的目标文件的名字
预处理:仅仅是文件内容的替换,和注释的去除,并不实际参与编译过程
2、编译:
gcc -S hello.c -o hello.s
-S:是给编译器下的命令
3、汇编
gcc -c hello.c -o hello.o
-c:是给汇编器下的命令
4、链接
gcc hello.s -o hello.o
链接:将目标文件与静态库或动态库进行链接生成可执行文件 hello
二、keil安装
注意:如果之前安装过keil的开发环境, 请先卸载干净
从百度网盘中下载资料包,下载完之后解压到桌面中
注意:一定要解压缩,否则有些文件加载不出来
首先大家需要把windows环境下的文件扩展名显示出来
1.安装KEIL开发环境
1>打开<STM32RBT6\开发工具\MDK520>目录,双击<MDK520.exe>
2>安装时基本上直接下一步下一步即可
3>注意
1)有一步需要选择安装路径,安装路径一定不要有中文
2)有一步需要大家填写姓 名 公司名称 邮箱,都写数字1即可
3)有一步会弹出小的对话框提示是否安装ULINK驱动,选择安装
4)安装结束后会弹出网页,关闭网页
5)安装结束后会弹出自动更新补丁的对话框,关闭更新补丁的对话框
4>安装完KEIL之后,在<STM32RBT6\开发工具\MDK520>目录中
有5个以.pack结尾的文件,安装从上往下的顺序,依次双击安装即可
2.安装仿真器驱动
打开目录<STM32RBT6\开发工具\STLink V2驱动\STLINK_V2_USBDriver>中
如果是64bit操作系统安装<dpinst_amd64.exe>
如果是32bit操作系统安装<dpinst_x86.exe>
3. 测试搭建的环境是否正常
打开 《STM32RBT6/01test》 ---> project目录下 ---》 双击项目工程文件
---》默认打开keil -----> 点击第二行菜单栏 ---》 save all ---> 点击第三行菜单栏的rebuild
---》 如果出现“0 errors 0 warnings” ---> 恭喜恭喜, 上位机的环境搭建完毕!
三、嵌入式开发模式
1、什么是嵌入式
嵌入式是以计算机技术为基础,以应用为中心,软硬件可裁剪,适应应用系统对功能、体积、功耗、成本、可靠性的转专用计算机系统。
为什么操作系统内核都是以c语言实现的呢?因为c语言的执行效率是其他任何语言都无法比拟的。
2、嵌入式开发模式
host<--------------------------------------------->target
上位机 (编辑、编译代码) 下位机(执行)
链接方式:usb 网线 jtag 串口
3、嵌入式的开发难度
c语言基本功
能够读懂电路原理图
能欧读懂英文的数据手册
掌握基本的硬件接口:gpio 1-wire(一线式) uart iic spi can pci pcie usb.........
4、嵌入式的系统构成
1、最小硬件系统
CPU 中央处理器:ARM c51 stm32 mips ppc x86 x64 LA 飞腾 鲲鹏
电源电路:3.3V 5V 12V
时钟电路:提供时钟频率
存储电路:
ram 掉电丢失
rom 掉电不丢失
prom 可编程只读存储器
eprom 可擦除(一次性)的可编程只读存储器
eeprom 电可擦除的可编程只读存储器
flash 闪存 电可擦除 掉电不丢失
norflash 读写速度快 掉电不丢失
nandflash 容量更大 读写速度快 掉电不丢失
mmc 可反复擦写
emmc 接口简单 读写速度相对较快
2、软件最小系统
应用程序:
c语言 UC c++/qt java python c# php
驱动程序:
裸板驱动程序:MCU(micro controller unit)单片机
int main(void)
{
//硬件初始化
while(1)
{
//业务逻辑
}
}
Linux驱动程序:SOC(system on a chip)片上系统
跑os freeRTOS vxworks linux windows ucos-ii
非实时操作系统:Linux,基于优先级的抢占式内核,基于时间片轮询。
实时操作系统:freeRTOS vxworks 在给定的输入时间之后,在严格要求的时间内必须执行完毕。
Linux内核开发基础、字符设备的办成框架、中断子系统、iic子系统、platform机制
四、物联网的层次划分
应用程:手机APP web APP
平台层:小米 小米IOT、百度 天工、阿里云 AIOT、华为 ocean connect、东方瑞通 ES-link、移动 Onenet
负责存储数据、分析数据,还可与应用层交互数据
网络层:基站 手机热点 路由器
负责传输数据
感知层:开发板(stm32f103RBT6)+传感器 负责采集数据
世界上4套主流架构:ARM ppc mips :risc 简单指令集 x86 :cisc 复杂指令集