1. Tầng thanh ghi- Register layer
- Job làm ở tầng thanh ghi thường rất ít. Bạn chỉ có thể làm loại dự án này khi bạn viết driver hoặc maintain driver, SDK cho chính các hãng sản xuất chip.
- Ví dụ điển hình, nếu bạn làm cho một công ty outsource như FPT. Công ty sẽ có nhiều dự án cho các hãng chip như NXP, Silabs, Renesas. Lúc đó bạn sẽ maintain hoặc viết thêm lib, HAL cho SDK của các hãng này
- Tiếp theo, bạn cũng có thể làm cho các công ty chip có trụ sở ở Việt Nam: Renesas, Abov, Toshiba... Ở đây bạn cũng có cơ hội làm việc sâu với tầng thanh ghi hơn, mặc dù công việc cũng không nhiều
- Khi làm việc ở loại dự án này, bạn sẽ có kiến thức sâu hơn về thanh ghi của chip
2. Tầng Application và Middleware
- Đây là loại thông dụng nhất, thường gặp ở các công ty phát triển sản phẩm. Hầu như tất cả các công ty về lập trình nhúng thì đều có loại dự án này
- Khi làm sản phẩm hoặc dev thêm tính năng cho sản phẩm, họ sẽ tập trung làm ở tầng main, application, middleware và viết thêm driver cho thiết bị, họ gần như hiếm khi viết code từ đầu ở thanh ghi, vì sẽ mất rất nhiều thời gian và nhân lực. Trừ khi những sản phẩm cần tối ưu về mặt tốc độ hoặc memory
3. Driver cho RTOS
- Dự án này cũng thông dụng, nó cũng có thể ở các dự án outsource hoặc những dự án làm sản phẩm mà cần viết thêm driver cho OS.
- Ví dụ: khi bạn có 1 device hoặc 1 con sensor mới cần tích hợp thêm vào sản phẩm, bạn cần thêm nó vào tầng driver
4. Tầng kernel Space
- Dự án này cũng thuộc loại ít bên linux embedded
- Thường bạn có thể gặp các job này khi viết device driver cho các thiết bị để chạy trên linux
5. Tầng User Space
- Đây cũng là loại thông dụng nhất bên linux embedded
- Bạn sẽ lập trình app dùng C, network, xử lý ảnh, AI... Công việc này thiên về làm trên các máy tính nhúng như Raspberry pi, Jetson nano... và chạy unix-like os như linux
6. Tầng giao diện, GUI app
- Đây cũng là loại công việc khá phổ biến
- Tầng này sẽ làm tầng trên cùng và có thể giao tiếp với người dùng, bạn sẽ chủ yếu làm giao diện, gần như không làm gì liên quan đến các lớp phần cứng ở bên dưới
7. Dev dựa trên các open source
- Các job này thường ở những công ty startup làm sản phẩm. Công ty start up thì có thể phát triển từ đầu hoặc cũng có thể sử dụng open source mà cộng đồng đã phát triển và free
- Ví dụ: các sản phẩm như uav/drone, robot, xe tự lái, các sản phẩm AI, xử lý ảnh... thì đều có cộng đồng công nghệ thế giới phát triển ra những platform, framework rất lớn và xịn sò. Bạn chỉ cần làm chủ được nó và phát triển thêm sản phẩm.
- Khi làm ở dự án này thì bạn có thể dev ở tất cả các tầng, tùy vào công việc được giao
Kết luận: Theo mình, nếu các bạn có cơ hội thì nên thử qua công việc ở tất cả các layer này, mỗi layer đều có cái hay riêng và rất nhiều cái bạn học hỏi được. Nó sẽ giúp bạn có cái nhìn tổng quan toàn bộ về hệ thống nhúng ở các layer khác nhau, củng cố kiến thức hệ thống và nắm rõ ràng hơn ở các tầng.
Chúc các bạn học tập tốt!
0 Nhận xét