để khởi động ADSP 2181.

S

sudhirkv

Guest
ADSP 2181 đang sử dụng trong thiết kế của tôi và tôi đã khởi động từ 2.181 ADSP Flash.Có ai có mã khởi động cho ADSP 2181.

Cảm ơn

Sudhir

 
Để tìm hiểu làm thế nào ADSP 2181 khởi động từ RAM ngoài hãy xem chương 9
/ tham khảo hướng dẫn sử dụng phần cứng của điện thoại (xem các tập tin đính kèm): nó mô tả các chức năng DMA và chuỗi các hoạt động để khởi động từ RAM bên ngoài bằng cách sử dụng cổng BDMA.

Kính trọng
Mowgli
Xin lỗi, nhưng bạn cần phải đăng nhập để xem tập tin đính kèm này

 
Tôi thấy rằng tài liệu.Tôi chỉ cần đăng ký khởi tạo BWCOUNT, BIAD và Beads.I có gì khác để làm.iam chỉ nhận được 32 BMS xung sau đó CMS là đến và nó được tiếp tục.i am cho đoạn code ở đây để tham khảo cho bạn.

/ * Chuẩn nạp (32 hướng dẫn) địa chỉ opcodes * /
ax0 = 0x0060; dm (0x3fe2) = ax0; / * BEADS * / / * 0x0000: 400.600 93FE20 * /
ax0 = 0x0020; dm (0x3fe1) = ax0; / * BIAD * / / * 0x0002: 400.200 93FE10 * /
ax0 = 0x0000; dm (0x3fe3) = ax0; / * CTRL * / / * 0x0004: 400.000 93FE30 * /
ax0 = 0x0087; dm (0x3fe4) = ax0; / * BWCOUNT * / / * 0x0006: 400.870 93FE40 * /
IFC = 0x0008; nop; / * BDMA IRQ * / / * 0x0008: 3C008C 000.000 * /
imask = 0x0008; / * 0x000A: 3C0083 * /
nhàn rỗi; / * 0x000B: 028.000 * /
jump 0x0020; nop; nop; nop; / * 0x000C: 18020F 000.000 ...* /
nop; nop; nop; nop; / * 0x0010: 000000 000000 ...* /
nop; nop; nop; nop; / * 0x0014: 000000 000000 ...* /
nop; nop; nop; nop; / * 0x0018: 000000 000000 ...* /
RTI; nop; nop; nop; / * 0x001C: 0A001F 000.000 ...* /sau khi xử lý này đi vào một nhà nước không rõ.

Do i có thể khởi tạo bất cứ điều gì khác cho hoạt động tốt.làm thế nào các tín hiệu cổng nối tiếp cần được cấu hình.tất cả các yếu tố đầu vào khác mà tôi có thể khởi tạo được những gì.

kính trọng
Sudhir

 
Tôi đã sử dụng đoạn mã sau đây để thực hiện việc khởi động của ADSP-2181.
Hy vọng điều này sẽ giúp bạn.

Mowgli# define BDMA_BIAD 0x3fe1
# define BDMA_BEAD 0x3fe2
# define BDMA_Ctrl 0x3fe3
# define BDMA_BWCOUNT 0x3fe4

AX0 = 0x0000; / * RESET BIAD * /
DM (BDMA_BIAD) = AX0;

AX0 = 0x0000; / * RESET Beads * /
DM (BDMA_BEAD) = AX0;

/*===============================================
[D15 .. D8] = 000.000.000 BMPAGE = 0
[D7 .. D4] = 0.000 không được sử dụng
[D3] = 1 BCR = 1
[D2] = 0 DIR = 0 đọc từ bộ nhớ Byte
[D1 .. D0] = 00 BTYPE = 00 lưu trữ dữ liệu trong PM
=================================================* /
AX0 = 0x0008;
DM (BDMA_Ctrl) = Ax0;
AX0 = 0x0020; / * 32 Words tiêu chuẩn bộ nạp từ ADI * /

DM (BDMA_BWCOUNT) = AX0; / * bắt đầu chuyển giao * /

GỌI WAIT_DMA;

ENDLESS_LOOP:
JUMP ENDLESS_LOOP;/*============================
Chờ cho kết thúc của DMA chuyển giao
=============================*/
WAIT_DMA:

AX0 = DM (BDMA_BWCOUNT);
AF = Pass AX0;
NẾU NE JUMP WAIT_DMA;

RTS;

 
i sẽ cố gắng này và lùi lại về uThêm vào sau khi 9 phút:sau khi nhận được 32 BMS xung bao nhiêu BMS xung u got.i đoán nó phụ thuộc vào số lượng cung cấp cho chúng tôi trong đăng ký BWCOUNT.Tôi gues sáng đúng.u đã có được điều đó.

 
Đáng tiếc là tôi không thể cho bạn biết điều này bởi vì đoạn code tôi gửi cho bạn được chiết xuất từ các tập tin nguồn của một dự án cũ, hiện nay tôi đã không khả năng phục hồi Ban chạy các dự án (nó đã được một hội đồng tuỳ cũ) để làm xét nghiệm bạn đang yêu cầu.

Kính trọng
Mowgli

 

Welcome to EDABoard.com

Sponsor

Back
Top