IoT实战之M核编程与调试
在ARM处理器的A、R、M三大系列中,M系列因为极低的功耗和极高的性价比而在物联网、深度嵌入式和实时控制等领域有着非常广泛的应用。
本培训以基于国产ARMv7-M SoC芯片的GDK3开发板为实例,通过精心设计的编程试验和独特的NanoCode调试工具,详细介绍M核编程所需的各种知识和技能,深度解析M核的重要部件和关键特征。
通过这门课,你将能够:
- 使用GNU的开源工具链来构建物联网应用软件;
- 理解深度嵌入式系统的软件栈,包括HAL层、基本驱动和RTOS系统;
- 完成常用的嵌入式开发任务,包括使用GPIO控制LED、通过USB端口与主机通信、管理闪存和制作U盘等。
课程形式
线上讲解、演示和动手试验
课程长度
6次理论讲解 + 6次动手试验
图为GDK3实际演示。
一、通过寄存器温故知新
本讲要点:M核的历史和背景、PC寄存器和图灵机、LR寄存器和函数调用、SP寄存器和栈、r0寄存器的典型用法、ARMv7概述、系统寄存器简介、理解精简指令集(RISC)、认识常用的指令。
试验1:搭建开发和调试环境
二、从地址空间认识M核的世界
本讲要点:记忆体、内存和外存、外部设备空间、M核地址空间布局、通过外设地址空间访问外部设备、GPIO、GPIOA和GPIOB、配置GPIO、通过GPIO输出信息。
试验2:编写代码通过GPIO控制LED
三、GNU ARM工具链
本讲要点:IDE和背景、GNU工具链的内容、构建过程、makefile、清单文件、map文件、elf文件格式、hex、反汇编、objdump、常见问题的解决方法。
试验3:熟练使用GNU工具链中的各个工具
四、奇妙的闪存
本讲要点:外存简史、闪存的由来、NOR闪存的特征、读写原理、块、M核的内部闪存、访问内部闪存的方法、烧录程序的过程、哈佛架构。
试验4:自己编写代码访问闪存
五、USB设备
本讲要点:USB总线精要、主机端和设备端、USB设备的寄存器、设备类型、设备发现和识别过程、传输数据、中断处理。
试验5:定义我自己的USB设备
六、嵌入式系统软件栈和RTOS
本讲要点:M核的软件栈、HAL、驱动、RTOS背景、CMSIS、RTX、线程创建和管理、多线程同步、在调试器下观察线程。
试验6:编写多线程的物联网应用
讲师介绍
1996年毕业于上海交通大学信息与控制工程系,在软件产业工作20余年,一多半时间任职于INTEL公司的上海研发中心,先后在PASD、DEG、CPG、PCCG、VPG等部门工作。业余时间喜欢写作和参与各类技术会议,发文数百万字,探讨各类软件问题,其中《在调试器里看阿里的软件兵团》等文章广为流传。
2015年起获微软全球最有价值技术专家(MVP)奖励。著有《软件调试》、《格蠹汇编》和《软件简史》等书,曾经主笔《程序员》杂志调试之剑专栏 。在多家跨国公司历任开发工程师、软件架构师、开发经理、项目经理等职务,对 IA-32 架构、操作系统内核、驱动程序、虚拟化技术、云计算、软件调优、尤其是软件调试有较深入研究。
从2005年开始公开讲授“Windows内核及高级调试”课程,曾在微软的Webcast和各种技术会议上做过《Windows Vista内核演进》、《调试之剑》(全球软件战役研究峰会)、《感受和思考调试器的威力》(CSDN SD2.0大会)、《Windows启动过程》、《如何诊断和调试蓝屏错误》、《Windows体系结构——从操作系统的角度》(以上三个讲座都是微软“深入研究Windows内部原理系列”的一部分)等。
翻译(合译)作品有《现代x86汇编语言编程》、《21世纪机器人》、《观止——微软创建NT和未来的夺命狂奔》、《数据挖掘原理》、《机器学习》、《人工智能:复杂问题求解的结构和策略》等。
套餐内容
套餐
讲座 + GDK3开发板 + 挥码枪硬件调试器 = 980元
GDK3开发板
挥码枪硬件调试器
单独购买课程
680元 (仅供已有GDK3和挥码枪的老用户)
付款方式
Nano Code内购买(课程号:175)
Nano Code下载链接
购买后会通过Nano Code的绑定邮箱,发送上课方式到该邮箱内。
*注:Nano Code中的课程价格默认为单独购买课程(680元,仅包含课程本身),如需要购买套餐,请咨询课程顾问补差价。
微信 / 支付宝 付款
完成付款后,请发送邮件到zhiqiang.chunyu@xedge.ai进行登记,上课方式也会发送到该发件邮箱内。
联系我们
开课时间
首节课程直播时间:
2022年10月15日星期六
晚上八点至十点(20:00~22:00)
报名或垂询
课程顾问:淳于智强
咨询电话:16622192370 (微信同号)
报名邮箱:zhiqiang.chunyu@xedge.ai
公司付款信息
账户名称: 格蠹信息科技(上海)有限公司
开户行:招商银行股份有限公司上海浦江镇支行
账号:1219 3085 8010 501