作者neoneon (红茶を饮む程度の能力)
看板NCTU-Teacher
标题Fw: [心得] 曹孝栎 - 嵌入式系统设计概论与实作
时间Tue Jul 12 02:32:55 2016
※ [本文转录自 neoneon 信箱]
作者:
[email protected] ("爱宕有机奈米负离子猫")
标题: [心得] 曹孝栎 - 嵌入式系统设计概论与实作
时间: Sun Jul 10 11:11:33 2016
作者: shaform (回不去的旅程) 看板: NCTU-Teacher
标题: [心得] 曹孝栎 - 嵌入式系统设计概论与实作
时间: 2012/07/03 Tue 22:36:48
网志好读版:
http://wp.me/pJ4X-hB
-----------------------------------------------
⊕课名⊕
嵌入式系统设计概论与实作
▲教授▲
曹孝栎
★修课年度★(请加注开课单位 如:大三通识、XX系选修、XX所)
100下 资工系 大三选修
£教了什麽£(课程大概内容。或是额外学会了什麽东西。)
上课时针对嵌入式系统各方面探讨,
包含 bootloader 原理,OS,硬体,开发,业界情况
一些嵌入式作业系统、开发工具
实验用的板子是是 ARM 平台,并常使用 linux 系统
所以也会提到这部份的课题
在 OCW 网站上有影音可看:
http://ocw.nctu.edu.tw/riki_detail.php?pgid=246&cgid=12
实验部份主要是利用 PCM7230 板子做实验,
包含烧录开机程式和作业系统等等。
##
PCM7230:
http://www.kingpronet.com.tw/product/show.php?id=136
##
最後的实验和专题则是在 Openmoko 手机平台上进行。
不过老师说每年不一定一样。
老师上课时有提到一本教科书
Real-Time Concepts for Embedded Systems
内容主要是嵌入式系统实做的一些概念。
如果要跟实验比较相关的话,推荐
Building Embedded Linux Systems ISBN: 0-596-52968-6
尤其对实验1非常有帮助。
◆上课方式◆(投影片、团体讨论、老师教学风格)
上课主要是使用投影片上课。
老师非常能言善道,有时一张投影片就可以讲一节课。
说话速度很快,内容也很有趣,有时会有一些经验谈。
虽然因为不点名,而且上课内容跟实验内容也没有绝对关系,
加上又不考试,所以後期学生较少。
然而其实是很值得一听的。
实验的方面是以两人为一组,每组会发一份板子等实验用具。
要自己找时间去做,然後在星期三晚上去 demo。
由於一开始的实验需要用到 RS232 和 parallel port,
但是最近的电脑很少支援。
所以也有额外开放时间让同学到实验教室使用电脑。
▼考试作业▼
没有期中期末考和小考
所有评分就由 8 次 lab 和最後的期末 project 决定
Labs 80%
Final Project 20%
每次实验都需缴交报告,有时也得缴交原始码。
期末专题的部份,需缴交 proposal, slides, report
最後以简报方式介绍自己的专题,并实际 demo。
有时候lab会有额外的 bonus 可以做
不过最後lab评分似乎是看大家做的情形来决定分数
所以如果大部分的人都有做 bonus 的话,就得做完所有 bonus 才能得到满分
本次课程中仅有lab3的bonus可以让分数超过该次实验的满分
一开始的实验因为刚在熟悉环境所以每两个星期交一次,
後来的实验就是每星期一次了。
Lab 主题如下:
Lab 1 - Environment Setup/System Installation/Hello World
在 PC 上建立 PCM7230 平台的 toolchain
包含 gcc cross compiler, 编译 glibc
以及烧录开机程式, linux kernel ,档案系统等等
并执行 hello world 程式。
Bonus:
1.撰写 echo 程式透过 RS232 和 host 沟通
2.设定开机时自动执行程式
Lab 2 - Bootloader
重新编译 Intrinsyc i-boot-lite bootloader,
加上自订讯息,以及新增多重开机功能。
实际烧录至板子上。
Bonus: 研究 bootloader 的组语程式码,并加上注解说明程式流程
Lab 3 - Non-OS Embedded Application
移除 iboot bootloader 不必要功能,缩减大小。
新增档案加密功能,可以加密放置在 CompactFlash Card 上的。
Bonus:
1.在 CF Card 插入时自动加密其上特定或所有档案。
2.将 UBoot bootloader 移植到 PCM7230 平台上
3.修改 UBoot,使其可以有监听网路封包的功能
Lab 4 - Windows CE
透过 Windows CE .NET Platform Builder 4.2
编译并安装 Windows CE 至板子上
透过 eMbedded Visual C++ 4.0
撰写 hello world 程式至板子上
Bonus:
1.缩减WinCE作业系统大小
2.开机时自动执行hello world
Lab 5 - Linux Kernel and Root Filesystem
重新编译 Linux 核心,并修改档案系统,安装 bash
设定开机时自动执行程式
Bonus: 透过各种方法缩减核心大小
Lab 6 - Interrupt Tracing and Simple Device Driver Programming
在linux核心中插入讯息,观察中断发生流程。
编译范例驱动程式,观察滑鼠移动时的印出讯息。
Lab 7 - Network Packet Tracing
修改linux核心以及/proc档案系统,实做简易网路封包监听功能
Lab 8 - Burning U-boot/Kernel/Root Filesystem for Openmoko
利用 Openmoko 官方提供的工具烧录 bootloader
/ kernel / root filesystem
至 Neo FreeRunner 手机上
然後执行范例程式,观察重力加速器的数值。
Final Project -
利用Openmoko手机平台,配合至少一种感应器,实做创意专题。
也提供材料费可以购买外装感应器。
¥其他¥(是否注重出席率or严禁迟到?需要的基础?)
自己觉得整个课程最难的地方其实是第一个实验,
要安装 linux 作业系统(也可安装在 Virtual machine 上)
而且因为要建立的 toolchain 平台是非常古老的版本,
所以常会有奇妙的相容性必须解决,
或者得使用非常古老的 linux 作业系统。
途中常常要自己 Google 才能找到答案。
##
由於 RS232 的接头实在太难找,但一开始没有开放电脑教室,
我们还曾去顺发购买线材,从主机板上刚好有的 RS232 接头接出来 。
(如果主机板完全没有RS232的话,
想买RS232卡会非常贵,不切实际 XD)
##
後期的实验大致上只要照着实验讲义做就不会有问题,
如果有问题,通常是硬体有问体。
(确实也曾遇到不少次硬体问题)
不过在做 WinCE 实验时,
会有一些软体似乎要在 Windows XP 上才能跑。
(或者也可能是 32-bit / 64-bit等问题)
所以感觉修这堂课也重灌了很多次作业系统 (笑)
¢最後想说的话¢
整体来说嵌入式其实不像之前版上说得那麽辛苦,
至少跟这学期的编译器和人工智慧比起来似乎轻松不少(?)
这学期也要感谢组员的帮忙所以才那麽顺利 \0.0/
&谁适合修这门课&
都可以喔^^
--
▄▄▄▄▄▄▄ ▄▄▄▄ ▄▄▄▄▄▄ <telnet://bbs.cs.nctu.edu.tw>
█▄▄▄▄█ █ ▄▄▄▄▄█ Player: shaform
▄█▄▄▄▄█ ▄▄▄█ █▄▄▄▄▄ From: linux1.cs.nctu.edu.tw
☆ 次世代BS2 ☆ 可申请个人板 150MB 相簿
http://pic.bs2.to 交大资讯人 250MB
推 gxlkhhc:推导师 07/03 22:46
→ yukuro:感觉装virtual box很重要,不然重灌作业系统就糟了? 07/03 22:50
糖 super9817020:推推~~ virtual machine建功~~ 07/03 23:32
推 CMturtle:推荐这篇文章 07/04 07:46
推 keke0421:感谢分享:) 07/04 22:26
推 tzrae:谢谢分享 07/04 22:27
推 jk4837:推荐这篇文章 07/10 00:08
作者从 linux1.cs.nctu.edu.tw 修改文章於 2013/01/03 Thu 10:32:16
推 jpopaholic:这门课人品考验很高,当时把整个组件都换过一遍才成功 01/09 04:58
※ 发信站: 批踢踢实业坊(ptt.cc)
※ 转录者: neoneon (106.105.175.48), 07/12/2016 02:32:55