HQ嵌入式学习路径

LinuxC语言

  • 必备Linux命令和C语言基础

    • 环境安装
    • 文件很目录相关命令
    • vi编辑器使用
    • 基础知识
    • 数据的表示
    • 程序的编译和调试
  • 数据类型、常量、变量及运算符

  • 输入输出专题

    • 字符串输出函数和格式输出函数
    • 字符串输入函数和格式输入函数
    • 输入函数的垃圾处理及字符串的输入输出
  • 控制语句

    • 控制语句if
    • 控制语句switch
    • 控制语句goto while
    • 循环语句for
    • 循环辅助语句
  • 数组和字符串

    • 一维数组
    • 二维数组
    • 字符串数组和字符串
    • 字符串函数
  • 指针

    • 指针的基本用法
    • 指针的运算
    • 指针与数组
    • 字符指针与字符串
    • 指针数组
    • 多级指针
    • void指针和const修饰符
  • 函数

    • 函数的基本用法
    • 函数的的参数传递
    • 函数中传递数组参数
    • 指针函数
    • 递归函数和指针函数

LinuxC语言高级

  • 软件包管理及shell命令
    • deb软件包管理
    • shell基本命令
    • shell中的特殊字符
  • shell命令

    • shell基本系统维护命令
    • 用户管理命令
    • 进程管理命令
    • 文件系统的类型和结构
    • 文件系统相关命令
    • Linux网络配置管理
  • shell脚本编程

    • 变量
    • 功能语句
    • 分支语句
    • 循环语句
    • 函数
  • C语言高级编程

    • gcc和gdb的用法
    • 条件编译和结构体
    • 结构体数组和结构体指针
    • 共用体及typedef
    • C语言的内存管理模型
    • 动态内存
  • Make file

    • Make的原理及Make file
    • make命令的选项及Make file中的隐含规则
    • VPATH及嵌套的Make file

数据结构

  • 顺序表

    • 数据结构的基本概念
    • 数据结构算法
    • 线性表
    • 顺序表的实现
  • 单链表

    • 单链表的存储模型
    • 单链表的创建和遍历
    • 单链表的查找和插入
    • 单链表的删除和倒置
    • 单链表的有序插入和排序
  • 循环链表及线性表的应用

    • 循环链表的概念及存储模型
    • 双向循环链表的实现
    • 线性表的应用
  • 栈及其实现

    • 栈的概念及存储
    • 顺序栈的实现
    • 链式栈的介绍及实现
  • 队列实现及应用举例

    • 队列的概念和特征
    • 顺序队列存储和初始化
    • 顺序队列入队和出队
    • 顺序队列实例编译和调试
    • 链式队列的特征及实现
  • 树和二叉树

    • 树的基本概念
    • 二叉树的概念及性质
    • 二叉树的顺序存储
    • 二叉树的链式存储
    • 二叉树的创建过程分析及实现
    • 二叉树的递归遍历算法解析
    • 二叉树的层析遍历算法实现
    • 二叉树遍历的先序非递归算法分析
  • 查找

    • 查找的基本概念
    • 顺序查找
    • 折半查找算法分析
    • hash表查找
    • hash表查找冲突分析
    • hash函数选取
    • 开放地址法处理冲突
    • 链地址法分析
  • 排序
    • 排序基本概念及分类概念
    • 直接插入排序算法
    • 折半插入排序算法
    • 链表插入排序算法
    • shell排序算法
    • 冒泡排序算法
    • 快速排序算法

文件I/O

  • 标准I/O

    • 流的打开和关闭
    • 按字符输入和输出
    • 按行出入和输出
    • 按对象输入和输出
    • 流相关的操作
    • sprintf和fprintf的用法
  • Linux下文件I/O

    • 文件I/O介绍
    • 文件I/O的编程接口
    • 目录操作和文件属性
  • 库的制作及使用

    • 静态库的制作
    • 动态库的制作

Linux并发程序设计

  • 进程编程及守护进程

    • 全面认识Linux进程
    • 进程编程必备命令
    • fork函数和exit函数剖析
    • excel函数族和system函数
    • wait函数和waitpid函数对比
    • Linux守护进程
  • 线程专题

    • 线程模型及线程创建
    • 线程同步机制-信号量
    • 线程同步实例
    • 线程互斥
  • Unix进程间通信方式

    • 进程间通信综述及无名管道
    • 进程间通信-有名管道
    • 信号机制及信号相关命令
    • 信号发送及定时器
  • System V IPC对象

    • IPC机制及共享内存介绍
    • 共享内存的实现
    • 消息队列机制及相关函数
    • 消息队列的实现
    • 信号灯集机制及相关函数
    • 利用信号灯集实现共享内存的同步

Linux网络编程

  • 网络基础

    • 网络的历史和分层
    • 网络各层协议解释
    • 网络的封包和拆包
  • TCP编程

    • TCP编程API
  • 并发服务器

    • TCP并发服务器多线程编程
    • TCP并发服务器多进程编程
  • UDP编程

    • 网络编程API扩展及UDP编程API
  • IO多路复用

    • IO模型以及多路服用基本原理
    • select模型
    • 客户端select的实现
    • 服务器端select的实现
  • TCP、IP协议原理

    • wireshark抓包工具使用
    • eth_ip头原理
    • TCp包头 确认重发机制
    • TCP三次、四次握手
  • 网络编程扩展
    • 域名解析
    • 网络属性设置
    • 网络超时优化
    • 广播编程
    • 多播
    • Unix域套接字

SQLite

  • 嵌入式数据库之sqlite
    • 数据库概念
    • 数据库之命令行操作
    • 数据库之API操作

在线词典综合实战

  • 项目介绍及框架搭建
    • 流程分析及功能设计
    • 客户端代码框架搭建
  • 注册登录的实现

    • 服务器端代码框架搭建
    • 注册模块
    • 登录模块
  • 项目功能实现

    • 查询模块

ARM-4412

  • arm基础
    • 环境搭建
    • arm工作模式及寄存器
  • arm指令
    • arm指令存储
    • 逻辑指令
    • 算数跳转指令
    • load_store指令
    • 堆栈指令
  • arm异常处理

    • 认识异常
    • 中断异常处理
    • 异常向量表
    • 软中断程序
  • arm裸机开发

    • 硬件电路介绍
    • LED控制电路跟踪
    • 读芯片手册
    • 编写程序
    • 烧写程序
  • arm通讯接口

    • 通讯接口原理
    • uart串口实例
    • 汇编语言混合编程
  • arm中断机制

    • 中断原理
    • 中断实例
  • arm波形控制

    • 波形模拟uart
    • I2C波形
    • PWM控制

嵌入式系统移植

  • 系统移植概述及环搭建

    • 嵌入式开发环境
    • 搭建开发主机
    • 目标机搭建
    • 连接TFTP服务搭建
    • 连接NFS搭建
  • Boot loader移植

    • Boot loader基本概念
    • U-boot常用命令
    • U-boot配置编译
    • U-boot启动流程
    • U-boot移植方法
  • Linux内核分析

    • Linux内核基本概念
    • Linux内核启动分析
    • Linux内核调试方法
  • Linux内核移植及网卡移植

    • Linux内核移植
    • Linux内核配置编译
    • 网卡移植准备
    • 网卡移植支持NFS_TCPIP_Dm9000驱动
    • 网卡移植之设备树
    • 网卡移植之设备树信息分析
  • 第三方驱动移植
    • 驱动编译进内核Make file
    • 图像化配置Kconfig
    • 驱动模块
    • 黑白盒对比
    • 字符设备引入
    • 平台设备引入
  • 根文件系统制作
    • 根文件系统基本概念
    • 根文件系统设备访问
    • 根文件系统内容制作
    • 制作不同格式根文件系统

驱动初级

  • 设备驱动环境搭建
    • 交叉开发模式介绍
    • Host主机和Ubuntu的环境配置
    • tftp和nfs启动模式介绍
    • 加载并启动内核镜像
    • 通过nfs挂载根文件系统
  • 驱动模块开发
    • 编写驱动ko的准备工作
    • 设备树文件的编译
    • dm90000网卡的移植
    • source insight的用法
    • 最简单到hello驱动代码编写
    • 驱动Make file编写
    • insmod加载ko模块
    • 模块ko参数传递
    • 模块符号导出
  • 字符设备驱动基础
    • 字符设备驱动框架
    • 申请设备号-regisger_chrdev接口的讲解
    • 申请设备号的编程
    • 手动或自动创建设备节点
    • 实现文件操作对象file_operation
    • 应用控制驱动的方式
    • 用户空间和内核空间的数据交互copy_to_user
    • 地址映射ioremap的用法
    • 控制led灯的驱动代码实现
    • 驱动和应用程序的设计思想
    • 驱动中面向对象的设计思想
    • 字符设备驱动编写的步骤
    • 为了代码健全-错处理
    • readl-writel的使用
  • 中断编程

    • Linux中中断的概念和中断处理机制
    • 设备树文件中定义中断号
    • 驱动代码中获取到中断号码的方法
    • 申请中断处理-request_irq的使用
    • 实现字符设备驱动框架
    • 驱动中获取硬件数据并传递给用户的方法
    • 用户获取按键数据的方式
    • 阻塞的概念和接口使用
    • 阻塞的实现-等待队列的使用
    • 非阻塞模式的实现
    • 多路复用select和poll的概念
    • poll函数的使用介绍
    • 应用程序poll的编程方式
    • poll驱动的实现
    • 异步信号通知应用程序编程
    • 异步信号的驱动编程实现
    • 中断下半部的由来
    • tasklet的实现
    • work下半部的实现
  • 平台总线

    • 设备驱动模型的由来
    • sysfs文件系统的介绍
    • 创建bus的代码编程
    • device的构建和注册
    • driver的构建和注册
    • 总线bus匹配的实现
    • driver和device分离和合并
    • 平台总线作用和设计思想
    • 平台总线中的三元素
    • 平台总线led驱动之资源的定义
    • 平台总线中driver实现的逻辑过程
    • 平台总线中driver的注册和匹配
    • 平台总线的probe代码实现
    • 平台总线完成led设备的控制

驱动高级

  • 高级驱动学习方法
    • 字符设备驱动编写时引起的思考
    • 分层框架和面向对象的思想
    • 高级驱动学习特点和目标
  • 输入子系统

    • 输入子系统的作用
    • 输入子系统的框架
    • 最简单的输入设备驱动程序
    • 输入子系统中硬件初始化和上报数据
    • 应用程序读取输入设备数据的方式
    • input device的初始化解释
    • 添加input device的信息
    • 设置位表和上报数据的另外一种方式
    • 设备树中定义按键信息的子节点
    • 代码中分析所有的子节点
    • 应用程序读取多个按键和驱动代码的结构分析
    • 输入子系统工作逻辑
    • input三层分析
    • evdev_connect函数分析
    • input handler和input device及handle的关系
    • 应用是如何调用到输入子系统中去的
    • evdev_open的实现过程
    • endev_read读取输入子系统的数据方式
    • input_event()上报数据的实现过程
    • endev_events中填充缓冲区数据的过程
  • I2C子系统

    • I2C协议和时序讲解
    • Linux I2C驱动框架
    • 总线和平台总线的结合
    • 从设备的设备树信息的添加
    • client_drive_adapter_msg等对象的讲解
    • MPU6050的I2Cdriver驱动框架编写
    • MPU6050操作寄存器
    • 读取MPU6050数据寄存器并上报给用户
    • 应用程序读取重力加速度和陀螺仪的值
  • 设备树
    • 设备树文件的编译
    • 内核使用dtb文件的过程
    • 节点和属性
    • 常见的属性compatible-reg等
    • 在dts中添加新的节点
    • of解析dts节点的API
    • 代码中获取节点
    • 获取属性
    • 获取属性中的整数数组
    • 获取属性中字符串数组
    • 定义和获取dts中的中断信息
    • 验证dts的中断信息
    • dts代替平台设备的pdev硬编码方式

Android系统开发

  • Android 系统开发环境搭建
    • Android架构介绍
    • 源码获取方式
  • Android系统开发之系统编译

    • 官方标准编译方法
    • 编译命令详解
    • 厂商定制
    • 系统分区介绍
  • Android系统开发之模块变成及
    fastboot使用

    • Android系统开发课程体系介绍
    • APK-Android.mk介绍
    • 可执行程序-Android.mk
    • fastboot烧写命令介绍
    • fast boot烧写实战
  • Android 系统启动流程分析

    • Android系统启动流程综述
    • init进程及init.rc分析
    • zygote
    • Android系统launcher定制
    • Android系统开机logo定制
  • Android HAl硬件抽象层的开发
    • JNI语法介绍
    • JNI案例分析
    • HAL框架介绍
    • Led HAL分析
    • Led案例分析- Manager调用service

stm32嵌入式系统设计

  • STM32 GPIO操作平台介绍
    • LED
    • 蜂鸣器
    • 按键
  • USART串口的应用
    • 串口数据收发及收发中断的实现
  • 时钟
    • SystemTick实例
  • 中断系统
    • 外部中断
  • I2C总线通信

    • I2C读写EEPROM
  • SPI总线通信

    • SPI读写Flash
  • 模数转换器ADC
    • ADC采集光照强度
  • 数据搬运工DMA
    • ADC DMA模式采集
  • 实时时钟RTC
  • PWM定时器
    • PWM控制舵机
  • 智能家居项目

原理图及电路设计

  • Cadence原理图符号设计
  • PCB设计基础
  • PCDB封装设计

Zigbee系统开发

  • zigbee开发及环境搭建
  • 无线传感器网络

    • 协议栈
    • 设备间第一次对话
  • 无线传改期网络管理及实战

    • 基于广播和单薄的星状网络
    • 组播通信
    • 串口无线透传
    • 网络管理
  • 项目实战

    • 实现协调器终端1:m的控制

蓝牙4.0开发

  • 蓝牙开发及环境搭建
    • 蓝牙4.0
    • BLE开发环境搭建
  • 基础实验

    • OSAL层工作原理
    • UART实验
    • LED实验
    • ADC实验
  • 蓝牙协议栈

    • 深入了解GAP和GATT
    • 添加特征值-主从机通信
    • 无线网络开发
    • BLE进阶
  • 蓝牙智能手环

RFID开发与应用

  • ISO 14443-A协议
  • RC522基本原理
  • S50卡原理
  • 读写卡操作
  • NFC概念及用途
  • PN532基本原理
  • PN532帧格式
  • PN532读写
  • PN532充值和扣款

物联网拓展与实践

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值