Chiến Lược lái xe của bạn có tăng tốc thời gian đưa ra thị trường không?
Đối với hầu hết các đội, câu trả lời là số. Một Chiến Lược điều khiển không giới hạn là một nút cổ chai ẩn. Sự thiếu hiệu quả này cho thấy chính nó
Đối với hầu hết các đội, câu trả lời là số. Một Chiến Lược điều khiển không giới hạn là một nút cổ chai ẩn. Điều này không hiệu quả cho thấy bản thân thông qua một số triệu chứng:
- Các đội vật lộn với SDK Nhà cung cấp đầy hơi.
- Mã ứng dụng phụ thuộc quá nhiều vào phần cứng cụ thể.
- Quá trình phát triển dừng lại vì các đội chờ đợi trình điều khiển chức năng.
Những chậm trễ này có hậu quả kinh doanh nghiêm trọng, ảnh hưởng trực tiếp đến doanh thu và vị trí thị trường.
| Hệ mét | Tác động chậm trễ trong sáu tháng |
|---|---|
| Xói mòn thị phần | Giảm tới 10% trong quý đầu tiên |
| Mất doanh thu | Trên $500 triệu (Flagship) |
| Chi phí tiếp thị bổ sung | Tăng 25% để thu hút người tiêu dùng |
Bài viết này trình bày một chiến lược rõ ràng để đẩy nhanh thời gian ra thị trường bằng cách chuyển đổi trình điều khiển HiSilicon từ một vấn đề thành một máy gia tốc dự án.
Mang theo chìa khóa
- Chiến Lược lái xe chậm làm tổn thương Thời gian dự án và thành công trên thị trường.
- SDK Nhà cung cấp chung tạo ra các vấn đề như thời gian xây dựng lâu dài và gỡ lỗi khó khăn.
- Mã được liên kết chặt chẽ khiến phần mềm khó thay đổiPhần cứng mới.
- Kế hoạch ba bước giúp: Xây dựng SDK Lean, sử dụng Hal mạnh và trình điều khiển chuẩn hóa hoạt động.
- Kế hoạch này giúp các đội làm việc nhanh hơn vàTạo ra sản phẩm tốt hơn.
Chẩn đoán nút cổ chai Hisilicon của bạn
Xác định nguyên nhân gốc rễ của sự chậm trễ của Dự án là bước đầu tiên hướng tới một giải pháp. Dành cho các đội làm việc cùngSocs HiSilicon, Các nút thắt thường ẩn trong tầm nhìn rõ ràng trong quy trình làm việc phát triển. Những triệu chứng này thể hiện là Nợ kỹ thuật và quá trình không hiệu quả âm thầm phá hoại thời gian của bạn để thị trường.
Triệu chứng 1: SDK Nhà cung cấp đầy hơi
HiSilicon cung cấp Bộ dụng cụ phát triển phần mềm toàn diện, hoặc SDK, để hỗ trợ phần cứng của họ. Mặc dù kỹ lưỡng, các gói này được xây dựng cho nhiều loại sản phẩm khác nhau, chứ không phải sản phẩm cụ thể của bạn. Điều này tạo ra một gánh nặng đáng kể.
Đội của bạn kế thừa Bộ công cụ phù hợp với tất cả mọi kích cỡ. Nó chứa hàng ngàn dòng mã và nhiều trình điều khiển Nhà cung cấp mà dự án của bạn sẽ không bao giờ sử dụng.
Mã thừa này không vô hại. Nó tác động trực tiếp đến vận tốc dự án theo nhiều cách:
- Thời gian xây dựng lâu hơn:Biên soạn mã không cần thiết và liên kết các thư viện không sử dụng lãng phí thời gian phát triển có giá trị với mỗi bản dựng.
- Gỡ lỗi phức tạp:Một codebase lớn hơn làm tăng khu vực tìm kiếm các lỗi. Các nhà phát triển phải điều hướng không liên quanNhà cung cấp tài xếVà phụ thuộc để tìm ra nguồn gốc của một vấn đề.
- Tích hợp tính năng bị trì hoãn:Thêm các tính năng mới yêu cầu Các nhà phát triển hiểu cách họ tương tác với cơ sở khổng lồ của các trình điều khiển Nhà cung cấp hiện có, làm chậm quá trình phát triển.
Những SDK chung này buộc đội ngũ của bạn phải Quản lý Độ phức tạp không có giá trị cho sản phẩm cuối cùng của bạn.
Triệu chứng 2: Mã ghép chặt
Một kiểu chống mẫu phổ biến là viết logic ứng dụng gọi trực tiếp các thanh ghi phần cứng cấp thấp. Thực hành này kết hợp chặt chẽ phần mềm với một HiSilicon Soc cụ thể, làm cho codebase giòn và khó duy trì. Bất kỳ sửa đổi phần cứng hoặc chuyển sang Chip mới nào cũng đòi hỏi phải đánh giá và viết lại mã từng dòng một, đau đớn.
Khớp nối chặt chẽ này thường kết quả từ:
- Phần mở rộng khai thác phi tiêu chuẩn:Mã có thể sử dụng cú pháp như
Uint8_t Reg dễ bay hơi @ 0x1234;Để truy cậpBộ nhớ. Sản phẩm không mang đi được trên các chuỗi công cụ khác nhau. - Bản đồ đăng ký cụ thể Biên dịch:Bản đồ đăng ký được xác định trước từ một nhà cung cấp silicon thường dựa vào các tính năng ngôn ngữ C không chuẩn, khóa mã thành một trình biên dịch.
Ví dụ, dự án GRBL tập trung mã phụ thuộc vào phần cứng của nó vàoStepper. C, Làm cho mô-đun cụ thể đó cực kỳ khó để cổng.Giải pháp này là để thực thi việc tách các mối quan tâm nghiêm ngặt bằng cách sử dụng các lớp trừu tượng phần cứng (Hal).Hal Cung cấp giao diện chuẩn hóa cho ứng dụng tương tác với phần cứng. Nó che giấu các chi tiết phức tạp, cụ thể của các trình điều khiển nhà cung cấp.
Hal được thiết kế tốt xác định một giao diện chung, thường sử dụng một cấu trúc của các con trỏ chức năng. Điều này cho phép ứng dụng thực hiện các hành động nhưI2c_write ()Mà không biết các bit đăng ký cụ thể của trình điều khiển Nhà cung cấp cơ bản.
/* Ví dụ về giao diện I2C Hal */
Typedef struct
{
Bool (* init) (VOID);
Bool (* write)(uint16_t Const targetaddress, uint8_t Const * Const data, uint32_t Const datalength);
Bool (* Read)(uint16_t Const targetaddress, uint8_t * data, uint32_t Const datalength);
} I2c_t;
Triệu chứng 3: Phát triển tuần tự
Nhiều dự án theo một quy trình làm việc tuần tự, cứng nhắc. Nhóm ứng dụng không thể bắt đầu làm việc có ý nghĩa cho đến khi nhóm phần cứng Cung cấp trình điều khiển đầy đủ chức năng. Điều này tạo ra một nút cổ chai phụ thuộc cổ điển.
Quy trình làm việc không hiệu quả điển hình:
Đội lái xe phát triển➡️ Đội ngũ ứng dụng chờ đợi➡️ Tích hợp bắt đầu muộn 🚶♂️ .....................................💻
Quá trình này giới thiệu thời gian nhàn rỗi đáng kể và kéo dài toàn bộ thời gian dự án. Một chiến lược hiện đại giúp loại bỏ sự phụ thuộc này thông qua sự phát triển song song. Bằng cách xác định các giao diện rõ ràng (như Hal mô tả ở trên) sớm trong dự án, các đội có thể làm việc đồng thời.
Các nhà phát triển ứng dụng không cần phải chờ phần cứng vật lý hoặc trình điều khiển Nhà cung cấp hoàn chỉnh.Họ có thể viết và kiểm tra mã của họ chống lại các đối tượng giả hoặc mô phỏng bắt chước hành vi của các trình điều khiển trong tương lai.Cách tiếp cận này mang lại những lợi ích chính:
- Dòng máy song song:Phát triển ứng dụng và trình điều khiển được tiến hành cùng một lúc, rút ngắn đáng kể Dòng Thời Gian tổng thể.
- Phát hiện lỗi Sớm:Các đội có thể xác định và khắc phục các vấn đề tích hợp trong môi trường mô phỏng rất lâu trước khi phần cứng cuối cùng sẵn sàng.
- Sự hợp tác được cải thiện: Quá trình này buộc phải rõ ràng thông tin liên lạc và thỏa thuận về giao diện ngay từ đầu, sắp xếp các nhóm và giảm xung đột giai đoạn cuối.
Chiến Lược đẩy nhanh thời gian ra thị trường
Chẩn đoán tắc nghẽn chỉ là bước đầu tiên. Tiếp theo là thực hiện một chiến lược ba tầng có chủ ý. Cách tiếp cận này biến đổi cách một độiQuản lý trình điều khiển HiSilicon, Biến một nguồn chậm trễ thành một công cụ để đẩy nhanh thời gian ra thị trường. Mỗi tầng được xây dựng dựa trên cuối cùng để tạo ra một quy trình làm việc hợp lý và hiệu quả.
Cấp 1: xây dựng SDK Lean
Các đội nên ngừng đấu vật với SDK Nhà cung cấp chung. Giải pháp này là xây dựng một SDK dành riêng cho dự án. Điều này bao gồm việc loại bỏ một cách có hệ thống tất cả các mã, thư viện và các nguồn lực không cần thiết cho sản phẩm cuối cùng.Thực tiễn này cũng tăng cường an ninh vì việc loại bỏ các thư viện không cần thiết làm giảm tiềm năng khai thác.
Tạo và duy trì SDK Lean yêu cầu Cách tiếp cận Có Kỷ luật.Thực tiễn tốt nhất bao gồm:
- Kiến trúc dạng mô-đun:Thiết kế SDK trong các mô-đun. Điều này cho phép các nhóm Phát Triển Chỉ bao gồm các bộ phận cần thiết cho các tính năng cụ thể của họ.
- Phiên bản ngữ nghĩa:Sử dụng một hệ thống phiên bản chính. nhỏ. Điều này rõ ràng truyền đạt tác động của cập nhật, phân biệt giữa các thay đổi phá vỡ, tính năng mới và sửa lỗi.
- Tài liệu rõ ràng:Cung cấp tài liệu toàn diện cho mọi phiên bản. Điều này bao gồm hướng dẫn di chuyển và thay đổi bản ghi để giúp các nhà phát triển thích ứng với các phiên bản mới một cách trơn tru.
- Kiểm tra tự động:Thực hiện một bộ các bài kiểm tra tự động cho mọi phiên bản. Điều này đảm bảo khả năng tương thích ngược và ngăn ngừa hồi quy, duy trì độ tin cậy của SDK tùy chỉnh.
Bước ban đầu này giúp loại bỏ hiện tượng mã, rút ngắn thời gian xây dựng và đơn giản hóa việc gỡ lỗi. Nó cung cấp cho đội ngũ một nền tảng sạch sẽ, tối ưu hóa để xây dựng theo.
Cấp 2: thực hiện một Hal mạnh mẽ
Với SDK nạc, tầng tiếp theo là kiến trúc một lớp trừu tượng phần cứng mạnh mẽ (Hal). Hal là một lớp Phần mềm tạo ra một bộ đệm giữa logic ứng dụng và các trình điều khiển phần cứng cụ thể. Nó loại bỏ các ứng dụng từ HiSilicon Soc bên dưới, làm cho mã di động và dễ bảo trì hơn.
Hal được thiết kế tốt xác định một bộ chức năng tiêu chuẩn để tương tác với các thiết bị ngoại vi. Đối với một thành phần như GPIO, các chức năng thiết yếu bao gồm:
- Khởi tạo
- Thao tác Ghi và đọc
- Thiết lập bộ ghép kênh pin (setmux)
Tóm tắt này ngăn chặn mã ứng dụng thực hiện các cuộc gọi phần cứng trực tiếp, cấp thấp. Thay vì gắn với các thanh ghi cụ thể, ứng dụng sử dụng giao diện Hal được chuẩn hóa.
Lợi ích chính của Hal là cho phép các luồng công việc song song. Các nhà phát triển ứng dụng có thể viết và kiểm tra mã của họ chống lại phiên bản "giả mạo" của Hal. Mock Hal này mô phỏng hành vi của các trình điều khiển phần cứng thực sự mà không cần phần cứng vật lý.
Cách tiếp cận này mang lại những lợi thế đáng kể:
- Thử nghiệm cách ly: Các nhà phát triển có thể sử dụng các đối tượng mô phỏng để đơn vị kiểm tra logic kinh doanh cách ly. Điều này loại bỏ các phụ thuộc phần cứng và cho phép thử nghiệm nhanh trên máy phát triển.
- Phát hiện lỗi Sớm:Gói giao tiếp phần cứng trong mô-đun Hal cho phép các đội bắt kịp các lỗi tích hợp sớm, rất lâu trước khi phần cứng cuối cùng có sẵn.
- Giảm rủi RO:Những thay đổi đối với mã mức cao hơn ít có khả năng phá vỡ giao diện phần cứng, vì Hal được coi là một thành phần ổn định và được xác minh.
Cấp 3: Phát triển trình điều khiển chuẩn hóa
Cấp độ cuối cùng thống nhất toàn bộ quá trình bằng cách thiết lập các tiêu chuẩn rõ ràng cho việc phát triển trình điều khiển. Tiêu chuẩn hóa đảm bảo rằng tất cả các trình điều khiển đều đáng tin cậy, có thể bảo trì và nhất quán. Điều này bắt đầu bằng việc áp dụng một tiêu chuẩn mã hóa nghiêm ngặt.
Đối với các hệ thống có độ tin cậy cao, các tiêu chuẩn như misra C là điều cần thiết. Misra cung cấp hướng dẫn cho C và CGiúp Các nhà phát triển:
- Tăng cường an toàn:Nó không cho phép các cấu trúc ngôn ngữ không an toàn, chẳng hạn như số học con trỏ không được kiểm tra, điều rất quan trọng trong các hệ thống mà sự thất bại không phải là một lựa chọn.
- Cải thiện khả năng bảo trì:Nó thúc đẩy sự rõ ràng và tính di động của mã, giúp phần mềm dễ dàng cập nhật và quản lý hơn vòng đời của nó.
- Đảm bảo tuân thủ:Nó cung cấp một khuôn khổ để đáp ứng các tiêu chuẩn an toàn công nghiệp nghiêm ngặt như ISO 26262 cho các hệ thống ô tô.
Ngoài Quy Tắc mã hóa, các tổ phải chuẩn hóa toàn bộ quy trình làm việc.Quy trình xem xét Mã Chính thức là một phần quan trọng của điều này. Người đánh giá nên kiểm tra mã theo một tập hợp các tiêu Chí đã xác định.
| Khu vực | Cần kiểm tra những gì |
|---|---|
| Chức năng | Mã có hoạt động như dự định và xử lý các trường hợp cạnh không? |
| Khả năng đọc | Mã có dễ hiểu không, có tên và bình luận rõ ràng? |
| An Ninh | Mã có giới thiệu bất kỳ lỗ hổng hoặc xử lý dữ liệu không đúng cách không? |
| Testability | Mã có mô-đun và dễ kiểm tra với đủ đơn vị kiểm tra không? |
| Xử lý lỗi | Mã có xử lý mọi lỗi tiềm ẩn một cách duyên dáng không? |
Để tự động thực thi các tiêu chuẩn này, các đội nên thực hiện một đường ống tích hợp liên tục (ci).Một máy chủ ci có thể được cấu hình để chạy một chuỗi các công việc mỗi khi mã được cam kết, đẩy nhanh thời gian ra thị trường bằng cách cung cấp phản hồi nhanh chóng.Một đường ống ci điển hình cho các trình điều khiển nhúng bao gồm các giai đoạn sau:
- Xây dựng:Các đường ống biên soạn phần sụn và tạo ra các cặp đôi giải phóng.
- Phân Tích: Các công cụ phân tích tĩnh như pvs-studio, coverity hoặc polyspace Tự động kiểm tra mã lỗi và tuân thủ các tiêu chuẩn misra.
- Thử nghiệm:Đường ống dẫn thực hiện tất cả các đơn vị, tích hợp và kiểm tra hệ thống.
- Báo cáo:Nó thu thập kết quả từ tất cả các giai đoạn trước để báo cáo về xây dựng thành công, chất lượng mã và bảo hiểm thử nghiệm.
- Hợp nhất:Tính năng mới được Sáp Nhập vào chi nhánh chính chỉ khi tất cả các công việc trước đó thành công.
Quy trình tự động hóa, được chuẩn hóa này đảm bảo rằng mọi mã được xây dựng, thử nghiệm và xác minh, dẫn đến trình điều khiển Chất lượng cao hơn và thời gian dự án có thể dự đoán được hơn.
Một chiến lược cố ý cho người lái xe là một công cụ kinh doanh quan trọng. Nó không chỉ là một chi tiết kỹ thuật. Cách tiếp cận này là chìa khóa để đẩy nhanh thời gian ra thị trường. Các đội có thể chuyển đổi quy trình làm việc của họ bằng cách áp dụng giải pháp ba tầng. Giải pháp này bao gồm việc tạo ra các SDK Lean, thực hiện Hal mạnh mẽ và chuẩn hóa sự phát triển của trình điều khiển.
Khoản đầu tư vào quy trình và kỹ năng này mang lại lợi nhuận đáng kể:
- Nó cải thiện kết quả dự án và giảm hoạt động lại.
- Nó cung cấp dữ liệu để xác định và khắc phục sự không hiệu quả.
- Nó thúc đẩy một nền văn hóa cải tiến liên tục.
Ngừng cho phép trình điều khiển không hiệu quả tạo ra sự chậm trễ. Thực hiện những thay đổi này cho các sản phẩm tốt hơn và đẩy nhanh thời gian ra thị trường.
Câu hỏi thường gặp
Lớp trừu tượng phần cứng (Hal) là gì?
Lớp trừu tượng phần cứng (Hal) là Lớp phần mềm tách mã ứng dụng khỏi trình điều khiển phần cứng cụ thể. Lớp này cho phép phát triển song song và làm cho phần mềm di động trên các chip khác nhau. Đây là một công cụ quan trọng để đẩy nhanh thời gian ra thị trường.
Xây Dựng Một SDK nạc có khó khăn không?
Xây Dựng Một SDK đơn giản đòi hỏi phải Có Kỷ luật. Các đội Phải xác định và xóa mã không sử dụng khỏi gói của nhà cung cấp. Nỗ lực ban đầu này được Thanh toán bằng cách giảm thời gian xây dựng, đơn giản hóa việc gỡ lỗi và cải thiện tính bảo mật.
Misra C là gì?
Misra C là một tập hợp các hướng dẫn phát triển phần mềm cho ngôn ngữ lập trình C. Nó giúp các đội viết mã an toàn hơn và di động hơn. Tuân thủ là rất quan trọng đối với các hệ thống có độ tin cậy cao. Các lợi ích chính bao gồm:
- Tăng cường an toàn🛡️
- Cải thiện khả năng bảo trì
- Tuân thủ đảm bảo
Chiến lược này giúp ích thế nào với chip HiSilicon mới?
Một Hal mạnh mẽ làm cho chuyển đếnSocs HiSilicon mớiNhanh hơn nhiều. Mã ứng dụng vẫn không thay đổi. Các nhà phát triển chỉ cần cập nhật triển khai trình điều khiển cơ bản của Hal cho chip mới, tiết kiệm đáng kể thời gian và công sức.







