Câu hỏi của bạn hơi rộng. Phần cứng (CTNH) có thể có nghĩa là phát triển ASIC / FPGA tùy chỉnh đầy đủ, DSP được lập trình trình biên dịch hoặc "chỉ" một hệ thống nhúng thông thường dựa trên bộ vi xử lý / bộ vi điều khiển / SoC, vv (tất nhiên SoC cũng có thể chứa DSP mà bạn có thể muốn lập trình ....). Đối với số lượng bán cao, làm cho nó một ASIC không phải là hiếm.
Nhưng đối với một dự án 2 tháng, tôi hy vọng nó sẽ dựa trên một số vi điều khiển:
Trong mọi trường hợp, bạn nên nhấn mạnh nhóm phần cứng cung cấp cho bạn một nguyên mẫu mà bạn có thể bắt đầu kiểm tra mã của mình trước thời hạn tuyệt đối - điều này có thể bao gồm một ban phát triển chung, như một số người đã đề cập, nhưng theo tôi đó là công việc cung cấp đúng cho bạn và cũng có khả năng một số thiết bị ngoại vi bắt buộc / tương tự để thử nghiệm.
Mô phỏng cũng có thể ở một mức độ nào đó, nhưng bạn vẫn có thể cần mô tả một số cảm biến / dữ liệu trong thế giới thực mà bạn có thể nhận được. Ở đây nhóm phần cứng cũng cần ít nhất là hỗ trợ bạn.
Ngoài ra, thiết kế phần mềm có thể được thực hiện và tất cả các mô-đun cấp cao có thể được triển khai và kiểm tra đơn vị mà không cần phần cứng thực sự. Lý tưởng nhất là bạn cũng sẽ xác định API cùng với nhóm phần cứng và họ sẽ cung cấp cho bạn các hàm cấp thấp nhất, do đó, bất kỳ thay đổi nào họ thực hiện ở phía phần cứng ở đó (ví dụ: chỉ cần xác định lại chân mà họ sử dụng), sẽ không luôn luôn quan trọng với bạn
Trong mọi trường hợp, giao tiếp là chìa khóa.