Làm thế nào tôi có thể sử dụng avrsim để mô phỏng Arduino?


7

Tôi tìm thấy trình giả lập avr mã nguồn mở rất đẹp ( cái này .) Vì có mô phỏng uart được triển khai nên nó có thể mô phỏng Arduino.

Tôi có một số vấn đề với ví dụ "board_simduino".

Tôi nối các đèn led ảo vào cổng B (chân 8-13) - http://gitorious.org/~viroos/simavr/viroos-simduino-simavr/commit/bfaeac1e61f1d6678b3daab7fede9a783d01c098 , và chúng hoạt động.

Nhưng kết nối nối tiếp có vẻ bị hỏng. Tôi có thể tải lên bản phác thảo (tôi đã thêm vào ,link=/dev/ttyUSB0lệnh socat cho điều đó), nhưng sau đó giao tiếp đó ngừng hoạt động. Ví dụ: tôi có thể tải lên bản phác thảo "pixel vật lý" nhưng tôi không thể bật đèn led. Tôi đã cố gắng kết nối bằng cách sử dụng màn hình nối tiếp trong buily trong IDE và từ pySerial. Có vẻ như khen ngợi đang bị bỏ qua.

Cũng trong bản phác thảo "nháy mắt" trong vòng lặp chính:

void loop()
{
 digitalWrite(ledPin, HIGH);   // set the LED on
 delay(1000);                  // wait for a second
 digitalWrite(ledPin, LOW);    // set the LED off
 delay(1000);                  // wait for a second
}"

Tôi phải loại bỏ delay(1000);lệnh vì họ treo trình giả lập.

Tôi sẽ đánh giá cao bất kỳ sự giúp đỡ. Hình thức quan trọng nhất đối với tôi bây giờ là sửa lỗi uart (chạy phác thảo "pixel vật lý".)

Câu trả lời:


2

Mặc dù tôi đã không sử dụng một trình giả lập phần cứng trong một thời gian, nó nghĩ những gì đang xảy ra là như thế này.

Mỗi chu kỳ xung nhịp của AVR được mô phỏng theo nhiều chu kỳ xung nhịp trên PC chủ. Do đó thời gian trên AVR mô phỏng đang chạy chậm hơn thời gian thực. Điều này có thể giải thích tại sao vòng lặp trễ sẽ xuất hiện để treo trình giả lập AVR.

Một kịch bản tương tự có thể là trường hợp với cổng nối tiếp.

Cá nhân, tôi không chắc bộ xử lý mô phỏng hiện đại với bộ nhớ flash có hiệu quả hay không vì chỉ cần tải chương trình vào hệ thống và "để nó chạy" nhanh hơn để xem điều gì sẽ xảy ra.

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.