龍芯嵌入式系統原理與應用開發

孫冬梅

  • 出版商: 人民郵電
  • 出版日期: 2023-03-01
  • 定價: $539
  • 售價: 7.5$404
  • 語言: 簡體中文
  • 頁數: 335
  • ISBN: 7115611882
  • ISBN-13: 9787115611888
  • 相關分類: 嵌入式系統
  • 立即出貨

  • 龍芯嵌入式系統原理與應用開發-preview-1
  • 龍芯嵌入式系統原理與應用開發-preview-2
龍芯嵌入式系統原理與應用開發-preview-1

商品描述

本書介紹龍芯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 應用設計實例 108

7.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 動態線程和靜態線程 180

11.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