新書推薦:
《
中国古代妇女生活(中国古代生活丛书)
》
售價:NT$
214.0
《
你的认知正在阻碍你
》
售價:NT$
296.0
《
我们身边的小鸟朋友:手绘观鸟笔记
》
售價:NT$
356.0
《
拯救免疫失衡
》
售價:NT$
254.0
《
收尸人
》
售價:NT$
332.0
《
大模型应用开发:RAG入门与实战
》
售價:NT$
407.0
《
不挨饿快速瘦的减脂餐
》
售價:NT$
305.0
《
形而上学与存在论之间:费希特知识学研究(守望者)(德国古典哲学研究译丛)
》
售價:NT$
504.0
|
編輯推薦: |
1.由易到难 循序渐进。嵌入式系统简介 → 裸机编程 → 操作系统 → 综合设计2.案例多,设计实例+编程示例。理论与实践相结合。介绍常用外设的基本原理、常用库函数,并给出设计实例。介绍基于RT-Thread操作系统的基本操作与编程示例。3.有综合设计:基于物联网的智慧路灯。带领读者熟悉嵌入式系统设计流程。
|
內容簡介: |
本书介绍龙芯1B(LS1B)芯片的原理与应用开发,以培养读者的动手能力和增强读者的工程素养为目标,按照项目驱动的思路展开知识的讲解和实践操作。本书基于LS1B开发套件,讲解LS1B的结构及原理,还介绍进行嵌入式系统开发需掌握的GPIO、UART等外设的基本原理与常用库函数,以及国产物联网操作系统RT-Thread的原理及应用开发。最后通过一个综合设计——基于物联网的智慧路灯,让读者熟悉嵌入式系统设计流程。
|
關於作者: |
孙冬梅博士后,南京工业大学副教授。现任江苏省仪器仪表学会理事、江苏省射频识别技术标准化技术委员会委员。微课程“龙芯嵌入式系统设计及应用”获 2020 年江苏省高校微课教学比赛三等奖。编著的图书《嵌入式 Linux 系统设计及应用——基于国产龙芯 SoC》入选 2020 年江苏省高等学校重点教材。
|
目錄:
|
第01章 概述1.1 嵌入式系统简介 002 1.2 LS1B 简介 003 1.3 LS1B 开发套件 003 第02章 LS1B 开发套件硬件平台 2.1 外部接口 007 2.2 内部结构 007 2.3 最小系统(核心板)设计结构 010 2.3.1 电源电路 010 2.3.2 时钟电路 011 2.3.3 复位电路 011 2.3.4 存储器电路 013 2.4 下载调试接口 014 2.4.1 串口控制台调试程序 014 2.4.2 下载程序到 Flash 016 第03章 软件开发基础和集成开发环境 LoongIDE 3.1 嵌入式系统的程序设计 020 3.2 龙芯嵌入式开发工具 020 3.3 嵌入式系统的结构 021 3.4 嵌入式 C 语言开发基础 022 3.4.1 数据类型和运算符 022 3.4.2 4 种基本程序结构 024 3.4.3 指针与数组 026 3.4.4 代码规范 027 3.5 LoongIDE 简介 031 3.6 LoongIDE 的下载和安装 032 3.7 LoongIDE 的库函数 032 3.8 第 一个嵌入式系统项目 033 3.8.1 新建项目向导 033 3.8.2 项目调试运行 036 3.8.3 下载到 Flash 存储器中运行 038 第04章 通用输入输出与外部中断 4.1 GPIO 端口组成及功能 043 4.2 GPIO 的硬件结构 044 4.2.1 GPIO 输入 044 4.2.2 GPIO 输出 044 4.2.3 GPIO 寄存器 045 4.3 GPIO 的常用库函数 051 4.4 库函数与寄存器的关系 053 4.5 GPIO 应用—流水灯设计实例 054 4.6 中断的原理 057 4.7 GPIO 中断寄存器 058 4.8 GPIO 中断库函数 059 4.9 GPIO 应用中断—按键点灯设计实例 061第05章 通用同步 / 异步通信5.1 串行通信简介 066 5.1.1 串行通信与并行通信 066 5.1.2 串行通信方式 066 5.1.3 串行异步通信和串行同步通信 066 5.1.4 串行异步通信的数据传输形式 067 5.1.5 串行异步通信的参数配置 067 5.1.6 串行通信协议的电气特性和电路连接方式 068 5.2 UART 结构及工作方式 071 5.2.1 UART 结构 071 5.2.2 串行异步通信的工作方式 072 5.2.3 UART 相关寄存器 072 5.3 UART 的常用库函数 073 5.4 UART 应用—串口发送/接收设计实例 075 第06章 定时器 6.1 常用定时器结构及工作方式 079 6.2 PWM 输出和 PWM 定时器 079 6.2.1 PWM 结构及工作方式 080 6.2.2 LS1B 中 PWM 的常用库函数 081 6.2.3 PWM 输出应用设计实例 082 6.2.4 PWM 定时器应用设计实例 084 6.3 RTC 定时器 085 6.3.1 RTC 结构及工作方式 085 6.3.2 LS1B 中 RTC 的常用库函数 086 6.3.3 RTC 定时器应用设计实例 091 6.3.4 RTC 时钟功能应用设计实例 092 6.4 WDT 093 6.4.1 WDT 结构及工作方式 093 6.4.2 LS1B 中 WDT 的常用库函数 093 6.4.3 WDT 应用设计实例 095 第07章I2C 总线 7.1 I2C 总线通信简介 100 7.1.1 I2C 总线介绍 100 7.1.2 硬件结构 101 7.1.3 软件协议工作时序 101 7.1.4 I2C 总线的读/写操作 102 7.2 I2 C 总线的结构和功能 104 7.3 I2C 总线的常用库函数 104 7.4 I2C 总线上挂载的模块 108 7.5 I2C 模块 AT24C02 应用设计实例 1087.6 I2C 模块 DS3231 应用设计实例 113 7.7 I2C 模块 OLED 应用设计实例 118 第08章串行外设接口(SPI) 8.1 SPI 总线概述 123 8.1.1 SPI 定义 123 8.1.2 SPI 多从机配置 124 8.1.3 SPI 工作时序模式 124 8.1.4 常见串行通信协议对比 125 8.2 SPI 模块的结构和功能 126 8.3 SPI 模块的常用库函数 127 8.4 SPI 模块应用设计实例 130 实例 1:SPI 串口数据的发送 130 实例 2:SPI 串口数据实现 W25Q32读/写 132 第09章 CAN 总线 9.1 CAN 总线简介 136 9.1.1 硬件协议及编码方式 136 9.1.2 CAN 总线协议 136 9.2 CAN 总线模块结构和功能 139 9.3 CAN 总线模块常用库函数 141 9.4 CAN 总线模块应用设计实例 144 实例:CAN0 和 CAN1 数据的收发 144 第 10章 RT-Thread 内核及其实现 10.1 嵌入式实时操作系统 151 10.1.1 实时操作系统 151 10.1.2 主流嵌入式实时操作系统 152 10.1.3 小而美的物联网操作系统 RT-Thread 152 10.2 RT-Thread 在 LS1B 上的实现 154 10.3 RT-Thread 内核及在FinSH Shell中运行调试 155 10.3.1 LS1B 目录结构及内核启动过程 155 10.3.2 在 FinSH Shell 中运行和调试程序 158 10.4 RT-Thread 的内核基础 166 第 11章 RT-Thread 的线程管理 11.1 进程与线程 170 11.2 线程及其功能特点 170 11.3 线程工作机制 170 11.4 线程管理 173 11.4.1 线程调度器接口 173 11.4.2 线程管理接口 175 11.4.3 线程的相关问题 180 11.5 线程示例 180 11.5.1 动态线程和静态线程 18011.5.2 入口函数的重用 183 11.5.3 线程的时间片轮询调度 185 11.5.4 线程让出 189 11.5.5 线程抢占 191 11.5.6 线程恢复 193 11.5.7 线程挂起 195 11.5.8 线程睡眠 197 11.5.9 线程控制 197 11.5.10 线程的综合运用 198 11.6 空闲线程及钩子 200 11.6.1 输出线程间的的切换信息 201 11.6.2 计算 CPU 的使用率 203 第 12章 RT-Thread 的系统节拍与定时器管理 12.1 时钟管理和时钟节拍 209 12.2 时钟节拍的实现方式 209 12.3 定时器基础 210 12.4 动态定时器 212 12.5 静态定时器 213 12.6 定时器控制接口 214 12.7 如何合理使用定时器 216 第 13章 RT-Thread 线程间同步与通信 13.1 中断与临界区的保护 218 13.1.1 线程抢占导致临界区问题 218 13.1.2 如何进入临界区 221 13.1.3 临界区的中断服务程序 221 13.2 线程同步 222 13.2.1 使用开关中断 222 13.2.2 使用调度器锁 225 13.3 信号量 225 13.3.1 静态信号量与动态信号量 225 13.3.2 使用信号量的线程优先级反转 232 13.3.3 使用信号量的生产者和消费者例程 235 13.3.4 使用信号量解决哲学家就餐问题 239 13.4 互斥量 243 13.4.1 互斥量使用的基本例程 244 13.4.2 互斥量优先级反转例程 247 13.4.3 互斥量优先级继承例程 251 13.5 事件 254 13.6 邮箱基本使用 258 13.7 消息队列 262 13.8 邮箱与消息队列的区别 267 13.9 信号的概念及使用 268 13.9.1 信号的概念 268 13.9.2 信号的应用例程 268第 14章 RT-Thread 内存管理 14.1 内存管理基础知识 273 14.2 RT-Thread 内存管理基础 274 14.3 动态内存分配和使用 274 14.4 内存池 276 14.5 内存池静态内存分配 277 14.6 动态内存管理 282 14.7 内存环形缓冲区 285 第 15章 基于 RT-Thread 的LS1B的文件系统 15.1 文件系统、文件与文件夹 291 15.2 文件和目录的接口 292 15.3 文件系统编程示例 293 第 16章 基于 RT-Thread 的LS1B网络系统 16.1 网络编程基础 300 16.1.1 TCP/IP 300 16.1.2 IP地址、端口与域名 300 16.1.3 网络编程协议 301 16.2 TCP/IP 服务器端数据收发编程示例 302 16.3 TCP/IP 客户端数据收发编程示例 312 第 17章 基于 RT-Thread 的LS1B设备操作 17.1 I/O 设备管理框架 317 17.2 RT-Thread 的设备接口 318 17.2.1 设备驱动必须实现的接口 318 17.2.2 设备驱动实现的步骤 319 17.2.3 编写驱动并自动注册 319 17.2.4 编写应用程序测试驱动 322 第 18章 嵌入式系统的综合设计 18.1 嵌入式系统设计流程 326 18.2 案例:基于物联网的智慧路灯 327 18.2.1 项目背景和需求 327 18.2.2 系统总体设计 327 18.2.3 硬件设计 328 18.2.4 软件设计 330 18.2.5 智慧路灯的系统调试 334
|
|