马上开始. 它是免费的哦
注册 使用您的电邮地址
Android 作者: Mind Map: Android

1. 接口開發

1.1. 硬件電路設計基礎

1.2. 包括IO

1.3. 串口

1.4. 看門狗

1.5. PWM定時器

1.6. 模(ADC)

1.7. DMA操作等

1.8. 物聯網基礎

1.9. 傳感網zigbee

2. HAL

2.1. Linux操作

2.1.1. Make

2.1.2. User

2.1.3. folder

2.1.4. 網路管理

2.1.5. VI编辑器

2.1.6. GCC编译器

2.1.7. GDB调试器

2.1.8. Make file

2.2. C语言

2.2.1. 程序結構

2.2.2. 指针

2.2.3. 数组

2.2.4. 常用算法

2.2.5. 函数庫的使用等

2.3. 訊號傳輸

2.3.1. linux内核

2.3.1.1. Kernel Space

2.3.1.1.1. CPU可以管的HW透過machine code操作

2.3.1.1.2. CPU可以管的硬體

2.3.2. APP

2.3.2.1. User Space

2.3.2.1.1. 多工

2.3.3. 底層驅動

2.3.4. 通信協議及實際開發中應用

2.3.5. 順序表、鍊錶、隊列、棧、樹、圖、哈希表、各種查找和排序算法等…

2.4. Linux應用編程

2.4.1. 精通嵌入式Linux下的程序設計

2.4.2. 嵌入式Linux開發環境…

2.4.3. 強化對Linux開發的理解和編碼調試的能力

2.4.4. 系統編程

2.4.5. 標準I/O

2.4.6. 文件I/O

2.5. 線程

2.5.1. 多進程編程

2.5.2. 進程間通信機制

2.5.3. 多線程編程

2.5.4. 多線程間的同步和互斥機制

2.5.5. 內存管理、Link

2.6. 網路編成

2.6.1. TCP/IP協議

2.6.2. TCP及UDP編程

2.6.3. 抓包工具等

2.6.4. 協議分析

2.6.5. 服務器模型

2.6.6. 超時控制

2.7. SQL

2.8. 移植內核(bsp開發)

2.8.1. Audio

2.8.2. Sensor

2.8.2.1. 動作

2.8.2.1.1. 加速度

2.8.2.1.2. 重力

2.8.2.1.3. 陀螺儀

2.8.2.2. 位置

2.8.2.2.1. 方向

2.8.2.2.2. 磁場

2.8.2.3. 環境

2.8.2.3.1. 溫度

2.8.2.3.2. 壓力

2.8.2.3.3. 光線

2.8.3. USB

2.8.3.1. 差分訊號 127外部設備 擴蹼結構 複合設備

2.8.3.2. 四針 九針兩對高速差分訊號 十二針X2 Type C

2.8.3.3. 傳輸

2.8.3.3.1. 等時

2.8.3.3.2. 控制

2.8.3.3.3. 中斷

2.8.3.3.4. 批量

2.8.4. 硬體裝置介面

2.8.4.1. – UART – I 2C – USB – Ethernet

2.8.5. CPU

2.8.5.1. 暫存器 DMA 中斷

2.8.6. Memory

2.8.6.1. – 各種定址法 – 記憶體配置 – 虛擬記憶體管理

2.8.7. 儲存裝置讀寫法

2.8.7.1. – SRAM – Flash – 磁碟 – SDCard

2.8.8. Camera

2.8.8.1. Code Log意涵

2.8.8.2. 驅動架構

2.8.8.2.1. 驅動類型 字符?

2.8.8.2.2. 如何創建 Hal的接口

2.8.8.2.3. 硬體訊息哪修改 輸出圖像尺寸 格式 mipi通道數

2.8.8.3. 新增camera

2.8.8.3.1. Device 位置配置 前攝 後攝

2.8.8.3.2. 電時序哪邊新增

2.8.8.3.3. 如何決定camera輸出圖像走MTK RAW通道還是YUV通道

2.8.8.3.4. Kernel camera列表描述的訊息

2.8.8.4. 初始化流程

2.8.8.4.1. 初始化目的

2.8.8.4.2. 如何初始化

2.8.8.4.3. Hal怎麼index到指定的camera

2.8.8.4.4. kernel層camera管理機制的建立 如何index 訪問指定的camera

2.8.8.4.5. Hal配置的camera訊息 kernel配置的訊息 兩個的溝通橋樑

2.9. 制作根文件系统

3. Linux驅動高級開發

3.1. 網卡驅動

3.1.1. 封包

3.2. sd卡驅動和usb驅動

3.3. 序列埠裝置驅動

3.4. 字元驅動

3.4.1. – 觸控式螢幕 – 磁帶驅動器 – 滑鼠

3.4.2. inode

3.5. Block區塊設備驅動

3.5.1. 512 bytes,

3.5.1.1. inode

3.5.2. – 硬碟機 – 軟碟機

3.6. System Call

3.6.1. VFS

3.6.1.1. file System

3.6.1.1.1. Buffer Catch

3.6.1.1.2. Character Device Driver

3.6.2. Socket

3.6.2.1. Network protocol

3.6.2.1.1. Device Driver

3.7. flash驅動

3.7.1. Character+Block

4. 網路

4.1. 無線技術

4.1.1. Qi

4.1.2. NFC

4.1.3. Wi-Fi

4.1.4. Bluetooth

4.2. 行動網路

4.2.1. GSM

4.2.2. UMTS

4.2.3. LTE

4.2.4. 5G NR

5. Linux&Device内核驱动

5.1. Process context

5.1.1. User context

5.1.2. Thread context

5.1.3. 可以 Sleep,可以被 Preempt

5.2. Interrupt context

5.2.1. 不可以 Sleep,也不可以被 Preempt

5.2.2. Kernel Space 不能被 Preempt

5.2.3. Kernel CONFIG「CONFIG_PREEMPT」

5.2.4. Process type and features -> Preemption Model -> Preemptible Kernel

5.2.5. CPU Bus(PCI 或 USB,網路封包,EEPROM

5.2.6. little endian,PCI bus 規格也採用 little endian. big endian

5.2.7. EEPROM 之類的 NVRAM(Non Volatile Ram)

5.2.8. driver 在讀寫 NVRAM 時必須注意 endian 的不同

5.3. 內核源碼結構

5.4. 內存管理

5.5. 進程管理

5.5.1. Process

5.5.1.1. Process 是 OS 分配資源的對象

5.5.2. Thread

5.5.2.1. Stack Register Set Program Counter

5.5.2.1.1. Thread 是 OS 分配 CPU 時間的對象

5.6. 中斷管理

5.7. 系統調用

5.7.1. 同時呼叫(Concurrent Requests)

5.7.1.1. 排程問題

5.7.2. 移出執行狀態(Swap Out)

5.7.2.1. Kernel 2.6,搶占式(Pre-emptive)

5.7.3. 非同步溝通(Asynchronous Communication)

5.7.3.1. 模組找App不在,則用非同步

5.7.4. 統一的呼叫介面

5.7.5. 競爭狀況(Race Condition)

5.8. 內核……

5.8.1. linux内核

5.8.1.1. 記憶體管理機制

5.8.1.2. 平行處理機制

5.8.1.2.1. 多工與同步 • 自旋鎖(Spin Lock) • 互斥體(Mutex) • 信號體(Semaphore) • 等待佇列(Waiting Queue)

6. BootLoader

6.1. 開發環境

6.1.1. Type-Length-Value

6.1.2. 選型

6.1.3. 硬件、移植

6.1.4. 啟動代碼

6.1.5. 驅動開發……

6.2. 移植bootloader

6.3. 驅動開發

6.3.1. 內核模塊開始,

6.3.2. 逐步添加相關代碼,實現對設備的各種複雜操作。

6.3.3. 驅動中的相關機制不需要死記硬背,要理解內核設計思想,此外……

7. JAVA

7.1. Java中多線程編程

7.2. 網絡編程及

7.3. 常用Java類Class

8. ARM處理器編程

8.1. ARM體系結構

8.2. 編程環境

8.3. 指令集

8.4. 尋址方式。

8.5. 調試

8.6. 彙編和混合編程等為後面移植課程打基礎。可獲得ARM公司全球統一授權培訓證書

9. 車載

9.1. Protocol

9.1.1. DSRC專用短距離通訊技術 Dedicated Short Range Communication

9.1.1.1. IEEE 802.11p與3GPP Release 14/15/16, 操作於5.9GHz智慧交通運輸系統 (Intelligent Transportation System, ITS)。

9.1.1.1.1. 交通號誌燈控制、交通監控

9.1.1.1.2. 旅行者警報、自動收費,透過路邊設施(Roadside Unit, RSU)的資料傳輸 改善用路人的安全性及交通

9.1.1.2. 1999年開放5,850~5,925MHz共計75MHz頻寬

9.1.1.3. 2023年起將強制美國所有輕型車輛配備車用專屬DSRC設備

9.1.1.4. IEEE 802.11p、IEEE 1609.x、SAE J2735

9.1.2. C-V2x蜂巢式車聯網 Cellular Vehicle-to-Everything

9.1.2.1. ETSI

9.1.2.1.1. 5G Automotive Association, 5GAA

9.1.3. CSAE

9.1.3.1. Connection

9.1.3.1.1. OTA(Over the Air)

9.1.3.2. Autonomous driving

9.1.3.2.1. CV2X

9.1.3.2.2. ADAS

9.1.3.3. Shared & Service

9.1.3.3.1. Keyless與Digital key

9.1.3.4. Electrification

9.1.3.4.1. battery

9.1.4. LTE-V

9.1.5. TCP/IP協定

9.1.6. CAN bus協定

9.1.7. Cellular V2X

9.1.8. SAE

9.1.9. socket TLV

9.1.10. eCall

9.1.11. NGeCall

9.1.12. MirrorLink

9.2. 車聯網、智慧駕駛、車路協同

10. USB

10.1. UsbManager

10.1.1. 獲得 USB 管理器,與連接的 USB 設備通訊。

10.2. UsbDevice

10.2.1. 每個UsbDevice 代表一個 USB 設備。

10.3. UsbInterface

10.3.1. 設備的功能集,一個 UsbDevice 可能包含一個或多個UsbInterface,每個 Interface 都是獨立的。

10.4. UsbEndpoint

10.4.1. UsbEndpoint 是 interface 的訊息通道。

10.5. UsbDeviceConnection

10.5.1. host 與 device 建立的連接,並在 endpoint 傳輸數據。

10.6. UsbRequest

10.6.1. Request

10.7. UsbConstants

10.7.1. Wistron interview Constants

11. Programing C++

11.1. Pthread C++ thread

11.1.1. void * func1(void * t) 接收一個指標,無型別指標

11.1.2. pthread_create()

11.1.3. pthread_exit()

11.1.4. joinable

11.1.5. detached

11.1.6. mutex

11.2. Socket

11.2.1. int socket (int domain, int type, int protocol);

11.2.1.1. AF_INET IPv4 AF_INET6 IPv6 AF_UNIX Unix域 (程序與程序間的傳輸)

11.2.1.2. SOCK_STREAM 序列化的連接導向通訊。對應的protocol為TCP。 SOCK_DGRAM 提供的是一個一個的資料包(datagram)。對應的protocol為UDP

11.2.1.3. Protocol設為0,讓kernel選擇type對應的

11.2.2. int connect (int sockfd, struct sockaddr_in *server, int addr_len);

11.2.3. Server

11.2.3.1. 建立 socket descriptor -> 設定 Server 位址資訊 -> 設定 listen() -> 等待連線 -> 接受連線 accect() -> 傳送接收資料

11.2.4. 穿行轉向碰撞風險警示(Across Traffic Turn Collision Risk Warning)

11.2.5. Client

11.2.5.1. 建立 socket descriptor -> 設定 Server 位址資訊 -> 連線到 Server 端 connect() -> 傳送接收資料

11.3. Multithread

11.4. IPC

11.5. File I/O

11.6. IP

11.6.1. SOME/IP raw

11.6.1.1. 發送者發現信號的值變化了,或者發送周期到了,就會發送信息,而不考慮接收者是否有需求

11.6.1.2. Scalabe service-Oriented MiddlewarE over IP protocol

11.6.1.3. 有PC、VN5640和VT系統。PC執行測試軟件包,VN5640作爲網絡接口卡進行以太網報文收發,VT供電系統對DUT進行供電