Đề thi trắc nghiệm

Quiz Review - Tuần 10 - MIP201

96Câu hỏi
Microcontroller Programming - MIP201Môn học
Bộ đề trắc nghiệm REVIEW - MIP201Chủ đề

Phiên có lưu tiến độ dùng toàn bộ 96 câu của bộ đề để tiến độ khớp với máy chủ.

Phiên sắp tạo
96 câu Chế độ học Không giới hạn

Bạn cần đăng nhập để bắt đầu làm bài và lưu tiến độ.

Tổng câu hỏi

96

Thời gian làm bài

Không giới hạn

Lượt xem

22

Câu có lời giải

96

Câu có link chi tiết

96

Xem trước câu hỏi

Bấm vào từng câu để xem đáp án
#001
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
A4-bit
B6-bit
7-bitĐÚNG
D8-bit
E5-bit
Giải thích

Để trả lời câu hỏi này, chúng ta cần hiểu về cách hoạt động của màn hình hiển thị 7-segment. Màn hình này sử dụng các đoạn (segment) để tạo ra các số và ký tự khác nhau. Mỗi đoạn có thể được bật hoặc tắt để tạo ra các giá trị khác nhau. Để xác định số bit cần thiết để đại diện cho các giá trị khác nhau trên màn hình 7-segment, chúng ta cần xem xét số lượng đoạn và các giá trị có thể được tạo ra. Màn hình 7-segment sử dụng 7 đoạn để tạo ra các số và ký tự. Tuy nhiên, không phải tất cả các đoạn đều cần thiết để tạo ra tất cả các giá trị. Ví dụ, để tạo ra số 0, chúng ta cần bật tất cả các đoạn. Để tạo ra số 1, chúng ta cần bật đoạn trên cùng. Để tạo ra số 2, chúng ta cần bật đoạn trên cùng và đoạn dưới cùng bên trái. Và vân vân. Từ đó, chúng ta có thể thấy rằng để tạo ra tất cả các giá trị khác nhau trên màn hình 7-segment, chúng ta cần ít nhất 7 bit để đại diện cho các đoạn. Tuy nhiên, chúng ta cần xem xét thêm một số trường hợp đặc biệt. Ví dụ, số 0 và số 8 có thể được tạo ra bằng cách bật tất cả các đoạn, nhưng chúng ta cần ít nhất 7 bit để đại diện cho các đoạn. Do đó, số bit cần thiết để đại diện cho các giá trị khác nhau trên màn hình 7-segment là 7 bit.

#002
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
Aattach()
Bperiod()
read()ĐÚNG
Dwrite()
EISR()
Giải thích

Trong vòng lặp trắng của hàm chính, hàm AnalogIn nào được sử dụng để đọc giá trị của potentiometer?

#003
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ARunning application code on the microcontroller
Providing debugging and programming interface via USBĐÚNG
CEncrypting program memory
DManaging network connections
Giải thích

DAPLink là một phần quan trọng trong hệ sinh thái Mbed, giúp cung cấp giao diện debug và lập trình qua cổng USB. Nó cho phép người dùng kết nối với bộ điều khiển vi điều khiển thông qua cổng USB, từ đó có thể tải lên và chạy mã ứng dụng, cũng như thực hiện các tác vụ debug và lập trình khác. DAPLink cung cấp một giao diện đơn giản và dễ sử dụng, giúp người dùng có thể dễ dàng tương tác với bộ điều khiển vi điều khiển và thực hiện các tác vụ lập trình và debug một cách hiệu quả. Nó là một công cụ quan trọng trong việc phát triển và thử nghiệm các ứng dụng trên các bộ điều khiển vi điều khiển.

#004
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
AA timer event
An infinite loopĐÚNG
CA function call
DA prototype declaration
EA conditional statement
Giải thích

Câu lệnh while(1) trong chương trình C được sử dụng để tạo ra một vòng lặp vô hạn. Vòng lặp vô hạn là một loại vòng lặp mà nó sẽ tiếp tục chạy mãi cho đến khi chương trình bị dừng lại. Điều này có nghĩa là trong khi vòng lặp đang chạy, nó sẽ không bao giờ kết thúc và sẽ tiếp tục thực hiện các hành động được chỉ định trong nó. Điều này có thể hữu ích trong một số tình huống, chẳng hạn như tạo ra một chương trình giám sát hoặc một chương trình chạy nền. Tuy nhiên, cần lưu ý rằng vòng lặp vô hạn có thể gây ra vấn đề nếu không được sử dụng đúng cách, vì nó có thể khiến chương trình bị treo hoặc không thể dừng lại.

#005
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AComputer Microcontroller Software Implementation System
Cortex Microcontroller Software Interface StandardĐÚNG
CCentral Memory System Interface Structure
DCore Management System Integration Service
Giải thích

CMSIS là viết tắt của Cortex Microcontroller Software Interface Standard. Đây là một tiêu chuẩn mở được phát triển bởi ARM để hỗ trợ việc lập trình và phát triển các hệ thống dựa trên vi điều khiển. Tiêu chuẩn này cung cấp một bộ công cụ và giao diện thống nhất để truy cập các tính năng của vi điều khiển, giúp giảm thiểu thời gian và công sức trong quá trình phát triển. CMSIS bao gồm các thành phần như giao diện API, thư viện và công cụ để hỗ trợ việc lập trình và thử nghiệm. Nó cũng cung cấp một cách thống nhất để truy cập các tính năng của vi điều khiển, giúp dễ dàng tích hợp và sử dụng các thành phần khác nhau trong hệ thống.

#006
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
APortIn
BusInĐÚNG
CDigitalInOut
DBusOut
EDigitalOut
Giải thích

Để kết hợp một số chân DigitalIn để đọc chúng cùng một lúc, bạn cần sử dụng API nào?

#007
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
Twice the highest frequency of the input signalĐÚNG
BHalf of the signal frequency
CEqual to the signal frequency
DTen times the signal amplitude
Giải thích

Theo lý thuyết lấy mẫu Shannon-Nyquist, tần số lấy mẫu phải ít nhất bằng hai lần tần số cao nhất của tín hiệu đầu vào. Điều này có nghĩa là nếu tín hiệu đầu vào có tần số cao nhất là f, thì tần số lấy mẫu phải ít nhất là 2f. Điều này đảm bảo rằng tín hiệu có thể được tái tạo chính xác từ các mẫu lấy được. Nếu tần số lấy mẫu thấp hơn hai lần tần số cao nhất của tín hiệu, thì tín hiệu có thể bị nhiễu loạn hoặc bị mất thông tin. Vì vậy, việc chọn tần số lấy mẫu phù hợp là rất quan trọng trong các ứng dụng lấy mẫu tín hiệu.

#008
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
APulse Wave Modulator
BPower Wave Modulation
Pulse Width ModulationĐÚNG
DPeriod Width Measurement
Giải thích

PWM là viết tắt của Pulse Width Modulation, một kỹ thuật sử dụng tín hiệu điện để điều khiển cường độ của một tín hiệu đầu ra. Trong PWM, tín hiệu đầu ra được tạo ra bằng cách thay đổi độ rộng của các xung điện, thay vì thay đổi biên độ của chúng. Điều này cho phép tạo ra các tín hiệu đầu ra có cường độ thay đổi liên tục, mà không cần phải thay đổi biên độ của tín hiệu đầu vào. PWM được sử dụng rộng rãi trong nhiều ứng dụng, bao gồm điều khiển động cơ, điều khiển nhiệt độ, và điều khiển ánh sáng.

#009
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
AArm Cortex-A
BRISC-V
CArm Cortex-R
Arm Cortex-MĐÚNG
EIntel Xeon
Giải thích

Mô hình cơ bản của các vi điều khiển được hỗ trợ bởi nền tảng Mbed dựa trên kiến trúc nào? Kiến trúc Arm Cortex-M là một loại kiến trúc vi xử lý được sử dụng trong các vi điều khiển. Nó được thiết kế để có hiệu suất thấp, tiêu thụ điện năng thấp và có thể được sử dụng trong các ứng dụng có yêu cầu thấp về hiệu suất. Kiến trúc này phù hợp cho các ứng dụng như cảm biến, điều khiển và giao tiếp. Mbed hỗ trợ các vi điều khiển dựa trên kiến trúc Arm Cortex-M, bao gồm các mẫu như Arm Cortex-M0, Arm Cortex-M3 và Arm Cortex-M4. Những kiến trúc này cung cấp các tính năng như bộ nhớ chương trình và dữ liệu, các đơn vị tính toán và các giao tiếp ngoại vi.

#010
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
Non-volatile memories (e.g., FLASH)ĐÚNG
BHeap data section
CVolatile memories (e.g., SRAM)
DDynamic RAM (DRAM)
EStack data section
Giải thích

Bộ nhớ không lưu trữ tạm thời (non-volatile memory) là nơi lưu trữ mã chương trình và dữ liệu hằng số. Các ví dụ về bộ nhớ không lưu trữ tạm thời bao gồm FLASH. Đây là loại bộ nhớ được sử dụng để lưu trữ dữ liệu và chương trình một cách lâu dài, ngay cả khi nguồn điện bị cắt bỏ. Bộ nhớ này thường được sử dụng trong các thiết bị điện tử như máy tính, điện thoại di động và các thiết bị khác.

#011
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
AOne
BFive
CThree
TwoĐÚNG
EFour
Giải thích

I2C bus sử dụng 2 đường tín hiệu. Đường tín hiệu này được gọi là SCL (Clock) và SDA (Data). Đường SCL được sử dụng để truyền tín hiệu đồng hồ, giúp đồng bộ hóa dữ liệu trên đường SDA. Đường SDA được sử dụng để truyền dữ liệu giữa các thiết bị. Mỗi thiết bị trên bus I2C sẽ có một địa chỉ riêng, giúp xác định thiết bị nào đang truyền dữ liệu. Điều này cho phép nhiều thiết bị được kết nối với nhau trên cùng một bus I2C mà không xảy ra xung đột dữ liệu.

#012
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AStop bit
BData bit
CParity bit
Start bitĐÚNG
Giải thích

Trong giao thức truyền thông UART, một khung dữ liệu được cấu tạo bởi các phần khác nhau. Để xác định bắt đầu của một khung dữ liệu UART, chúng ta cần tìm hiểu về các phần cấu thành của nó. Start bit là phần đầu tiên của một khung dữ liệu UART, nó được sử dụng để chỉ định bắt đầu của một khung dữ liệu. Start bit thường có giá trị logic 0. Sau khi nhận được start bit, máy nhận sẽ biết rằng một khung dữ liệu mới đang đến và bắt đầu quá trình giải mã. Data bit, parity bit và stop bit là các phần khác của khung dữ liệu UART, nhưng chúng không phải là phần bắt đầu của một khung dữ liệu. Vì vậy, trong các lựa chọn trên, Start bit là phần đúng đắn nhất để đánh dấu bắt đầu của một khung dữ liệu UART.

#013
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
A3.3
1ĐÚNG
C2
D3
E0
Giải thích

Khi sử dụng DigitalIn Interface để đọc giá trị điện áp trên một chân vào, nó sẽ trả về một giá trị integer đại diện cho điện áp đó. Trong trường hợp điện áp trên chân vào là 3.3V, DigitalIn Interface sẽ trả về giá trị 1. Điều này là vì DigitalIn Interface thường sử dụng mức điện áp logic 5V hoặc 3.3V, và giá trị 1 thường đại diện cho mức điện áp cao (VCC) trong khi giá trị 0 đại diện cho mức điện áp thấp (GND). Vì vậy, khi điện áp trên chân vào là 3.3V, DigitalIn Interface sẽ trả về giá trị 1 để chỉ định rằng điện áp trên chân vào đang ở mức cao.

#014
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AIncreasing processor frequency
BReplacing hardware peripherals
CEliminating the need for compilers
Standardizing software interfaces across Cortex-M processorsĐÚNG
Giải thích

CMSIS (Cortex Microcontroller Software Interface Standard) là một công cụ quan trọng trong phát triển phần mềm cho các vi điều khiển. Nó cung cấp một bộ giao diện tiêu chuẩn để truy cập các tính năng của vi điều khiển Cortex-M. Ưu điểm chính của CMSIS là giúp thống nhất các giao diện phần mềm trên các vi điều khiển Cortex-M khác nhau. Điều này cho phép các nhà phát triển dễ dàng chuyển đổi giữa các vi điều khiển khác nhau mà không cần phải viết lại toàn bộ phần mềm. Ngoài ra, CMSIS cũng cung cấp các thư viện và công cụ để giúp giảm thiểu thời gian phát triển và tăng hiệu suất phần mềm. Nhờ đó, CMSIS đã trở thành một phần không thể thiếu trong công cụ phát triển phần mềm cho các vi điều khiển.

#015
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AIt does not support multitasking
BIt always executes programs faster
It guarantees predictable response times to eventsĐÚNG
DIt only supports single-task execution
Giải thích

Một hệ điều hành thời gian thực (RTOS) khác với hệ điều hành đa mục đích thông thường ở điểm gì? Hệ điều hành thời gian thực được thiết kế để đáp ứng các yêu cầu đặc biệt về thời gian phản hồi và độ tin cậy. Nó đảm bảo thời gian phản hồi dự đoán được đối với các sự kiện, điều này rất quan trọng trong các ứng dụng đòi hỏi thời gian phản hồi nhanh chóng và ổn định, chẳng hạn như hệ thống điều khiển tự động, thiết bị y tế và các hệ thống thời gian thực khác. Điều này cho phép các ứng dụng thời gian thực hoạt động một cách đáng tin cậy và hiệu quả, ngay cả trong các tình huống phức tạp và không thể đoán trước.

#016
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
NUCLEO-F411REĐÚNG
BESP32
CArduino Uno
DRaspberry Pi Pico
EAdafruit Feather
Giải thích

Trong phòng thí nghiệm, chúng ta thường sử dụng bảng phát triển (development board) để học hỏi và thực hành các kỹ thuật lập trình. Một trong những bảng phát triển được sử dụng phổ biến và giải thích chi tiết về bố cục chân cắm (pin layout) là NUCLEO-F411RE. Bảng phát triển này được thiết kế bởi STMicroelectronics và hỗ trợ cho các chương trình học về lập trình microcontroller. Nó cung cấp một cấu trúc đơn giản và dễ sử dụng, giúp sinh viên và người mới bắt đầu có thể dễ dàng học hỏi và thực hành các kỹ thuật lập trình.

#017
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
ABlocked
BRunning
CWaiting
DReady
InactiveĐÚNG
Giải thích

Trong API Mbed, nếu một luồng (thread) đã bị hủy (terminated) hoặc chưa được tạo (chưa được tạo) thì trạng thái của nó là gì? Trạng thái này được gọi là "Inactive". Điều này có nghĩa là luồng đó không còn hoạt động và không thể thực hiện bất kỳ hành động nào. Khi một luồng bị hủy, nó sẽ không còn được thực hiện và sẽ không thể tiếp tục thực hiện các nhiệm vụ của mình. Nếu một luồng chưa được tạo, thì nó cũng sẽ không thể thực hiện bất kỳ hành động nào. Trong cả hai trường hợp, trạng thái của luồng đó sẽ là "Inactive".

#018
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
To maintain a desired system set pointĐÚNG
BTo increase memory capacity
CTo disable the controller
DTo store environmental data permanently
Giải thích

Trong hệ thống điều khiển vòng kín, mục đích chính của việc điều chỉnh đầu ra dựa trên dữ liệu cảm biến là duy trì điểm tham chiếu mong muốn của hệ thống. Điều này có nghĩa là hệ thống sẽ liên tục đo lường và so sánh giá trị thực tế với giá trị mong muốn, sau đó điều chỉnh đầu ra để đạt được sự cân bằng. Điều này giúp hệ thống duy trì ổn định và hiệu suất cao. Ví dụ, trong một hệ thống điều khiển nhiệt độ, cảm biến nhiệt đo lường nhiệt độ hiện tại và gửi tín hiệu đến bộ điều khiển, bộ điều khiển sau đó điều chỉnh hệ thống để đạt được nhiệt độ mong muốn.

#019
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
AA system exclusively implemented using Microprocessors (CPUs) without integrated memory
BA computing unit specialized for cloud computing and big data processing
CA large mechanical or electrical system used in industrial settings
DA general-purpose computing device supporting instruction fetching, decoding, and executing.
An application-specific computer system interacting with its environmentĐÚNG
Giải thích

Một hệ thống được tích hợp vào một thiết bị hoặc hệ thống khác, thường được sử dụng để thực hiện một chức năng cụ thể. Theo các nguồn, định nghĩa thông thường của một hệ thống tích hợp (embedded system) là một hệ thống máy tính được thiết kế để tương tác với môi trường xung quanh của nó. Điều này có nghĩa là hệ thống này được tối ưu hóa để thực hiện một nhiệm vụ cụ thể, thường không có giao diện người dùng và không cần phải được sử dụng độc lập. Ví dụ, một hệ thống điều khiển tự động, một hệ thống giám sát an ninh hoặc một hệ thống điều khiển nhiệt độ đều là các ví dụ về hệ thống tích hợp.

#020
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AThe voltage level of the signal
The ratio of ON time to total cycle timeĐÚNG
CThe frequency of the signal
DThe number of pulses per second
Giải thích

Duty cycle trong PWM (Pulse Width Modulation) là đại diện cho tỷ lệ thời gian bật (ON time) so với tổng thời gian chu kỳ (total cycle time). Điều này có nghĩa là nó thể hiện tỷ lệ thời gian mà tín hiệu PWM ở mức cao (bật) trong một chu kỳ. Duty cycle thường được biểu diễn dưới dạng tỷ lệ phần trăm và có giá trị từ 0% đến 100%. Khi duty cycle là 0%, tín hiệu PWM luôn ở mức thấp (tắt). Khi duty cycle là 100%, tín hiệu PWM luôn ở mức cao (bật). Duty cycle có thể được điều chỉnh để thay đổi cường độ của tín hiệu PWM, từ đó điều khiển các thiết bị điện tử như động cơ, đèn LED, v.v. Điều này cho phép chúng ta điều khiển cường độ của tín hiệu PWM một cách chính xác và linh hoạt.

#021
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ANetwork simulation models
BSoftware libraries only
Hardware design resources such as schematics and board filesĐÚNG
DOperating system kernels
Giải thích

Mbed Hardware Development Kit (HDK) là một bộ công cụ phát triển phần cứng của Mbed. Nó cung cấp các tài nguyên thiết kế phần cứng như bản vẽ và tệp bảng mạch. Điều này cho phép người dùng thiết kế và phát triển các thiết bị phần cứng dựa trên các mô hình và nguyên tắc được xác định trước. Bộ công cụ này bao gồm các tài nguyên như bản vẽ điện tử, tệp bảng mạch, và các tài liệu hướng dẫn khác. Nó giúp người dùng tạo ra các thiết bị phần cứng có thể tương tác với các thiết bị khác và các hệ thống phần mềm. Mbed HDK cung cấp một môi trường phát triển toàn diện cho các nhà phát triển phần cứng và phần mềm.

#022
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
Universal Asynchronous Receiver/Transmitter (UART)ĐÚNG
BInter-integrated Circuit (I2C)
CAll three protocols are synchronous.
DSerial Peripheral Interface (SPI)
EBoth SPI and I2C
Giải thích

Serial communication là một phương thức truyền dữ liệu qua một đường dây duy nhất. Trong đó, UART (Universal Asynchronous Receiver/Transmitter) là một giao thức truyền dữ liệu không đồng bộ, nghĩa là nó không cần một dây đồng hồ riêng biệt. Điều này cho phép UART hoạt động độc lập mà không cần đồng bộ hóa với thiết bị nhận. I2C (Inter-integrated Circuit) và SPI (Serial Peripheral Interface) là các giao thức truyền dữ liệu đồng bộ, nghĩa là chúng cần một dây đồng hồ để đồng bộ hóa dữ liệu. Vì vậy, UART là giao thức truyền dữ liệu không đồng bộ.

#023
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
AStack memory
BHeap memory
CPeripheral registers
Program memory (normally on-chip flash memory)ĐÚNG
EExternal RAM (SRAM)
Giải thích

Trong lập trình máy tính, chương trình được lưu trữ ở đâu đó trong bộ nhớ máy tính. Tuy nhiên, chương trình thực thi được lưu trữ ở đâu là một câu hỏi khác. Chương trình thực thi được lưu trữ ở chương trình nhớ (program memory), thường là bộ nhớ flash tích hợp trên chip. Chương trình nhớ là một phần của bộ nhớ máy tính được sử dụng để lưu trữ chương trình máy tính. Nó thường được sử dụng để lưu trữ chương trình máy tính khi máy tính được bật lên. Chương trình nhớ thường được sử dụng để lưu trữ chương trình máy tính vì nó cho phép chương trình được lưu trữ một cách lâu dài và có thể được thực thi nhanh chóng khi máy tính được bật lên. Ngoài ra, chương trình nhớ cũng cho phép chương trình được bảo vệ khỏi bị xóa hoặc bị thay đổi bởi các chương trình khác.

#024
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AThread Mode
BDebug Mode
CUser Mode
Handler ModeĐÚNG
Giải thích

Khi xử lý một sự kiện ngắt, máy tính sẽ chuyển sang một chế độ xử lý đặc biệt gọi là chế độ xử lý ngắt. Chế độ này cho phép máy tính ưu tiên xử lý sự kiện ngắt và đảm bảo rằng hệ thống vẫn hoạt động ổn định. Trong chế độ này, máy tính sẽ tạm thời chuyển sang một môi trường đặc biệt để xử lý sự kiện ngắt, sau đó sẽ quay trở lại chế độ ban đầu. Chế độ này được gọi là chế độ xử lý ngắt, hay còn được gọi là chế độ Handler Mode.

#025
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AStore peripheral data
BStore stack memory values
CStore program variables
Store interrupt handler addressesĐÚNG
Giải thích

Trong các bộ xử lý Cortex-M, bảng vectơ (vector table) đóng vai trò quan trọng trong việc quản lý các địa chỉ nhảy (interrupt handler) của các ngoại vi (peripheral). Bảng vectơ là một vùng nhớ đặc biệt trong bộ nhớ RAM, nơi lưu trữ các địa chỉ nhảy của các ngoại vi. Khi một ngoại vi xảy ra, CPU sẽ tự động nhảy đến địa chỉ lưu trữ trong bảng vectơ tương ứng với ngoại vi đó. Điều này cho phép hệ thống phản ứng nhanh chóng và hiệu quả với các sự kiện ngoại vi. Bảng vectơ cũng giúp hệ thống quản lý các ngoại vi một cách hiệu quả, giảm thiểu thời gian phản ứng và tăng cường độ tin cậy của hệ thống.

#026
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ATimer
BTicker
PwmOutĐÚNG
DDigitalOut
Giải thích

Để tạo ra các tín hiệu PWM (Pulse Width Modulation), bạn cần sử dụng lớp Mbed PwmOut. Lớp PwmOut cho phép bạn tạo ra các tín hiệu PWM có thể điều khiển được độ rộng của xung. Điều này rất hữu ích trong các ứng dụng như điều khiển tốc độ động cơ, điều khiển độ sáng của đèn LED, v.v. Bạn có thể tạo ra các đối tượng PwmOut bằng cách sử dụng hàm PwmOut() và chỉ định chân GPIO mà bạn muốn sử dụng. Sau đó, bạn có thể sử dụng các phương thức như write_duty() hoặc write() để điều khiển độ rộng của xung PWM.

#027
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
AToggle Output Register
Direction RegisterĐÚNG
CSet Output Register
DInput Register
EData Output Register
Giải thích

Để kiểm soát hướng của đầu vào/đầu ra cho một controller GPIO, bạn cần biết về các loại đăng ký khác nhau. Trong đó, đăng ký nào có thể điều khiển hướng của đầu vào/đầu ra? Câu trả lời chính xác là "Direction Register". Đây là loại đăng ký có chức năng xác định hướng của các chân GPIO, giúp bạn biết được các chân nào được sử dụng để đọc dữ liệu (đầu vào) và các chân nào được sử dụng để viết dữ liệu (đầu ra). Việc sử dụng đúng đăng ký sẽ giúp bạn tránh được các lỗi và đảm bảo rằng hệ thống của bạn hoạt động một cách chính xác.

#028
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
AAssembly language
C/C++ĐÚNG
CLadder logic
DRust
EPython
Giải thích

Ngôn ngữ lập trình thường được sử dụng để phát triển hệ thống tích hợp (embedded systems) là C/C++. C/C++ là ngôn ngữ lập trình phổ biến và mạnh mẽ, được sử dụng rộng rãi trong việc phát triển phần cứng và phần mềm cho các hệ thống tích hợp. Ngôn ngữ này cung cấp khả năng kiểm soát chi tiết và hiệu suất cao, cho phép các nhà phát triển tạo ra các phần mềm tinh vi và hiệu quả cho các hệ thống tích hợp. Ngoài ra, C/C++ cũng được sử dụng rộng rãi trong việc phát triển các phần mềm hệ thống, bao gồm cả phần mềm hệ thống thời gian thực và phần mềm hệ thống an toàn.

#029
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
ALegacy DOS systems
BSystems without resource constraints
CGeneral Windows PCs
DHigh-throughput servers
Mbed-enabled devicesĐÚNG
Giải thích

Mbed RTOS API cung cấp một bộ API dễ sử dụng cho việc lập trình các loại thiết bị nào? Mbed RTOS API là một phần của hệ điều hành Mbed, được thiết kế để hỗ trợ lập trình các thiết bị có khả năng nguồn lực hạn chế. Các thiết bị này thường được sử dụng trong các ứng dụng IoT (Internet of Things) và cần có khả năng quản lý nguồn lực một cách hiệu quả. Mbed RTOS API cung cấp các tính năng như quản lý nguồn lực, giao tiếp mạng và các tính năng khác để hỗ trợ lập trình các thiết bị này một cách dễ dàng. Vì vậy, câu trả lời đúng cho câu hỏi này là Mbed-enabled devices.

#030
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
AUnsigned short in the range [0x0, 0xFFFF]
BBoolean (0 or 1)
Float in the range [0.0, 1.0]ĐÚNG
DInteger in the range
EFloat representing the reference voltage
Giải thích

Hàm read() trong Mbed được sử dụng để đọc giá trị từ đầu vào analog. Giá trị trả về của hàm này được biểu diễn dưới dạng số thực trong khoảng từ 0.0 đến 1.0. Điều này có nghĩa là giá trị đọc được từ đầu vào analog sẽ được chuyển đổi thành một giá trị số thực trong khoảng này, cho phép bạn dễ dàng sử dụng và xử lý trong chương trình của mình. Ví dụ, nếu đầu vào analog được kết nối với một cảm biến ánh sáng, giá trị đọc được từ cảm biến sẽ được chuyển đổi thành một giá trị số thực trong khoảng từ 0.0 đến 1.0, cho phép bạn dễ dàng đo lường và xử lý cường độ ánh sáng.

#031
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AData is transmitted using multiple buses
Data is transmitted one bit at a time sequentiallyĐÚNG
CData is transmitted without timing control
DMultiple bits are transmitted simultaneously
Giải thích

Tính chất chính của giao tiếp tuần tự (Serial communication) là dữ liệu được truyền một bit một lần theo thứ tự tuần tự. Điều này có nghĩa là dữ liệu được truyền theo một dòng duy nhất, một bit một lần, và mỗi bit được truyền trước khi chuyển sang bit tiếp theo. Điều này giúp giảm thiểu sự phức tạp của hệ thống giao tiếp và giảm thiểu khả năng xảy ra lỗi. Giao tiếp tuần tự thường được sử dụng trong các ứng dụng yêu cầu tốc độ truyền dữ liệu thấp đến trung bình, chẳng hạn như giao tiếp giữa máy tính và thiết bị ngoại vi như bàn phím, chuột, v.v. Tuy nhiên, giao tiếp tuần tự cũng có thể bị giới hạn bởi tốc độ truyền dữ liệu và độ tin cậy của hệ thống.

#032
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ABecause high-level languages are not supported by microcontrollers
Because low-level programming allows better control and efficiencyĐÚNG
CBecause assembly language is easier to learn
DBecause embedded systems always run full operating systems
Giải thích

Embedded system programs thường được phát triển ở mức thấp vì các ngôn ngữ lập trình cao cấp không được hỗ trợ bởi các microcontrollers. Tuy nhiên, lý do chính yếu là do lập trình ở mức thấp cho phép có khả năng kiểm soát và hiệu suất tốt hơn. Điều này là do các hệ thống embedded thường yêu cầu hiệu suất cao và thời gian phản hồi nhanh, và lập trình ở mức thấp cho phép các lập trình viên có thể tối ưu hóa mã của mình để đạt được hiệu suất tối đa. Ngoài ra, lập trình ở mức thấp cũng cho phép các lập trình viên có thể kiểm soát trực tiếp các thiết bị ngoại vi và các tài nguyên hệ thống, điều này là rất quan trọng trong các hệ thống embedded.

#033
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
Aread_s()
Bread_us()
read_ms()ĐÚNG
Dread()
Ereset()
Giải thích

Để trả lời câu hỏi này, chúng ta cần hiểu về các hàm timer trong Mbed. Mbed Timer cung cấp các hàm để đọc thời gian đã trôi qua trong các đơn vị thời gian khác nhau. Trong trường hợp này, chúng ta cần tìm hàm trả về thời gian đã trôi qua trong mili giây (mili giây).

#034
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
A128
B1024
256ĐÚNG
D8
E512
Giải thích

Để trả lời câu hỏi này, chúng ta cần hiểu về cách hoạt động của một bộ chuyển đổi số (ADC). ADC có nhiệm vụ chuyển đổi tín hiệu analog thành tín hiệu số. Trong trường hợp này, chúng ta có một bộ ADC 8-bit, có nghĩa là nó có thể tạo ra 2^8 = 256 giá trị số khác nhau. Mỗi giá trị số này đại diện cho một mức độ cao của tín hiệu analog. Tín hiệu analog có phạm vi từ 0 đến 5 V, vì vậy mỗi giá trị số tương ứng với một mức độ cao cụ thể của tín hiệu analog. Ví dụ, giá trị số 0 có thể đại diện cho tín hiệu analog 0 V, giá trị số 255 có thể đại diện cho tín hiệu analog 5 V, và các giá trị số khác nhau có thể đại diện cho các mức độ cao khác nhau của tín hiệu analog. Do đó, có 256 giá trị số khác nhau có thể được tạo ra bởi bộ ADC 8-bit.

#035
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ACOTI and CITO only
BSCL and SDA
CMOSI and MISO
TX and RXĐÚNG
Giải thích

Trong giao tiếp UART, các dây thường được sử dụng để truyền và nhận dữ liệu là TX và RX. Dây TX (Transmit) được sử dụng để gửi dữ liệu từ thiết bị truyền đến thiết bị nhận, trong khi dây RX (Receive) được sử dụng để nhận dữ liệu từ thiết bị truyền. Các dây TX và RX thường được kết nối với nhau để tạo thành một đường truyền dữ liệu một chiều. Điều này cho phép thiết bị truyền gửi dữ liệu đến thiết bị nhận mà không cần thiết bị nhận phải gửi dữ liệu trở lại. Trong giao tiếp UART, tốc độ truyền dữ liệu thường được xác định bởi tốc độ bít (baud rate) và được sử dụng để truyền các tín hiệu số từ thiết bị truyền đến thiết bị nhận.

#036
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AThe number of analog channels available
The number of discrete values the ADC can produceĐÚNG
CThe maximum voltage of the input signal
DThe speed of signal conversion
Giải thích

Độ phân giải của một ADC (ADC) là số lượng giá trị rời rạc mà nó có thể tạo ra. Nó đại diện cho số lượng mức độ khác nhau mà tín hiệu analog có thể được chuyển đổi thành tín hiệu số. Độ phân giải cao hơn cho phép ADC tạo ra nhiều giá trị hơn, dẫn đến độ chính xác cao hơn trong việc đo lường tín hiệu analog. Ví dụ, một ADC có độ phân giải 8 bit có thể tạo ra 2^8 = 256 giá trị rời rạc khác nhau, trong khi một ADC có độ phân giải 12 bit có thể tạo ra 2^12 = 4096 giá trị rời rạc khác nhau. Độ phân giải cao hơn thường đòi hỏi thời gian chuyển đổi dài hơn và có thể làm tăng chi phí của ADC.

#037
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
Aread()
Bwrite()
Cfrequency()
Dstop()
start()ĐÚNG
Giải thích

Để tạo một điều kiện bắt đầu trên bus I2C, bạn cần sử dụng hàm Mbed API phù hợp. Trong các lựa chọn đã cho, hàm "start()" là lựa chọn đúng. Hàm này được sử dụng để tạo một điều kiện bắt đầu trên bus I2C, cho phép thiết bị đọc hoặc ghi dữ liệu trên bus. Điều này rất quan trọng khi thiết kế và phát triển các hệ thống giao tiếp I2C. Ngoài ra, bạn cũng cần lưu ý đến các hàm khác như "read()", "write()", "frequency()" và "stop()" để hiểu rõ hơn về cách sử dụng bus I2C.

#038
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ATo reduce program size
BTo reduce clock frequency
To match register sizes and simplify managementĐÚNG
DTo increase analog accuracy
Giải thích

GPIO (Giắc vào/ra) trong vi điều khiển được nhóm thành các cổng để dễ dàng quản lý và tối ưu hóa hiệu suất. Việc nhóm GPIO thành các cổng cho phép các nhà thiết kế vi điều khiển tối ưu hóa kích thước và cấu trúc của các bộ phận quản lý GPIO. Điều này giúp giảm thiểu thời gian và chi phí sản xuất. Ngoài ra, việc nhóm GPIO cũng giúp đơn giản hóa việc quản lý và truy cập các GPIO, giảm thiểu khả năng xảy ra lỗi và tăng cường độ tin cậy của hệ thống. Vì vậy, việc nhóm GPIO thành các cổng là một chiến lược thiết kế hiệu quả giúp tối ưu hóa hiệu suất và độ tin cậy của vi điều khiển.

#039
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
Sets the analog output voltage as a percentage of the maximum valueĐÚNG
BSets the sampling frequency
CReads the analog voltage
DConverts analog signals into binary
Giải thích

Hàm write(float value) trong AnalogOut được sử dụng để đặt mức điện áp đầu ra analog. Giá trị float được nhập vào sẽ được sử dụng để tính toán mức điện áp tương ứng, dựa trên giá trị tối đa của AnalogOut. Điều này cho phép người dùng có thể kiểm soát mức điện áp đầu ra một cách chính xác, từ đó thực hiện các ứng dụng khác nhau như điều khiển nhiệt độ, độ ẩm, v.v. Việc sử dụng hàm này đòi hỏi phải hiểu rõ về tính chất của AnalogOut và cách thức hoạt động của nó.

#040
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
AProtected Mode
BProcess Mode
CThread Mode
DUser Mode
Handler ModeĐÚNG
Giải thích

Tóm lại, khi bộ xử lý chạy mã lệnh trong phản ứng với ngoại lệ, nó sẽ chuyển sang chế độ xử lý ngoại lệ, cũng được gọi là chế độ Handler Mode.

#041
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
ASPI
UARTĐÚNG
CPCI Express
DEthernet
EI2C
Giải thích

Tìm hiểu về các giao thức truyền thông. Giao thức nào sử dụng các bit bắt đầu và dừng để 'lập khung' dữ liệu và đồng bộ truyền tải mà không cần tín hiệu đồng hồ liên tục?

#042
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
Software timers are implemented in software and usually have lower precisionĐÚNG
BHardware timers are implemented using external circuits only
CSoftware timers have higher precision
DHardware timers cannot generate interrupts
Giải thích

Thời gian phần cứng và phần mềm là hai khái niệm cơ bản trong lập trình. Thời gian phần cứng được thực hiện bằng cách sử dụng các mạch điện ngoài và thường có độ chính xác cao hơn. Ngược lại, thời gian phần mềm được thực hiện trong phần mềm và thường có độ chính xác thấp hơn. Điều này là vì phần mềm có thể bị ảnh hưởng bởi các yếu tố như tải hệ thống, hiệu suất CPU và các vấn đề khác. Vì vậy, thời gian phần mềm thường không ổn định và có thể không chính xác. Thời gian phần cứng, mặt khác, được thiết kế để hoạt động độc lập và có thể cung cấp độ chính xác cao hơn. Tuy nhiên, thời gian phần cứng cũng có thể có một số hạn chế, chẳng hạn như chi phí cao và phức tạp trong việc thiết kế và triển khai.

#043
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
AFrequency and period
BStart time and stop time
CDelay time and rise time
On time and off timeĐÚNG
EPulse time and cycle time
Giải thích

PWM (Quét Mạch Đa Pha) được sử dụng để thay đổi tỷ lệ giữa hai khoảng thời gian cụ thể trong một chu kỳ lặp lại. Trong đó, hai khoảng thời gian này chính là thời gian bật (On time) và thời gian tắt (Off time). Thời gian bật là khoảng thời gian mà tín hiệu PWM ở mức cao, trong khi thời gian tắt là khoảng thời gian mà tín hiệu PWM ở mức thấp. Tỷ lệ giữa thời gian bật và thời gian tắt sẽ quyết định mức độ của tín hiệu PWM. Ví dụ, nếu thời gian bật lớn hơn thời gian tắt, tín hiệu PWM sẽ có mức độ cao hơn. Ngược lại, nếu thời gian tắt lớn hơn thời gian bật, tín hiệu PWM sẽ có mức độ thấp hơn. Vì vậy, việc thay đổi tỷ lệ giữa thời gian bật và thời gian tắt là rất quan trọng trong việc điều khiển các thiết bị điện tử bằng PWM.

#044
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
Protecting memory regions and controlling access permissionsĐÚNG
BIncreasing processor clock speed
CManaging peripheral communication
DStoring temporary program variables
Giải thích

Đơn vị Bảo vệ Bộ Nhớ (Memory Protection Unit - MPU) trong Cortex-M4 có chức năng chính là bảo vệ các vùng bộ nhớ và kiểm soát quyền truy cập. Điều này giúp ngăn chặn các chương trình hoặc phần mềm độc hại xâm phạm vào các vùng bộ nhớ nhạy cảm, chẳng hạn như vùng bộ nhớ chứa dữ liệu quan trọng hoặc vùng bộ nhớ dành cho hệ điều hành. Bằng cách kiểm soát quyền truy cập, MPU cũng giúp đảm bảo rằng các chương trình hoặc phần mềm chỉ có thể truy cập vào các vùng bộ nhớ mà chúng được phép. Điều này giúp tăng cường bảo mật và ngăn chặn các cuộc tấn công từ bên ngoài. Ngoài ra, MPU cũng có thể được sử dụng để phân vùng bộ nhớ và quản lý các vùng bộ nhớ khác nhau, giúp tối ưu hóa hiệu suất và giảm thiểu khả năng xảy ra lỗi.

#045
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AMemory controller
BDMA controller
CGPIO controller
NVIC (Nested Vectored Interrupt Controller)ĐÚNG
Giải thích

Trong các lựa chọn, NVIC (Nested Vectored Interrupt Controller) là thành phần chịu trách nhiệm quản lý và ưu tiên các tín hiệu ngắt trong các bộ xử lý Cortex-M. Nó cho phép các tín hiệu ngắt được ưu tiên và xử lý một cách hiệu quả, giúp tăng tốc độ phản ứng của hệ thống. NVIC cũng cung cấp khả năng quản lý các tín hiệu ngắt phức tạp, bao gồm cả việc ưu tiên và phân loại các tín hiệu ngắt khác nhau. Điều này giúp giảm thiểu thời gian phản ứng và tăng cường độ tin cậy của hệ thống.

#046
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
Apulsewidth_ms (int ms)
period_ms (int ms)ĐÚNG
Cperiod_us (int us)
Dwrite (float value)
Eperiod (float seconds)
Giải thích

Hàm nào được sử dụng để đặt chu kỳ PWM được chỉ định bằng mili giây (int)? PWM (Pulse Width Modulation) là một kỹ thuật điều khiển tín hiệu điện áp, thường được sử dụng trong các ứng dụng như điều khiển tốc độ động cơ, điều khiển nhiệt độ, v.v. Trong các hàm được liệt kê, hàm nào có thể được sử dụng để đặt chu kỳ PWM được chỉ định bằng mili giây (int)? Hàm period_ms (int ms) là một hàm được sử dụng để đặt chu kỳ PWM được chỉ định bằng mili giây (int). Hàm này cho phép bạn đặt chu kỳ PWM theo mili giây, giúp bạn có thể điều khiển tín hiệu điện áp một cách chính xác. Ví dụ, nếu bạn muốn đặt chu kỳ PWM là 1000 mili giây, bạn có thể sử dụng hàm period_ms (int ms) như sau: period_ms(1000) Tóm lại, hàm period_ms (int ms) là một hàm được sử dụng để đặt chu kỳ PWM được chỉ định bằng mili giây (int).

#047
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
Fetch, Decode, ExecuteĐÚNG
BLoad, Store, Compute
CWrite-back, Memory, Execution
DAddress, Data Path, Control Logic
EFetch, Speculate, Stall
Giải thích

Cortex-M4 là một loại vi xử lý được sử dụng rộng rãi trong các ứng dụng điện tử. Để hiểu rõ về quá trình hoạt động của nó, chúng ta cần biết về các giai đoạn chính trong pipeline của vi xử lý này. Có năm lựa chọn cho câu hỏi này, nhưng chỉ có một lựa chọn đúng. Lựa chọn đúng là "Fetch, Decode, Execute". Fetch là giai đoạn đọc lệnh từ bộ nhớ, Decode là giai đoạn phân tích lệnh và xác định các bước cần thực hiện, Execute là giai đoạn thực hiện các bước đã được xác định. Đây là ba giai đoạn chính trong pipeline của Cortex-M4.

#048
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
AHigh GPU performance
Energy efficiency and low power consumptionĐÚNG
CWhat is one of the main advantages of the Cortex-M series processors?
DLarge external memory
EBuilt-in operating system
Giải thích

Cortex-M series là một loại bộ xử lý được thiết kế cho các ứng dụng yêu cầu năng lượng thấp và tiết kiệm. Một trong những lợi ích chính của bộ xử lý này là hiệu suất năng lượng thấp và tiêu thụ điện năng thấp. Điều này làm cho nó trở thành lựa chọn lý tưởng cho các thiết bị di động, các thiết bị cảm biến và các ứng dụng IoT khác. Bộ xử lý Cortex-M cung cấp hiệu suất cao và khả năng tiết kiệm năng lượng, đồng thời cũng cung cấp các tính năng bảo mật và độ tin cậy cao. Điều này làm cho nó trở thành một lựa chọn phổ biến trong các ứng dụng yêu cầu năng lượng thấp và hiệu suất cao.

#049
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ASupports unlimited hardware resources
BRuns only on desktop computers
Designed for systems with limited memory and processing powerĐÚNG
DRequires large storage capacity
Giải thích

Một hệ điều hành được tích hợp (embedded operating system) là một hệ điều hành được thiết kế để chạy trên các thiết bị điện tử nhỏ gọn, như máy tính bảng, điện thoại thông minh, máy tính xách tay, máy tính để bàn, và các thiết bị khác. Đặc điểm chính của hệ điều hành được tích hợp là chúng được thiết kế để hoạt động trên các hệ thống có khả năng xử lý và bộ nhớ hạn chế. Điều này có nghĩa là chúng không yêu cầu nhiều tài nguyên hệ thống như các hệ điều hành khác. Hệ điều hành được tích hợp thường được sử dụng trong các ứng dụng đặc biệt, như hệ thống điều khiển tự động, thiết bị y tế, và các thiết bị khác.

#050
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AOne
TwoĐÚNG
CThree
DFour
Giải thích

Mạng I²C là một giao thức truyền thông hai dây được sử dụng rộng rãi trong các ứng dụng điện tử. Để xác định số lượng dây tín hiệu cần thiết cho giao thức I²C, chúng ta cần xem xét cấu trúc cơ bản của giao thức này. Mạng I²C sử dụng hai dây tín hiệu chính là SDA (Dây tín hiệu dữ liệu) và SCL (Dây tín hiệu điều khiển). Dây SDA được sử dụng để truyền dữ liệu giữa các thiết bị, trong khi dây SCL được sử dụng để đồng bộ hóa dữ liệu trên dây SDA. Ngoài ra, giao thức I²C cũng sử dụng một dây nguồn và một dây đất để cung cấp năng lượng và bảo vệ chống sét. Vì vậy, tổng số dây tín hiệu cần thiết cho giao thức I²C là hai dây SDA và SCL.

#051
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
A[-1, 1]
B[0, 255]
[0.0, 1.0]ĐÚNG
D[0, 1023]
Giải thích

Hàm read() của Analogin thường trả về giá trị trong khoảng từ 0,0 đến 1,0. Điều này có nghĩa là giá trị đọc được từ Analogin sẽ được ánh xạ vào khoảng từ 0 đến 1, giúp dễ dàng sử dụng trong các ứng dụng và mô hình hóa.

#052
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
Cortex-AĐÚNG
BCortex-R
CCortex-M
DSecurCore
Giải thích

Bộ xử lý Arm Cortex-A được thiết kế chủ yếu cho các ứng dụng có hiệu suất cao chạy toàn bộ hệ điều hành. Họ cung cấp khả năng xử lý đa luồng và hỗ trợ các tính năng như 64-bit, virtualization và các tính năng bảo mật tiên tiến. Các ứng dụng thường sử dụng các bộ xử lý này bao gồm máy tính bảng, điện thoại thông minh, máy tính xách tay và các thiết bị đám mây. Họ cũng được sử dụng trong các ứng dụng đòi hỏi hiệu suất cao như chơi game, video chỉnh sửa và các ứng dụng chuyên nghiệp khác.

#053
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ABatch OS
Multi-user OSĐÚNG
CEmbedded OS
DSingle-user OS
Giải thích

Hệ điều hành loại nào cho phép nhiều người dùng truy cập hệ thống đồng thời? Hệ điều hành cho phép nhiều người dùng truy cập hệ thống đồng thời được gọi là hệ điều hành đa người dùng (Multi-user OS). Hệ điều hành này cho phép nhiều người dùng có thể truy cập và sử dụng hệ thống cùng một lúc, mỗi người dùng có tài khoản riêng biệt và có thể thực hiện các tác vụ khác nhau trên hệ thống. Ví dụ, một người dùng có thể đang chạy một chương trình, trong khi người dùng khác có thể đang chạy chương trình khác trên cùng một hệ thống. Hệ điều hành đa người dùng thường được sử dụng trong các môi trường mạng, nơi mà nhiều người dùng cần truy cập và sử dụng hệ thống cùng một lúc.

#054
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ABusIn
DigitalOutĐÚNG
CAnalogOut
DDigitalIn
Giải thích

Để kiểm soát một cổng đầu ra số (digital output pin), bạn cần sử dụng lớp Mbed API phù hợp. Trong các lựa chọn đã cho, lớp DigitalOut là lớp được sử dụng để kiểm soát các cổng đầu ra số. Lớp này cho phép bạn thiết lập giá trị logic cao (HIGH) hoặc thấp (LOW) cho các cổng đầu ra số, điều này rất hữu ích trong việc điều khiển các thiết bị điện tử như đèn LED, động cơ, v.v. Ngoài ra, lớp DigitalOut cũng cung cấp các phương thức để đọc và viết giá trị cho các cổng đầu ra số, giúp bạn có thể dễ dàng kiểm soát và điều khiển các thiết bị điện tử.

#055
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ADMA controller
BGPIO controller
NVIC (Nested Vectored Interrupt Controller)ĐÚNG
DCache controller
Giải thích

Trong bộ xử lý Cortex-M4, bộ điều khiển nào quản lý các sự kiện ngắt và ưu tiên của chúng? Bộ điều khiển NVIC (Nested Vectored Interrupt Controller) là một phần quan trọng của bộ xử lý Cortex-M4. Nó chịu trách nhiệm quản lý các sự kiện ngắt và ưu tiên của chúng. Bộ điều khiển NVIC cho phép các sự kiện ngắt được ưu tiên và xử lý theo thứ tự ưu tiên. Điều này giúp đảm bảo rằng các sự kiện ngắt quan trọng được xử lý trước. Ngoài ra, bộ điều khiển NVIC cũng cung cấp khả năng quản lý các sự kiện ngắt từ các nguồn khác nhau, bao gồm cả các thiết bị ngoại vi.

#056
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
Stores the address of the current instructionĐÚNG
BStores stack frame data
CStores interrupt priority levels
DStores temporary arithmetic data
Giải thích

Bộ đếm chương trình (Program Counter, PC) là một trong những bộ đệm quan trọng trong hệ thống máy tính. Nó có chức năng lưu trữ địa chỉ của lệnh hiện tại đang được thực thi. Khi máy tính thực hiện một lệnh, bộ đếm chương trình sẽ tăng lên địa chỉ của lệnh tiếp theo trong bộ nhớ. Điều này cho phép máy tính thực hiện các lệnh theo thứ tự và đảm bảo rằng các lệnh được thực thi một cách chính xác. Bộ đếm chương trình đóng vai trò quan trọng trong việc quản lý luồng thực thi của máy tính và giúp máy tính thực hiện các lệnh một cách hiệu quả.

#057
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
AVS Code
BMbed CLI
CKeil uVision
DEclipse
Mbed StudioĐÚNG
Giải thích

Mbed Studio là một môi trường phát triển tích hợp (IDE) được thiết kế riêng cho ứng dụng Mbed OS 5. Nó có khả năng tự động phát hiện các bảng Mbed được hỗ trợ. Mbed Studio cung cấp một giao diện người dùng thân thiện và dễ sử dụng, giúp các nhà phát triển dễ dàng tạo, chạy và quản lý các ứng dụng Mbed. Ngoài ra, nó cũng hỗ trợ các tính năng như biên dịch, tải lên và chạy ứng dụng trên các bảng Mbed. Mbed Studio là lựa chọn hàng đầu cho các nhà phát triển muốn tạo và chạy các ứng dụng Mbed OS 5 một cách hiệu quả.

#058
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
ATwo-wire
Four-wireĐÚNG
CThree-wire
DFive-wire
EEight-wire
Giải thích

Mạng SPI (Serial Peripheral Interface) là một giao thức truyền thông được sử dụng rộng rãi trong các thiết bị điện tử. Để hiểu câu hỏi này, chúng ta cần biết cấu trúc cơ bản của mạng SPI. Theo tiêu chuẩn SPI, mạng này thường bao gồm bốn dây tín hiệu chính: SCK (đồng hồ), MOSI (đầu ra dữ liệu), MISO (đầu vào dữ liệu) và SS (nạp dữ liệu). Dây SCK được sử dụng để tạo ra tín hiệu đồng hồ, dây MOSI được sử dụng để truyền dữ liệu từ thiết bị chủ sang thiết bị khách, dây MISO được sử dụng để truyền dữ liệu từ thiết bị khách trở về thiết bị chủ và dây SS được sử dụng để điều khiển việc truyền dữ liệu. Vì vậy, câu trả lời đúng cho câu hỏi này là mạng SPI thường bao gồm bốn dây tín hiệu.

#059
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AInstruction Storage Register
Interrupt Service RoutineĐÚNG
CInternal System Register
DIntegrated Software Resource
Giải thích

ISR trong hệ thống tích hợp (embedded systems) là viết tắt của Interrupt Service Routine. Nó là một phần mềm được thực hiện khi hệ thống nhận được một tín hiệu ngắt (interrupt). Mục đích của ISR là xử lý tín hiệu ngắt và khôi phục trạng thái hệ thống trở lại bình thường. ISR thường được sử dụng trong các hệ thống có yêu cầu thời gian thực (real-time systems), nơi mà hệ thống cần xử lý các tín hiệu ngắt một cách nhanh chóng và chính xác. Ví dụ, trong một hệ thống điều khiển tự động, ISR có thể được sử dụng để xử lý tín hiệu từ cảm biến và điều chỉnh hành động của hệ thống.

#060
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
ATX and RX
BSCLK and CS
CCOTI and CITO
DMISO and MOSI
SCL (Serial Clock) and SDA (Serial Data)ĐÚNG
Giải thích

Để thực hiện giao tiếp I2C, cần có hai đường tín hiệu quan trọng. Đường tín hiệu đầu tiên là SCL (Serial Clock), nó đóng vai trò là đồng hồ giao tiếp, điều khiển tốc độ truyền dữ liệu giữa các thiết bị. Đường tín hiệu thứ hai là SDA (Serial Data), nó chịu trách nhiệm truyền dữ liệu giữa các thiết bị. Cả hai đường tín hiệu này đều đóng vai trò quan trọng trong việc đảm bảo giao tiếp I2C hoạt động đúng cách. Khi một thiết bị muốn gửi dữ liệu, nó sẽ gửi dữ liệu qua đường SDA và đồng thời gửi tín hiệu đồng hồ qua đường SCL. Nhờ có hai đường tín hiệu này, giao tiếp I2C có thể truyền dữ liệu một cách chính xác và hiệu quả.

#061
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
ASimplex
BMaster/slave
CPolling
Full-duplexĐÚNG
EHalf-duplex
Giải thích

Trong giao tiếp SPI, dữ liệu có thể được truyền trong cả hai chiều hoặc cả hai chiều cùng lúc. Đặc tính này được gọi là giao tiếp đầy đủ (full-duplex). Điều này có nghĩa là cả thiết bị truyền và thiết bị nhận đều có thể gửi và nhận dữ liệu cùng một lúc. Điều này cho phép giao tiếp SPI hoạt động nhanh chóng và hiệu quả hơn. Ví dụ, trong một ứng dụng, một thiết bị có thể gửi dữ liệu đến một thiết bị khác trong khi đồng thời nhận dữ liệu từ thiết bị đó. Đặc tính này rất quan trọng trong các ứng dụng cần giao tiếp nhanh chóng và đồng bộ.

#062
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ALibrary file
BSource file
CObject file
Program imageĐÚNG
Giải thích

Trong hệ thống tích hợp, một chương trình thực thi đầy đủ được gọi là chương trình hình ảnh. Chương trình hình ảnh là một tập tin thực thi độc lập, bao gồm cả mã nguồn và dữ liệu cần thiết để chạy chương trình. Nó được tạo ra sau khi quá trình biên dịch và liên kết hoàn tất. Chương trình hình ảnh có thể được lưu trữ trong bộ nhớ RAM hoặc trên bộ nhớ ngoài, và nó được thực thi trực tiếp bởi CPU mà không cần phải biên dịch hoặc liên kết thêm.

#063
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AAlternating signal
BHigh voltage level
Ground or 0VĐÚNG
DPositive voltage supply
Giải thích

Logic '0' trong hệ thống số kỹ thuật là một trạng thái điện tử đặc trưng cho mức điện áp thấp. Trong hầu hết các hệ thống số, logic '0' được định nghĩa là mức điện áp gần như bằng 0V, thường được gọi là mức đất (ground). Điều này có nghĩa là khi một tín hiệu logic ở mức '0', nó sẽ được coi là một tín hiệu thấp, thường được biểu diễn bằng điện áp gần như bằng 0V. Logic '0' được sử dụng để biểu diễn các giá trị 'sai' hoặc 'không đúng' trong các hệ thống số.

#064
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ATicker
BAnalogIn
CPwmOut
TimerĐÚNG
Giải thích

Để đo thời gian chênh lệch giữa hai thời điểm khác nhau, chúng ta sử dụng lớp Mbed Timer. Lớp Timer cho phép chúng ta tạo ra các sự kiện thời gian và đo thời gian chênh lệch giữa các sự kiện đó. Điều này rất hữu ích trong các ứng dụng yêu cầu đo thời gian chính xác như đo thời gian chênh lệch giữa hai sự kiện, đo thời gian thực hiện một hành động, v.v. Ngoài ra, lớp Timer cũng cho phép chúng ta đặt thời gian thực hiện một hành động sau một khoảng thời gian nhất định. Tóm lại, lớp Timer là một lớp quan trọng trong Mbed và được sử dụng rộng rãi trong các ứng dụng yêu cầu đo thời gian.

#065
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
AOnly DAC
BOnly Multiplexer
COnly ADC
DOnly Sample-and-hold
Both ADC and DACĐÚNG
Giải thích

Mbed API cung cấp các thư viện cho các loại chuyển đổi khác nhau. Trong đó, ADC (Analog-to-Digital Converter) là thiết bị chuyển đổi tín hiệu analog thành tín hiệu số, còn DAC (Digital-to-Analog Converter) là thiết bị chuyển đổi tín hiệu số thành tín hiệu analog. Mbed API hỗ trợ cả hai loại thiết bị này, giúp người dùng dễ dàng thực hiện các phép chuyển đổi tín hiệu trong các ứng dụng điện tử.

#066
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
Awrite (float value)
Bread_u16 ()
CAnalogOut (PinName pin)
AnalogIn (PinName pin)ĐÚNG
Eread()
Giải thích

Để tạo một đối tượng AnalogIn kết nối đến một cổng cụ thể, bạn cần sử dụng hàm AnalogIn (PinName pin) trong thư viện Mbed. Hàm này cho phép bạn tạo một đối tượng AnalogIn có thể đọc giá trị tín hiệu analog từ một cổng cụ thể. Ví dụ, nếu bạn muốn tạo một đối tượng AnalogIn kết nối đến cổng P1_0, bạn có thể sử dụng hàm AnalogIn (P1_0). Điều này cho phép bạn đọc giá trị tín hiệu analog từ cổng P1_0 và sử dụng nó trong chương trình của mình.

#067
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ABandwidth
BThroughput
JitterĐÚNG
DLatency
Giải thích

Để đo lường sự biến động của thời gian hoàn thành nhiệm vụ trong một hệ điều hành thời gian thực (RTOS), chúng ta cần sử dụng một số lượng lớn các chỉ số khác nhau. Trong số đó, chỉ số được sử dụng phổ biến nhất để đo lường sự biến động này là "Jitter". Jitter là sự chênh lệch giữa thời gian thực tế và thời gian dự kiến để hoàn thành một nhiệm vụ. Nó được đo bằng đơn vị thời gian và thường được biểu diễn dưới dạng giá trị trung bình hoặc giá trị cực đại. Jitter có thể được sử dụng để đánh giá hiệu suất của hệ thống và xác định các vấn đề tiềm ẩn.

#068
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
ASystem Timer (SysTick)
BAnalog-to-Digital Converter (ADC)
General-Purpose Input/Output (GPIO)ĐÚNG
DDigital-to-Analog Converter (DAC)
EUniversal Asynchronous Receiver/Transmitter (UART)
Giải thích

Bộ ngoại vi thường được sử dụng để truy cập các chân ngoại vi trên một vi điều khiển là GPIO (General-Purpose Input/Output). GPIO là một loại bộ ngoại vi có thể được sử dụng để đọc và ghi dữ liệu vào các chân ngoại vi của vi điều khiển. Điều này cho phép người lập trình kiểm soát các thiết bị ngoại vi như đèn LED, buzzer, cảm biến v.v. GPIO cũng có thể được sử dụng để đọc dữ liệu từ các cảm biến như cảm biến nhiệt độ, cảm biến ánh sáng v.v. Trong nhiều trường hợp, GPIO cũng được sử dụng để truyền dữ liệu giữa vi điều khiển và các thiết bị ngoại vi khác.

#069
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
APipelined array processor architectures
BCISC-based processor architectures
RISC-based processor architecturesĐÚNG
DVLIW-based processor architectures
EStack-based processor architectures
Giải thích

Architectura cơ bản của gia đình Arm được dựa trên các kiến trúc RISC (Reduced Instruction Set Computing). Kiến trúc RISC là một phương pháp thiết kế máy tính đơn giản hóa bộ lệnh, tập trung vào việc thực hiện các lệnh đơn giản và nhanh chóng. Điều này cho phép các nhà thiết kế máy tính tối ưu hóa hiệu suất và giảm thiểu chi phí sản xuất. Các kiến trúc RISC thường có các đặc điểm như lệnh đơn giản, ít lệnh phức tạp, và khả năng thực hiện lệnh nhanh chóng. Điều này làm cho kiến trúc RISC trở thành cơ sở quan trọng cho gia đình Arm và các nền tảng máy tính khác.

#070
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AFinished
BReady
CRunning
BlockedĐÚNG
Giải thích

Trong quản lý nhiệm vụ của hệ điều hành thời gian thực (RTOS), trạng thái 'Blocked' (Khóa) cho biết một nhiệm vụ đang chờ đợi sự kiện trước khi nó có thể tiếp tục thực hiện. Khi một nhiệm vụ đang chờ đợi sự kiện, nó sẽ không thể thực hiện mã lệnh của mình cho đến khi sự kiện đó xảy ra. Trạng thái này thường xảy ra khi nhiệm vụ đang chờ đợi một sự kiện nhất định, chẳng hạn như nhận một tin nhắn hoặc một tín hiệu từ thiết bị ngoại vi. Trong khi chờ đợi, nhiệm vụ sẽ không chiếm dụng tài nguyên hệ thống và sẽ được kích hoạt lại khi sự kiện xảy ra.

#071
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
A1024
B3.3
0ĐÚNG
D1
E256
Giải thích

Khi sử dụng DigitalIn Interface để đọc giá trị từ một chân vào, nó sẽ trả về giá trị integer đại diện cho mức độ cao hay thấp của điện áp trên chân vào. Trong trường hợp điện áp trên chân vào là 0V, DigitalIn Interface sẽ trả về giá trị 0. Điều này là bởi vì DigitalIn Interface thường sử dụng kỹ thuật đọc điện áp trên chân vào để xác định mức độ cao hay thấp. Khi điện áp trên chân vào là 0V, nó được coi là mức độ thấp.

#072
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
Avoid stop (void)
int putc( int ch, FILE *stream )ĐÚNG
Cfrequency (int hz)
DI2C (PinName sda, PinName scl)
Evoid start (void)
Giải thích

Để trả lời câu hỏi này, chúng ta cần hiểu về các hàm cơ bản của API Mbed được sử dụng để cấu hình hoặc tạo khung cho giao tiếp I2C. Các hàm cơ bản bao gồm: bắt đầu giao tiếp (start), dừng giao tiếp (stop), gửi dữ liệu (putc), và thiết lập tần số (frequency). Tuy nhiên, hàm I2C (PinName sda, PinName scl) không phải là một hàm cơ bản của API Mbed, mà là một hàm được sử dụng để tạo một đối tượng I2C. Hàm putc (int ch, FILE *stream) cũng không phải là một hàm cơ bản của API Mbed được sử dụng cho giao tiếp I2C, mà là một hàm được sử dụng để gửi dữ liệu qua một luồng (stream). Vì vậy, cả hai hàm I2C (PinName sda, PinName scl) và putc (int ch, FILE *stream) không phải là các hàm cơ bản của API Mbed được sử dụng cho giao tiếp I2C.

#073
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
ATransmits multiple bits simultaneously
BAlways requires a dedicated clock signal
COnly used for short-haul communication
Transmits data one bit at a time, sequentiallyĐÚNG
ERequires many wires and large connectors
Giải thích

Serial communication là một phương thức truyền thông trong đó dữ liệu được truyền một bit một lần, theo thứ tự. Điều này khác với phương thức truyền thông song song, nơi mà nhiều bit được truyền cùng một lúc. Trong serial communication, mỗi bit được truyền một cách độc lập và được xác định bởi một tín hiệu đồng hồ (clock signal). Điều này cho phép truyền thông hiệu quả và tin cậy, đặc biệt là trong các ứng dụng đòi hỏi truyền thông dài khoảng cách. Serial communication được sử dụng rộng rãi trong nhiều lĩnh vực, bao gồm máy tính, điện thoại di động và các thiết bị điện tử khác.

#074
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
ATo set the pin to an analog level
BTo configure and control a digital output pin
To read the value of a digital input pinĐÚNG
DTo generate PWM signals
ETo connect multiple output pins
Giải thích

Mô tả về DigitalIn interface trong Mbed API. DigitalIn interface là một phần của Mbed API, được sử dụng để đọc giá trị của một cổng vào số (digital input pin). Nó cho phép bạn đọc giá trị logic của một cổng vào, có thể là 0 hoặc 1. Điều này rất hữu ích khi bạn cần đọc giá trị của một cảm biến hoặc một nút bấm. Để sử dụng DigitalIn interface, bạn cần tạo một đối tượng DigitalIn và gọi phương thức read() để đọc giá trị của cổng vào. Phương thức này sẽ trả về giá trị logic của cổng vào, có thể là 0 hoặc 1. Tóm lại, DigitalIn interface là một công cụ quan trọng trong Mbed API, giúp bạn đọc giá trị của cổng vào số và thực hiện các tác vụ liên quan.

#075
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AEight-stage pipeline
BFive-stage pipeline
Three-stage pipelineĐÚNG
DTwo-stage pipeline
Giải thích

Cortex-M4 là một loại vi xử lý được sử dụng rộng rãi trong các ứng dụng điện tử và công nghệ. Một trong những tính năng quan trọng của Cortex-M4 là cấu trúc pipeline. Cấu trúc pipeline là một chuỗi các bước được thực hiện liên tiếp để tăng tốc độ xử lý của vi xử lý. Trong trường hợp của Cortex-M4, cấu trúc pipeline có 3 giai đoạn chính. Giai đoạn đầu tiên là fetching, giai đoạn thứ hai là decoding và giai đoạn thứ ba là executing. Mỗi giai đoạn được thực hiện nhanh chóng và liên tiếp, giúp tăng tốc độ xử lý của vi xử lý. Điều này cho phép Cortex-M4 xử lý các lệnh một cách nhanh chóng và hiệu quả, đáp ứng được nhu cầu của các ứng dụng hiện đại.

#076
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AFrequency division
Pulse Width Modulation (PWM)ĐÚNG
CInterrupt scheduling
DAnalog modulation
Giải thích

Kỹ thuật nào cho phép tín hiệu số mô phỏng đầu ra tương tự bằng cách thay đổi tỷ lệ thời gian ON và OFF?

#077
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
ACortex Microcontroller Software Interface Standard (CMSIS)
BIntegrated Development Environment (IDE)
CDAPLink
DMbed Hardware Development Kit (HDK)
Mbed Operating System (Mbed OS)ĐÚNG
Giải thích

Mô-đun Mbed bao gồm nhiều thành phần quan trọng, trong đó có Libraries, RTOS core, HAL và API. Để xác định thành phần nào bao gồm tất cả các thành phần này, chúng ta cần xem xét từng lựa chọn. CMSIS là một tiêu chuẩn phần mềm cho các vi điều khiển dựa trên ARM, không bao gồm các thành phần này. IDE là môi trường phát triển tích hợp, không phải là một thành phần phần cứng hoặc phần mềm của Mbed. DAPLink là một giao diện phát triển phần mềm, nhưng nó không bao gồm tất cả các thành phần này. Mbed Hardware Development Kit (HDK) là một bộ phát triển phần cứng của Mbed, nhưng nó không bao gồm các thành phần phần mềm. Mbed Operating System (Mbed OS) là hệ điều hành của Mbed, bao gồm các thành phần Libraries, RTOS core, HAL và API.

#078
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AIncreasing chip size
BSlower communication networks
Smaller and lower-power embedded chipsĐÚNG
DDecreasing number of connected devices
Giải thích

Trend công nghệ nào đã giúp tăng tốc sự phát triển của Internet of Things (IoT)? Câu trả lời đúng là sự xuất hiện của chip nhỏ và tiêu thụ ít năng lượng hơn. Những chip này cho phép tích hợp nhiều chức năng vào một thiết bị nhỏ gọn, giảm thiểu tiêu thụ năng lượng và tăng khả năng kết nối. Điều này đã giúp mở rộng khả năng của IoT, cho phép kết nối nhiều thiết bị hơn và tăng cường khả năng tự động hóa trong nhiều lĩnh vực khác nhau. Với sự phát triển của chip nhỏ và tiêu thụ ít năng lượng hơn, IoT đã trở thành một phần không thể thiếu trong cuộc sống hàng ngày của chúng ta.

#079
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
ARequires extensive initial setup
No prior-installation or set-up requiredĐÚNG
COnly supports assembly language
DWorks exclusively offline
ERequires a large local database
Giải thích

Mbed Online Compiler (Keil Studio Cloud IDE) là một công cụ lập trình trực tuyến cho phép bạn tạo và biên dịch các dự án lập trình mà không cần phải cài đặt bất kỳ phần mềm nào trên máy tính của mình. Lợi ích chính của việc sử dụng Mbed Online Compiler là không cần phải thực hiện các bước cài đặt ban đầu phức tạp. Bạn có thể bắt đầu lập trình ngay lập tức mà không cần phải lo lắng về việc cài đặt phần mềm hoặc cấu hình môi trường lập trình. Điều này làm cho Mbed Online Compiler trở thành một lựa chọn tuyệt vời cho những người mới bắt đầu lập trình hoặc những người muốn tạo và biên dịch các dự án lập trình một cách nhanh chóng và dễ dàng.

#080
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AMATLAB and SQL
C/C++ and AssemblyĐÚNG
CJavaScript and HTML
DJava and Python
Giải thích

Embedded hệ thống là các thiết bị có khả năng tự động hóa và xử lý dữ liệu. Để phát triển các hệ thống này, các nhà phát triển thường sử dụng các ngôn ngữ lập trình chuyên dụng. Trong số các lựa chọn trên, C/C++ và Assembly là những ngôn ngữ được sử dụng phổ biến nhất. C/C++ cung cấp khả năng quản lý bộ nhớ và tối ưu hóa hiệu suất, trong khi Assembly cung cấp khả năng truy cập trực tiếp vào các thành phần hardware. MATLAB và SQL chủ yếu được sử dụng trong lĩnh vực khoa học tính toán và quản lý dữ liệu, trong khi JavaScript và HTML thường được sử dụng trong phát triển web. Java và Python cũng có thể được sử dụng trong phát triển hệ thống, nhưng chúng không phải là lựa chọn phổ biến nhất. Vì vậy, đáp án đúng là C/C++ và Assembly.

#081
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
Analog-like signalsĐÚNG
BCompletely digital signals
CPure square waves
DHigh frequency signals
EConstant DC signals
Giải thích

PWM (Pulse Width Modulation) là một phương pháp sử dụng để tạo ra tín hiệu số có tính chất tương tự tín hiệu analog. Trong PWM, tín hiệu số được tạo ra bằng cách thay đổi chiều rộng của xung điện, từ đó tạo ra tín hiệu có tính chất tương tự tín hiệu analog. Điều này cho phép tạo ra tín hiệu có thể điều khiển được cường độ, giúp giảm thiểu sự tiêu thụ năng lượng và tăng hiệu suất sử dụng. PWM được sử dụng rộng rãi trong các ứng dụng như điều khiển động cơ, đèn LED, và các thiết bị điện tử khác.

#082
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ACache memory
Flash memoryĐÚNG
CSRAM
DRegister bank
Giải thích

Trong kiến trúc Cortex-M4, Flash memory là nơi lưu trữ hình ảnh chương trình (program image) nhờ đặc tính không khả biến (dữ liệu không bị mất khi ngắt điện). Điều này đảm bảo mã lệnh luôn tồn tại vĩnh viễn để vi điều khiển có thể khởi động và thực thi ngay khi được cấp nguồn. Trái ngược với Flash, SRAM chỉ dùng để lưu trữ dữ liệu tạm thời (biến, ngăn xếp) vì sẽ bị xóa sạch khi mất điện, còn các thanh ghi (registers) chỉ phục vụ việc tính toán tức thời bên trong nhân CPU.

#083
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
A10V/8
B10V
C1V
D256V/10
10V/256ĐÚNG
Giải thích

Nếu một ADC 8-bit có phạm vi 10V, độ phân giải của nó được biểu thị bằng điện thế (voltage LSB). Để tìm độ phân giải, chúng ta cần tính số lượng mức điện thế khác nhau mà ADC có thể đo được. Vì ADC 8-bit có thể đo được 2^8 = 256 mức điện thế khác nhau, nên độ phân giải của nó được biểu thị bằng điện thế là 10V chia cho 256 mức điện thế khác nhau. Điều này có nghĩa là mỗi mức điện thế khác nhau tương ứng với một điện thế nhỏ hơn 10V, được biểu thị bằng 10V/256.

#084
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
MOSI and MISOĐÚNG
BSCL and SDA
CStart and Stop conditions
DCS and SCLK
Giải thích

UART giao thức có hai dòng truyền (TX) và nhận (RX) tương tự như hai dòng MOSI và MISO trong giao thức SPI. Trong giao thức SPI, MOSI (Master Out Slave In) là dòng truyền dữ liệu từ thiết bị chủ (master) đến thiết bị nô (slave), trong khi MISO (Master In Slave Out) là dòng nhận dữ liệu từ thiết bị nô (slave) về thiết bị chủ (master). Tương tự, trong giao thức UART, TX (Transmit) là dòng truyền dữ liệu từ thiết bị chủ (master) đến thiết bị nô (slave), trong khi RX (Receive) là dòng nhận dữ liệu từ thiết bị nô (slave) về thiết bị chủ (master). Do đó, TX và RX của UART tương tự như MOSI và MISO của SPI.

#085
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
256 valuesĐÚNG
B8 values
C10 values
D1024 values
E65536 values
Giải thích

Một ADC 8-bit có độ phân giải tương ứng với số giá trị rời rạc là 2^8 = 256 giá trị. Điều này có nghĩa là ADC có thể đo được 256 mức độ khác nhau của tín hiệu đầu vào. Độ phân giải cao hơn sẽ cho phép đo được nhiều mức độ khác nhau hơn, nhưng cũng sẽ làm tăng độ phức tạp và chi phí của ADC. Trong thực tế, độ phân giải của ADC thường được đo bằng số bit, và mỗi bit thêm vào sẽ tăng gấp đôi số giá trị rời rạc có thể đo được. Vì vậy, một ADC 8-bit có thể đo được 2^8 = 256 giá trị rời rạc, trong khi một ADC 10-bit có thể đo được 2^10 = 1024 giá trị rời rạc.

#086
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ABusOut
BDigitalOut
CAnalogIn
AnalogOutĐÚNG
Giải thích

Để tạo ra tín hiệu đầu ra analog, bạn cần sử dụng lớp Mbed API phù hợp. Trong các lựa chọn đã cho, lớp "AnalogOut" là lựa chọn đúng. Lớp "AnalogOut" cho phép bạn tạo ra tín hiệu analog có thể được sử dụng để điều khiển các thiết bị như động cơ, cảm biến, v.v. Lớp này cung cấp các phương thức để đặt giá trị analog và điều khiển cường độ tín hiệu. Điều này cho phép bạn tạo ra các tín hiệu analog phức tạp và linh hoạt để đáp ứng các yêu cầu của dự án của bạn. Ngoài ra, lớp "AnalogOut" cũng cung cấp các tính năng như khả năng điều khiển tốc độ, cường độ và hình dạng tín hiệu, giúp bạn có thể tạo ra các tín hiệu analog chính xác và đáng tin cậy.

#087
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
AOffline batch processing jobs
BGeneral-purpose desktop applications
Real-time applications, with real-time constraintsĐÚNG
DSingle-threaded legacy programs
EApplication designed for high throughput only
Giải thích

Hệ điều hành thời gian thực (RTOS) là hệ điều hành đa nhiệm được thiết kế cho các ứng dụng có yêu cầu thời gian thực. Các ứng dụng này đòi hỏi phải xử lý và phản hồi nhanh chóng, thường liên quan đến hệ thống điều khiển tự động, thiết bị y tế, thiết bị điện tử tiêu dùng và các ứng dụng khác yêu cầu độ tin cậy và hiệu suất cao. Ví dụ, một hệ thống điều khiển tự động cần phải xử lý thông tin từ cảm biến và đưa ra quyết định trong thời gian thực để đảm bảo an toàn và hiệu suất. Hệ điều hành thời gian thực được thiết kế để đáp ứng các yêu cầu này bằng cách đảm bảo rằng các tác vụ được thực hiện đúng hạn và không bị gián đoạn.

#088
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
AThreads equal to the priority level
BThreads equal to the number of peripherals.
Only one thread at a timeĐÚNG
DOnly two threads.
EUnlimited number of threads
Giải thích

Trong API Mbed, số lượng luồng (thread) có thể ở trạng thái Running (chạy) cùng một lúc phụ thuộc vào cách thiết kế và quản lý của chương trình. Tuy nhiên, theo thông tin được cung cấp, có thể hiểu rằng chỉ có một luồng duy nhất có thể ở trạng thái Running tại bất kỳ thời điểm nào. Điều này có thể là do các yếu tố như quản lý nguồn lực, tránh xung đột và đảm bảo tính ổn định của hệ thống. Trong thực tế, số lượng luồng Running có thể thay đổi tùy thuộc vào yêu cầu và thiết kế cụ thể của chương trình.

#089
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ATo simulate processor pipelines
BTo replace the microcontroller hardware
CTo manage power supply circuits
To provide libraries, drivers, and tools for developing embedded applicationsĐÚNG
Giải thích

Mbed SDK là một bộ công cụ phần mềm được thiết kế để hỗ trợ việc phát triển ứng dụng nhúng. Bộ công cụ này cung cấp các thư viện, trình điều khiển và công cụ để giúp các nhà phát triển tạo ra các ứng dụng nhúng hiệu suất cao và đáng tin cậy. Mbed SDK cho phép các nhà phát triển sử dụng các ngôn ngữ lập trình phổ biến như C và C++ để tạo ra các ứng dụng nhúng. Bộ công cụ này cũng cung cấp các công cụ để quản lý và tối ưu hóa việc sử dụng năng lượng, giúp giảm thiểu tiêu thụ năng lượng của các ứng dụng nhúng. Ngoài ra, Mbed SDK cũng hỗ trợ việc phát triển các ứng dụng nhúng dựa trên các nền tảng khác nhau, bao gồm cả các nền tảng dựa trên ARM và x86.

#090
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
AAnalogIn (PinName pin)
Boperator float ()
Cread ()
Dwrite_u16 (unsigned short value)
AnalogOut (PinName pin)ĐÚNG
Giải thích

Để tạo một đối tượng AnalogOut kết nối đến một cổng pin cụ thể, bạn cần sử dụng hàm Mbed AnalogOut (PinName pin). Hàm này cho phép bạn tạo một đối tượng AnalogOut và kết nối nó đến một cổng pin cụ thể trên thiết bị. Điều này cho phép bạn điều khiển tín hiệu analog trên cổng pin đó. Ví dụ, bạn có thể sử dụng AnalogOut để tạo một tín hiệu analog để điều khiển một cảm biến hoặc một thiết bị khác. Hàm AnalogOut (PinName pin) là một phần quan trọng của thư viện Mbed và được sử dụng rộng rãi trong các dự án điện tử.

#091
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
AHAL Manager
BCMSIS-DAP
CMbed CLI
Secure Partition Manager (SPM)ĐÚNG
Giải thích

Trong hệ điều hành Mbed OS, phần tử quản lý cách ly phần mềm và giao tiếp giữa các phân vùng bảo mật được gọi là Secure Partition Manager (SPM). SPM là một phần quan trọng trong kiến trúc bảo mật của Mbed OS, giúp đảm bảo rằng các phần mềm độc lập và không tương tác với nhau được chạy trên các phân vùng riêng biệt. Điều này cung cấp một mức độ bảo mật cao và ngăn chặn các cuộc tấn công có thể xảy ra thông qua việc truy cập không hợp lệ vào các phân vùng bảo mật. SPM cũng cung cấp các tính năng để quản lý giao tiếp giữa các phân vùng bảo mật, bao gồm việc truyền dữ liệu và gọi các chức năng. Với sự giúp đỡ của SPM, các nhà phát triển có thể xây dựng các ứng dụng bảo mật cao và đáng tin cậy trên nền tảng Mbed OS.

#092
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
ABecause processors can only process analog signals
Because processors operate with digital signals while real-world signals are often analogĐÚNG
CBecause analog signals are faster than digital signals
DBecause ADC increases memory capacity
Giải thích

ADCs (Analog-to-Digital Converters) là một phần quan trọng trong các hệ thống tích hợp (embedded systems). Lý do chính là vì các tín hiệu trong thế giới thực thường là tín hiệu analog, trong khi các bộ xử lý (processors) chỉ có thể xử lý tín hiệu số (digital). Vì vậy, ADCs cần được sử dụng để chuyển đổi tín hiệu analog thành tín hiệu số, giúp bộ xử lý có thể hiểu và xử lý tín hiệu một cách chính xác. Điều này đặc biệt quan trọng trong các hệ thống cần đo lường và xử lý tín hiệu từ các thiết bị cảm biến, chẳng hạn như nhiệt độ, áp suất, độ ẩm, v.v. ADCs giúp đảm bảo rằng tín hiệu được chuyển đổi chính xác và có thể được xử lý bởi bộ xử lý mà không bị mất thông tin.

#093
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
ATo generate a reset signal
To divide the input frequency by a predefined valueĐÚNG
CTo compare two separate values
DTo load the timer register
ETo increase the clock frequency
Giải thích

Prescaler (tính toán chia tần số) là một thành phần quan trọng trong các thiết bị thời gian (timer). Chức năng chính của Prescaler là chia tần số đầu vào (input frequency) theo một giá trị xác định (predefined value). Điều này giúp tạo ra một tần số mới, có thể được sử dụng để điều khiển các hoạt động của thiết bị thời gian. Prescaler hoạt động bằng cách đếm số lượng chu kỳ của tín hiệu đầu vào và khi đạt đến giá trị xác định, nó sẽ tạo ra một tín hiệu reset. Tính năng này cho phép thiết bị thời gian hoạt động chính xác và ổn định, ngay cả khi có sự thay đổi trong tần số đầu vào.

#094
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
AThe Prescaler value
BVoltage level
CThe frequency of the clock source
DThe period of the pulse
The width of a pulseĐÚNG
Giải thích

Pulse-width modulation (PWM) là một phương pháp điều chế tần số, trong đó độ rộng của xung điện áp được sử dụng để điều chế độ lớn của tín hiệu. Trong PWM, độ rộng của xung điện áp được thay đổi để tạo ra các tín hiệu có độ lớn khác nhau. Điều này cho phép điều khiển các thiết bị điện tử như động cơ, đèn LED, v.v. bằng cách thay đổi độ rộng của xung điện áp. Ví dụ, nếu độ rộng của xung điện áp tăng lên, thì độ lớn của tín hiệu cũng tăng lên. Ngược lại, nếu độ rộng của xung điện áp giảm xuống, thì độ lớn của tín hiệu cũng giảm xuống. Vì vậy, PWM sử dụng độ rộng của xung điện áp để điều chế độ lớn của tín hiệu.

#095
ĐỘ CHÍNH XÁC
5 LỰA CHỌN
APower ON/OFF
BFirmware upgrade initiation
Button name: RESETĐÚNG
DButton name: Boot selection
EButton name: USER
Giải thích

B2 push-button trên bo mạch STM32 Nucleo-F411RE có chức năng là nút Reset. Nút này được sử dụng để khởi động lại hệ thống hoặc tải lại chương trình firmware. Khi nhấn nút Reset, hệ thống sẽ được khởi động lại từ đầu, giúp bạn có thể thử nghiệm lại chương trình hoặc tải lại chương trình mới. Ngoài ra, nút Reset cũng có thể được sử dụng để tải lại chương trình firmware khi bạn cần cập nhật chương trình mới cho bo mạch.

#096
ĐỘ CHÍNH XÁC
4 LỰA CHỌN
LinkĐÚNG
BCompile
CAssemble
DExecute
Giải thích

Trong quá trình tạo chương trình, bước nào kết hợp các tệp đối tượng và thư viện để tạo ra chương trình thực thi được?