封面
版权信息
版权
内容提要
前言
第01章 概述
1.1 嵌入式系统简介
1.2 LS1B简介
1.3 LS1B 开发套件
第02章 LS1B开发套件硬件平台
2.1 外部接口
2.2 内部结构
2.3 最小系统(核心板)设计结构
2.3.1 电源电路
2.3.2 时钟电路
2.3.3 复位电路
2.3.4 存储器电路
2.4 下载调试接口
2.4.1 串口控制台调试程序
2.4.2 下载程序到Flash
第03章 软件开发基础和集成开发环境LoongIDE
3.1 嵌入式系统的程序设计
3.2 龙芯嵌入式开发工具
3.3 嵌入式系统的结构
3.4 嵌入式C语言开发基础
3.4.1 数据类型和运算符
3.4.2 4种基本程序结构
3.4.3 指针与数组
3.4.4 代码规范
3.5 LoongIDE
3.5.1 LoongIDE简介
3.5.2 LoongIDE的下载和安装
3.5.3 LoongIDE的库函数
3.6 第一个嵌入式系统项目
3.6.1 新建项目向导
3.6.2 项目调试运行
3.6.3 下载到Flash存储器中运行
第04章 通用输入输出与外部中断
4.1 GPIO端口组成及功能
4.2 GPIO的硬件结构
4.2.1 GPIO输入
4.2.2 GPIO输出
4.2.3 GPIO寄存器
4.3 GPIO的常用库函数
4.4 库函数与寄存器的关系
4.5 GPIO应用——流水灯设计实例
4.6 中断的原理
4.7 GPIO中断寄存器
4.8 GPIO中断库函数
4.9 GPIO应用中断——按键点灯设计实例
第05章 通用同步/异步通信
5.1 串行通信简介
5.1.1 串行通信与并行通信
5.1.2 串行通信方式
5.1.3 串行异步通信和串行同步通信
5.1.4 串行异步通信的数据传输形式
5.1.5 串行异步通信的参数配置
5.1.6 串行通信协议的电气特性和电路连接方式
5.2 UART结构及工作方式
5.2.1 UART结构
5.2.2 串行异步通信的工作方式
5.2.3 UART相关寄存器
5.3 UART的常用库函数
5.4 UART应用——串口发送/接收设计实例
第06章 定时器
6.1 常用定时器结构及工作方式
6.2 PWM输出和PWM定时器
6.2.1 PWM结构及工作方式
6.2.2 LS1B中PWM的常用库函数
6.2.3 PWM输出应用设计实例
6.2.4 PWM定时器应用设计实例
6.3 RTC定时器
6.3.1 RTC结构及工作方式
6.3.2 LS1B中RTC的常用库函数
6.3.3 RTC定时器应用设计实例
6.3.4 RTC时钟功能应用设计实例
6.4 WDT
6.4.1 WDT结构及工作方式
6.4.2 LS1B中WDT的常用库函数
6.4.3 WDT应用设计实例
第07章 I2C总线
7.1 I2C总线通信简介
7.1.1 I2C总线介绍
7.1.2 硬件结构
7.1.3 软件协议工作时序
7.1.4 I2C总线的读/写操作
7.2 I2C总线的结构和功能
7.3 I2C总线的常用库函数
7.4 I2C总线上挂载的模块
7.5 I2C模块AT24C02应用设计实例
7.6 I2C模块DS3231应用设计实例
7.7 I2C模块OLED应用设计实例
第08章 串行外设接口(SPI)
8.1 SPI总线概述
8.1.1 SPI定义
8.1.2 SPI多从机配置
8.1.3 SPI工作时序模式
8.1.4 常见串行通信协议对比
8.2 SPI模块的结构和功能
8.3 SPI模块的常用库函数
8.4 SPI模块应用设计实例
实例1:SPI 串口数据的发送
实例2:SPI串口数据实现W25Q32读/写
第09章 CAN总线
9.1 CAN总线简介
9.1.1 硬件协议及编码方式
9.1.2 CAN总线协议
9.2 CAN总线模块结构和功能
9.3 CAN总线模块常用库函数
9.4 CAN总线模块应用设计实例
第10章 RT-Thread内核及其实现
10.1 嵌入式实时操作系统
10.1.1 实时操作系统
10.1.2 主流嵌入式实时操作系统
10.1.3 小而美的物联网操作系统RT-Thread
10.2 RT-Thread在LS1B上的实现
10.3 RT-Thread内核及在FinSH Shell中运行调试
10.3.1 LS1B 目录结构及内核启动过程
10.3.2 在FinSH Shell中运行和调试程序
10.4 RT-Thread的内核基础
第11章 RT-Thread 的线程管理
11.1 进程与线程
11.2 线程及其功能特点
11.3 线程工作机制
11.4 线程管理
11.4.1 线程调度器接口
11.4.2 线程管理接口
11.4.3 线程的相关问题
11.5 线程示例
11.5.1 动态线程和静态线程
11.5.2 入口函数的重用
11.5.3 线程的时间片轮询调度
11.5.4 线程让出
11.5.5 线程抢占
11.5.6 线程恢复
11.5.7 线程挂起
11.5.8 线程睡眠
11.5.9 线程控制
11.5.10 线程的综合运用
11.6 空闲线程及钩子
11.6.1 输出线程间的切换信息
11.6.2 计算CPU的使用率
第12章 RT-Thread的系统节拍与定时器管理
12.1 时钟管理和时钟节拍
12.2 时钟节拍的实现方式
12.3 定时器基础
12.4 动态定时器
12.5 静态定时器
12.6 定时器控制接口
12.7 如何合理使用定时器
第13章 RT-Thread线程间同步与通信
13.1 中断与临界区的保护
13.1.1 线程抢占导致临界区问题
13.1.2 如何进入临界区
13.1.3 临界区的中断服务程序
13.2 线程同步
13.2.1 使用开关中断
13.2.2 使用调度器锁
13.3 信号量
13.3.1 静态信号量与动态信号量
13.3.2 使用信号量的线程优先级反转
13.3.3 使用信号量的生产者和消费者例程
13.3.4 使用信号量解决哲学家就餐问题
13.4 互斥量
13.4.1 互斥量使用的基本例程
13.4.2 互斥量优先级反转例程
13.4.3 互斥量优先级继承例程
13.5 事件
13.6 邮箱基本使用
13.7 消息队列
13.8 邮箱与消息队列的区别
13.9 信号的概念及使用
13.9.1 信号的概念
13.9.2 信号的应用例程
第14章 RT-Thread内存管理
14.1 内存管理基础知识
14.2 RT-Thread内存管理基础
14.3 动态内存分配和使用
14.4 内存池
14.5 内存池静态内存分配
14.6 动态内存管理
14.7 内存环形缓冲区
第15章 基于RT-Thread的LS1B文件系统
15.1 文件系统、文件与文件夹
15.2 文件和目录的接口
15.3 文件系统编程示例
第16章 基于 RT-Thread 的 LS1B网络系统
16.1 网络编程基础
16.1.1 TCP/IP
16.1.2 IP 地址、端口与域名
16.1.3 网络编程协议
16.2 TCP/IP 服务器端数据收发编程示例
16.3 TCP/IP客户端数据收发编程示例
第17章 基于RT-Thread的LS1B设备操作
17.1 I/O设备管理框架
17.2 RT-Thread的设备接口
17.2.1 设备驱动必须实现的接口
17.2.2 设备驱动实现的步骤
17.2.3 编写驱动并自动注册
17.2.4 编写应用程序测试驱动
第18章 嵌入式系统的综合设计
18.1 嵌入式系统设计流程
18.2 案例:基于物联网的智慧路灯
18.2.1 项目背景和需求
18.2.2 系统总体设计
18.2.3 硬件设计
18.2.4 软件设计
18.2.5 智慧路灯的系统调试
参考文献
致谢
更新时间:2023-06-21 18:31:41