《嵌入式系统》为电子信息类专业(包括电气、通信、自动化、轨道等)的专业选修课程,主要介绍嵌入式系统的基本概念、ARM体系结构、ARM指令系统、ARM汇编程序设计、嵌入式Linux等基础理论知识和软硬件设计相关应用。先修课程包括:《电子技术基础》《单片机原理及应用》《C程序语言设计》《微机原理》《操作系统》等。
2022~2023春季学期,第3~10周:周一、周二、周四
授课班级:20电11
时间 | 地点 | 授课类型 | 学时 | |
---|---|---|---|---|
03~08周,周一 | 3~5节 | 泉山17#-101 | 理论教学 | 30 |
03~08周,周四 | 3~4节 | 泉山17#-101 | ||
09~10周,周一 | 3~5节 | 泉山12#-601D | 练习与实验 | 10 |
09~10周,周四 | 3-4节 |
授课班级:20通信
时间 | 地点 | 授课类型 | 学时 | |
---|---|---|---|---|
03~09周,周二 | 6~8/9节 | 潘安湖教1楼-210 | 理论教学 | 40 |
03~08周,周四 | 6~8节 | 潘安湖教1楼-210 | ||
10周,周二 | 6~9节 | 潘安湖实验楼305、318 | 实验教学 | 8 |
09周,周四 | 6-9节 |
章节 | 课件 | ||
---|---|---|---|
第1章 嵌入式系统概述 | PPT | 课堂练习 | |
第2章 ARM体系结构 | PPT | 课堂练习 | |
第3章 ARM指令系统 | PPT | 课堂练习 | |
第4章 ARM汇编程序设计 | PPT | 课堂练习 | |
第5章 S5PV210处理器简介 | PPT | 课堂练习 | |
第6章 嵌入式系统设计(含linux) | PPT | 课堂练习 |
章节内容提纲图 |
---|
常用图表 |
---|
ARM指令条件码对照表 |
ARM指令编码表 |
ARM指令Instructions |
ARM伪指令Pseudo-instructions |
ARM伪操作Directives |
C语言的运算符及其优先级 |
S5PV210的内部结构框图 |
补充材料 |
---|
ARM处理器列表 |
ARM Cortex-A系列处理器对比表 |
ARM Cortex-R系列处理器对比表 |
ARM Cortex-M系列处理器对比表 |
ARM开发者手册——汇编部分 |
ARM开发者手册——编译器与汇编 |
SWI ARM System Calls |
ARM Cortex-A 系列程序员手册 |
C语言程序设计 |
---|
求最大公约数和最大值(分支&循环) |
数据块的复制(数组) |
交换两个数(指针) |
C程序和汇编程序相互调用 |
---|
求5个数之和 |
裸机程序示例 |
---|
LED和蜂鸣器 |
嵌入式Linux程序示例 |
---|
LED实践 |
章节 | 题号(来自章节课堂练习) |
---|---|
第1章 | 1、6、7、8、10 |
第2章 | 4、6、8、10、12、26、28、29、30、35、44 |
第3章 | 2、4、7、9、11、13、14 |
第4章 | 2、6、8、9、14、15、17 |
第5章 | 1、2、3、4、6、7、8、9、14、19 |
第6章 | 2、3、4、5、9、13、15、20、23 |
注:作业不能只写答案,要把题目抄上!
20电11 | 20通信 |
---|---|
实验一、汇编语言程序设计 | 实验一、汇编语言程序设计 |
实验二、C语言对硬件操作程序设计 | 实验二、嵌入式Linux程序设计基础 |
实验三、U-boot指令与Linux程序设计基础 | 实验三、LED灯的控制 |
实验四、嵌入式Linux程序综合设计 | 实验四、红外感应模块报警实验 |
S5PV210芯片手册 | Exynos4412芯片手册 |
A8原理图 | A9原理图 |
20电11班的实验采用的工具为Cortex A8-S5PV210实验系统,开发环境为ADS和Linux
20通信班的实验采用的工具为Cortex A9-Exynos4412实验系统,开发环境为Keil(仅仿真)和Linux
1. 安装虚拟机VM,注意如果VM版本低,操作系统版本高,可能导致电脑蓝屏,需升级VM。
2. 建立共享文件夹,注意共享文件夹必须挂载在 /mnt/hgfs/
目录下才有效(待验证,可能导致 Fedora网卡丢失)。
3. 安装 arm-linux-gcc 编译器:
作用:编译程序。
sudo tar -xvzf arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz // 解压,如果是图形界面也可以考虑用归档管理器解压 sudo mv opt / // 将解压后的opt整个复制到根目录的opt下
3.1 如果系统中没有gedit,可以先安装一个(二选一):
sudo yum gedit sudo apt install gedit
3.2 添加环境变量:
sudo gedit /root/.bashrc source /root/.bashrc
在打开的文件中添加路径:
export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin
3.3 验证是否安装成功:
arm-linux-gcc -v
如果显示找不到文件或者目录,需要安装一下32的依赖,因为Ubuntu和Fedora现在都是64位的:
sudo yum install arts.i686 sudo apt-get install lib32z1 sudo apt-get install lib32z1
因为复制到了根目录下,故需要su权限,才能用arm-linux-gcc编译。
4. 安装远程登陆telnet:
作用:访问目标系统(开发板)装端。
sudo yum install telnet sudo apt-get install telnet
访问开发版,开发板Linux内核已设置好telnet登陆的ip为192.168.1.230,用户名为root,密码为空。那么要使PC和开发板网线连接,则PC的有线网属性要修改本机IP为手动方式,且指定的IP必需和开发板的在同一个子网内(如192.168.1.2)。现在还是连不上,显示incorrect login,不确定是不是密码不对。如果直接用串口连接,进入中断应该可以直接使用,或者也可以修改telnet密码。【经测试询问,telnet的登陆密码为 fa】
非常注意:telent无法使用时,考虑用串口(自购串口转USB线)连接,从超级终端进入开发板系统。Linux下可以使用串口工具minicom。安装配置方法请点击 这里。
5. 配置FTP服务:
作用:与目标系统直接传输文件。
(1) 安装:
sudo apt-get install tftp-hpa //PC客户端 sudo apt-get install tftpd-hpa //PC服务端
(2) 创建服务端TFTP目录:
cd /home sudo mkdir tftp
(3) 配置TFTP服务器:
sudo gedit /etc/default/tftpd-hpa
修改其中的内容为
TFTP_USERNAME="tftp" TFTP_DIRECTORY="/home/tftp" TFTP_ADDRESS=":69" TFTP_OPTIONS="-l -c -s"
(4) 重启TFTP服务:
sudo service tftpd-hpa restart
(5) 测试:创建文件a.txt
sudo gedit /home/tftp/a.txt
(6) 测试:在开发板终端(先切换到要存放下载文件目录):
mkdir tftp cd tftp tftp -g -r a.txt 192.168.1.2 //下载测试 tftp -p -l a.txt 192.168.1.2 //上传测试(可先将PC中的a.txt删去再上传看结果)
tftp不需要用户认证,若想用户认证,可以安装vsftpd