Sự cố lập trình vi điều khiển LPC1343 trong Ubuntu


7

Khi tôi sao chép tệp nhị phân hoạt động trên lpc1343 sang thiết bị usb được gắn đại diện cho đèn flash lpc1343, tệp nhị phân bị thay đổi và không hoạt động. Làm tương tự với đèn flash được gắn qua usb trên Windows hoặc Mac OS không gặp vấn đề tương tự. Điều gì có thể là vấn đề, và làm thế nào nó có thể được sửa chữa?

Chỉnh sửa: Vấn đề dường như là việc triển khai vfat trong Linux dường như có tiền tố 0 trước khi tệp được chuyển.


Bạn có chắc chắn 100% đó là cùng một nhị phân không? Làm thế nào chính xác để bạn sao chép tệp trong Ubuntu? Bạn đã thử nhiều cách sao chép khác nhau chưa?
Igor Skochinsky

Vâng tôi chắc chắn. Tôi tìm thấy vấn đề. Nó có vẻ là cách linux giao dịch với vfat. Có vẻ như tiền tố 0 trước khi gửi tệp bị bỏ qua bởi nhiều thiết bị usb, nhưng vẫn không tương thích với tiêu chuẩn.
txwikinger

Khi bạn nói nó có tiền tố 0s trước khi gửi tệp, bạn có ý gì? Làm sao bạn biết? Bạn đang sao chép một nhị phân hoạt động (mà bạn có thể làm việc trên windows / mac) hoặc bạn đang sao chép một nhị phân được tạo trên máy Ubuntu của bạn? Những bước bạn đi qua để sao chép nhị phân trên? Bạn có cài đặt nào trong fstab cho thiết bị usb? Bạn đang làm nó với quyền root hay người dùng không có đặc quyền? Bạn có bấm và kéo, hoặc bạn đang sao chép tại dòng lệnh? Nếu có vấn đề với Ubuntu, các thiết bị thực thi và vfat tại sao nó không được biết đến nhiều hơn? Bạn nghĩ rằng có một tiêu chuẩn được công bố cho vfat?
A-mốt

Chúng tôi đã gửi cùng một nhị phân từ một cửa sổ, hệ điều hành mac và một số máy linux. Chúng tôi đã sao chép từ dòng lệnh, sao chép và quá khứ trong trình duyệt tệp cũng như kéo và thả. Lý do tại sao nó không được biết đến nhiều hơn, là vì hầu hết các thiết bị usb chịu được các số 0 này (tôi đoán chỉ cần bỏ chúng), tuy nhiên, vfat được triển khai trên lpc1343 không (theo tiêu chuẩn). Khi sử dụng mcopy từ mtools trong unix trên thiết bị khối, thay vì gắn vfat, tệp được truyền chính xác.
txwikinger

1
Bạn có nghĩa là nhị phân được đệm với số 0 không xác định khi bắt đầu không? Bạn dường như có một giải pháp hiệu quả cho vấn đề này, tại sao không đăng câu trả lời chi tiết hơn dưới đây để cho phép người khác chia sẻ kiến ​​thức này dễ dàng hơn. Tôi thấy từ việc theo liên kết trong hồ sơ của bạn rằng bạn đã có hơn 10 nghìn điểm đại diện từ các trang web SE khác nhau để bây giờ bạn biết máy khoan.
A-mốt

Câu trả lời:


3

bạn có thể giải quyết điều này bằng cách sử dụng mtools(tiện ích chất béo không gian người dùng):

mdel -i /dev/sdf ::/firmware.bin
mcopy -i /dev/sdf new_firmware.bin ::/

Đây là cách tôi luôn làm nó. Đó là một giải pháp tốt cho bộ tải khởi động kém bằng văn bản.
Jim Paris

tùy chọn -i và :: làm gì?
JulienFr

"Ký tự ổ đĩa: (dấu hai chấm) có một ý nghĩa đặc biệt. Nó được sử dụng để truy cập các tệp hình ảnh được chỉ định trực tiếp trên dòng lệnh bằng cách sử dụng các tùy chọn -i". Bạn có thể đọc về chúng trong hướng dẫn ở đây .
max taldykin

2

Một giải pháp khác là sử dụng tập lệnh python đơn giản từ kho lưu trữ git r0ket [1]. Nó ghi trực tiếp vào thiết bị thay vì sử dụng "cp". Tôi đã phải sửa đổi kích thước ở dòng 20 từ 32 thành 64 để làm việc với bảng thử nghiệm LPC1347 ...

Kịch bản có thể được tìm thấy ở đây .

[1] Bảng LPC1343

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.