- Embedded Systems Architecture
- Daniele Lacamera
- 328字
- 2021-06-25 21:55:06
Defining project steps
When analyzing the specifications, defining the required steps, and assigning priorities, several factors may have to be taken into account. Consider having to design an air quality monitor device, with a PM10 air quality serial sensor, which collects the measurements done hourly into the internal flash, then transmits all the statistics daily to a gateway using a wireless transceiver. The target system is a custom board based on Cortex-M MCU, which is adequately sized to run the final software. The final hardware design will not be available until some real-life measurements are done on the transceiver transmitting data to the gateway.
The list of steps to be performed to reach the final goal, resulting from these specifications, may look like the following:
- Boot a minimal system on the target (empty main loop)
- Set up serial port 0 for logging
- Set up serial port 1 for the communication to the sensor
- Set up a timer
- Write the PM10 sensor driver
- Application that wakes up every hour and reads from sensor
- Write flash submodule to store/restore measurements
- Set up an SPI port to communicate to the radio chip
- Write the radio driver
- Implement protocol to communicate with the gateway
- Every 24 measurements, the application sends daily measurements to the gateway
Note that some of the steps may depend on others, so there are constraints on the order of execution. Some of these dependencies can be removed by using simulators or emulators. For example, we might want to implement the communication protocol without having a working radio only if there is a way to test the protocol against the agent running on the gateway by using a simulated radio channel on the gateway itself. Keeping the modules self-contained and with a minimal set of API calls exposed to the outside makes it easier to detach the single modules to run and test them on different architectures, and under a controlled environment, before integrating them on the target system.
- Mastering ElasticSearch
- 每天5分鐘玩轉(zhuǎn)Kubernetes
- Designing Purpose:Built Drones for Ardupilot Pixhawk 2.1
- Social Media Mining with R
- Ansible權(quán)威指南
- 深入Linux內(nèi)核架構(gòu)與底層原理(第2版)
- Application Development in iOS 7
- 跟老男孩學(xué)Linux運(yùn)維:Shell編程實(shí)戰(zhàn)
- HTML5 Enterprise Application Development
- 嵌入式微系統(tǒng)
- Zabbix監(jiān)控系統(tǒng)之深度解析和實(shí)踐
- Instant Responsive Web Design
- 鴻蒙應(yīng)用開發(fā)實(shí)戰(zhàn)
- UG NX 實(shí)例教程(第2版)
- 電腦辦公(Windows 10+Office 2016)從入門到精通