🌱 Core 1. ARM Cortex Mx Overview
👉 Tại sao nên học Cortex Mx?
Các bạn đã quen với việc học lập trình Vi điều khiển, đặc biệt phổ biến hiện nay là Vi điều khiển STM32. Nhưng STM32 thì có rất nhiều dòng: F1/F4/F7/L4/L7/... Mỗi dòng này lại chia ra làm các dòng nhỏ nữa, mình ví dụ dòng F4 chia ra thành F401xx, F407xx, ... Nói chung là có rất nhiều loại vi điều khiển dòng STM32, mỗi dòng sẽ khác nhau về bộ nhớ, tốc độ xử lý, các ngoại vi hỗ trợ, thanh ghi, chân, ... Vậy giờ nói là học STM32 thì phải học dòng nào trước 😪 Tất nhiên không bao giờ học hết được tất cả các dòng rồi???
Vậy, theo mình hãy bắt đầu với điểm gì đó chung nhất giữa các dòng này để học, đó chính là phần Core - lõi của chúng.
❓Tại sao chúng ta chọn học lõi ARM
Bạn có thể xem biểu đồ trên để thấy thị phần phát triển của ARM, trong các thiết bị di động. Loại lõi này cũng không quá khó học cho người mới bắt đầu, cũng như việc ARM cung cấp rất nhiều tài liệu về nó.
Ví dụ bên dưới mình thu thập được về độ phổ biến của lõi ARM trong các thiết bị của Apple.
Model | Release | Apple Name | A.K.A. | Core | Bits | Cores | Arch | Notes |
---|---|---|---|---|---|---|---|---|
iPhone | 2007/06 | S5L8900 | ARM1176JZF-S | 32 | 1 | v6 | ||
iPod Touch 1 | 2007/09 | S5L8900 | ARM1176JZF-S | 32 | 1 | v6 | ||
iPhone 3G | 2008/07 | S5L8900 | ARM1176JZF-S | 32 | 1 | v6 | ||
iPod Touch 2 | 2008/09 | S5L8720 | ARM1176JZF-S | 32 | 1 | v6 | ||
iPhone 3GS | 2009/06 | S5L8920 | Cortex-A8 | 32 | 1 | v7 | Samsung Hummingbird 1 | |
iPod Touch 3 32/64G | 2009/09 | S5L8922 | Cortex-A8 | 32 | 1 | v7 | iPod Touch 3 8G is 2nd gen hardware | |
iPad | 2010/04 | A4 APL0398 | S5L8930 | Cortex-A8 | 32 | 1 | v7 | |
iPhone 4 | 2010/06 | A4 APL0398 | S5L8930 | Cortex-A8 | 32 | 1 | v7 | |
iPod Touch 4 | 2010/09 | A4 APL0398 | S5L8930 | Cortex-A8 | 32 | 1 | v7 | |
AppleTV 2 | 2010/09 | A4 APL0398 | S5L8930 | Cortex-A8 | 32 | 1 | v7 | |
iPad 2 | 2011/03 | A5 APL0498 | S5L8940 | Cortex-A9 | 32 | 2 | v7 | |
iPhone 4S | 2011/10 | A5 APL0498 | S5L8940 | Cortex-A9 | 32 | 2 | v7 | |
iPad 3 | 2012/03 | A5X APL5498 | S5L8945 | Cortex-A9 | 32 | 2 | v7 | |
AppleTV 3 | 2012/03 | A5R2 APL2498 | S5L8942 | Cortex-A9 | 32 | 2 | v7 | Has two cores but one is disabled! 2 |
iPhone 5 | 2012/09 | A6 APL0598 | S5L8950X | “Swift” | 32 | 2 | v7S | Custom design |
iPod Touch 5 | 2012/10 | A5R2 APL2498 | S5L8942 | Cortex-A9 | 32 | 2 | v7 | |
iPad 4 | 2012/11 | A6X APL5598 | S5L8955 | “Swift” | 32 | 2 | v7S | Custom design |
iPad Mini | 2012/11 | A5R2 APL2498 | S5L8942 | Cortex-A9 | 32 | 2 | v7 | |
AppleTV 3A | 2013/01 | A5R2 APL7498 | S5L8947 | Cortex-A9 | 32 | 1 | v7 | A ‘proper’ single core design |
iPhone 5C | 2013/09 | A6 APL0598 | S5L8950X | “Swift” | 32 | 2 | v7S | Custom design |
iPhone 5S | 2013/09 | A7 APL0698 | S5L8960X | “Cyclone” | 64 | 2 | v8 | Custom design |
iPad Air | 2013/11 | A7 | “Cyclone” | 64 | 2 | v8 | Custom design | |
iPad Mini 2 | 2013/11 | A7 | “Cyclone” | 64 | 2 | v8 | Custom design |
❓Tại sao chúng ta chọn ARM Cortex-M
Về cơ bản thì ARM đang phát hành một số loại Core chính như sau:
- ARM Cortex-A (Application Core)
- Các core hỗ trợ 32-bits và 64-bits core support cho các thiết bị sử dụng rich operating system như Linux / Ardroid, và được sử dụng rộng rãi trong các ứng dụng thiết bị cầm tay như Smartphones, Tablet, Set-top box, và các thiết bị mạng.
- Ví dụ chip Exynos 980 của Samsung có 2 lõi Cortex-A77 và 6 lõi Cortex-A55, sử dụng trong điện thoại smartphone Galaxy A71 5G.
- ARM Cortex-R (Real-time Core)
- Bộ xử lý Cortex-R nhắm đến các ứng dụng thời gian thực hiệu suất cao như bộ điều khiển ổ cứng (hoặc bộ điều khiển ổ đĩa thể rắn), thiết bị mạng và máy in phân khúc doanh nghiệp, cũng như các ứng dụng ô tô như túi khí, hệ thống phanh và quản lý động cơ, ...
- Ví dụ Cortex-R4 hỗ trợ tần số tối đa 600MHz, 8-stage pipeline, hệ thống low latency interrupt, được sử dụng cho các ứng dụng Automotive.
- Cortex-R5 phát triển từ Cortex-R4 + tăng độ tin cậy và khả năng xử lý lỗi, dùng cho các ứng dụng mạng và lưu trữ dữ liệu.
- ARM Cortex-M (MicroController)
- Điểm mạnh là dễ tích hợp với các ngoại vi (Peripheral), hiệu năng không cao và tiết kiệm năng lượng. Nên chúng sử dụng phổ biến cho Vi điều khiển nói chung.
- Dòng Cortex-M được xây dựng trên kiến trúc ARMv7-M (dùng cho Cortex-M3 và Cortex-M4), và dòng Cortex-M0+ nhỏ hơn được xây dựng trên kiến trúc ARMv6-M.
- ARM cung cấp cho các hãng Vi điều khiển như TI, ST, ... và những hãng này đã bổ sung vào đó những ngoại vi của họ để tạo ra nhiều dòng vi điều khiển khác nhau. Các ngoại vi có thể là bộ nhớ, RCC, GPIO, UART, SPI, I2C, ... Giống như chip STM32 cũng có lõi Cortex M3/M4/M7.
- ARM Cortex-X (Cutting-Edge CPUs)
- Mục tiêu của Cortex-X là mang đến cho các nhà sản xuất khả năng tùy chỉnh bộ xử lý theo nhiều cách thức đa dạng hơn, từ đó tối ưu hiệu suất xử lý tổng thể hoàn hảo hơn.
- Cortex-X1 tăng 30% khả năng xử lý hiệu năng cao so với Cortex-A77 hiện nay. Các dòng chip X này hỗ trợ tích hợp generative AI.
👉 Ưu điểm của Cortex Mx và Vi điều khiển STM32
Trước khi học về một Vi điều khiển, chúng ta nên tìm hiểu về ưu điểm của nó so với những dòng vi điều khiển khác.
1. Tính Phổ biến
Ưu điểm dễ nhìn thấy nhất của STM32 mà chúng ta chưa cần tìm hiểu sâu, đó là nó phổ biến, giá thành rẻ, nhiều tài liệu hướng dẫn.
➤ Một số ứng dụng sử dụng STM32- Các thiết bị chạy bằng pin như ứng dụng giám sát sức khỏe, theo dõi thể chất, máy đo y tế, …
- Ứng dụng ô tô, Internet of Things, điện thoại và ứng dụng trong nhà, Nhà thông minh, Đồ chơi và sản phẩm khách hàng.
- Phụ kiện máy tính, điện thoại, thiết bị kiểm tra và đo lường.
2. Tối ưu chi phí/năng lượng
3. Hiệu suất/tốc độ/Tính bảo mật
Bộ xử lý Cortex Mx là bộ xử lý 32 - bits, tăng tốc độ và hiệu suất tính toán so với các dòng 8/16 bits truyền thống.👉 Một số đơn vị sản xuất Vi điều khiển
Có nhiều nhà sản xuất Vi điều khiển nổi tiếng mà vi điều khiển dựa trên bộ xử lý ARM Cortex-M:- TI (Ứng dụng dựa trên pin năng lượng thấp)
- STMicro (MCU hiệu suất cao/trung bình/thấp)
- Toshiba (Thiết bị đo lường, điều khiển động cơ)
- Broadcom (Kết nốt wifi, Internet of Things)
- NXP, Microchip, ST, …
Ra tiếp đi anh ơi :3
Trả lờiXóaMỗi ngày anh sẽ ra từ 1 đến 2 bài nhé :D
XóaCó bài mới rồi nha bạn :D
Xóa