1、嵌入式的学习难度
1)C语言基本功
a)将数据结构课上的编程题目自行实现
b)MS.rar
int a[10][20]
假设起始地址为0x100
a+1 = ?
a[0] + 1 = ?
&a + 1 =?
2)嵌入式开发环境
装ubuntu纯系统
3)软硬件结合的工作
看懂电路原理图
cpu datasheet
2、课程内容
2.1 裸板开发(不跑操作系统)
51单片机
STM32
led uart g-sensor 按键 蜂鸣器
2.2 系统移植
移植uboot
移植linux
根文件系统制作
2.3 linux驱动程序开发
2.4 项目课程
智能家居
zigbee LORA
智能车
python
嵌入式AI(边缘计算)
3、嵌入式系统的定义
以应用为中心 软硬件可裁剪
对功能 可靠性 成本 体积 功耗有严格要求的计算机系统
4、嵌入式系统的构成
硬件系统
硬件最小系统:
处理器
51
arm
mips
powerpc
...
电源电路
时钟电路
复位电路
存储器
掉电丢失
RAM
SRAM
DRAM
掉电不丢失
ROM
PROM (programme)
EPROM (erase 紫外线照射)
EEPROM (电可擦除 容量小)
flash
norflash
nandflash
emmc = IC电路 + nandflash
软件
硬件驱动程序
OS:
linux:时间片轮转
ucos-ii:基于优先级的调度策略
vxworks
自行开发的操作系统
无操作系统
main()
{
....
while(1)
{....}
}
应用软件
无操作系统: C编程 + 数据结构
linux: + uc
+ qt
+ sqlite
5、嵌入式开发模式
开发主机:
编辑代码
编译代码
目标板:
运行代码
通信介质:
RS232 (串口线)
USB
网线
JTAG
问题: 给你一块板子 如何把它用起来?
1)了解板子的主要硬件
2) 烧写代码的工作
3)自己写段代码 放到板子上运行
6、板子上的主要硬件
env/doc.zip/day01.pdf
核心板:
cpu, S5P6818 64BIT 8核 1.4GHz
DDRAM, 1GB
EMMC, 8GB
网卡, RTL8211
电源管理芯片
底板:
7、板子的烧写实验
windows: SecureCRT.rar
linux: kermit/minicom
擦除开发板: mmc erase 0 100000
7.1 将uboot烧写到TF卡
7.2 通过网络传输将ubootpak.bin下载到开发的DRAM
通信协议使用的tftp协议
tftp是ftp协议的简化版本, 少了用户管理
7.2.1搭建tftp server
a)安装server
百度: ubuntu tftp
在线:sudo apt-get install softname -d
离线:cd Downloads/tftp/
sudo dpkg -i *.deb
dpkg -l | grep "tftp"
纯系统中需要安装的软件:
tftp
nfs
kermit
ctags
qemu
b) 配置tftp server
sudo vi /etc/default/tftpd-hpa
#tftp server的主目录
TFTP_DIRECTORY="/tftpboot"
sudo mkdir /tftpboot
sudo chmod 777 /tftpboot -R
c) 修改了配置文件 重启tftpserver 使新配置生效
sudo /etc/init.d/tftpd-hpa restart
d) 准备供客户端使用的文件
cp /mnt/hgfs/arm/env/ubootpak.bin /tftpboot/
7.2.2 客户端的准备
uboot软件中自带了tftp客户端功能
7.2.3 保证开发板能够ping通服务器
1)如果使用的是ubuntu纯系统,只要保证
开发板 ubuntu系统处于同一网段
2)如果使用的vmware虚拟机
a)保证开发板 ubuntu windwos 三者处于同一网段
ubuntu: 192.168.1.8
开发板:192.168.1.6
printenv 打印环境变量
setenv ipaddr 192.168.1.6
setenv serverip 192.168.1.8
saveenv
window: 192.168.1.55
b)设置为桥接模式
“虚拟机”---》设置---》网络适配器---》桥接模式
c)设置用于桥接的网卡
“编辑”---》虚拟网络编辑器----》
桥接到(连接到开发板的网卡)
验证:在串口中执行 ping 192.168.1.8
显示“host 192.168.1.8 is alive”
7.2.4 通过tftp命令下载ubootpak.bin
tftp 0x48000000 ubootpak.bin
如果ping通了,但是下载过程中一直输出 T T T
可以考虑重启一下tftp server
sudo /etc/init.d/tftpd-hpa restart
再去下载
tftp 0x48000000 ubootpak.bin
7.2.5 将0x48000000位置存储的uboot程序烧写到emmc
update_mmc 2 2ndboot 0x48000000 0x200 下载字节数