RP Store Tìm linh kiện theo mã, gửi BOM nhận báo giá Gửi BOM

[PSOC] Beginner

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts

  • phuongdua
    replied
    Thanks bạn, mình làm dc rồi. Nhưng bạn ơi, bạn đã bao giờ viết code assembly trong Nios II chưa? Mình viết dc và debug Ok, nhưng tự nhiên giờ chỉ có thể debug step by step (quan sát thanh ghi từ từ), còn muốn run luôn 1 lần thì ......ko dc. Hay nói cách khác, mình mà nhấn "RUN" là nó chạy 1 lèo , và sau khi "run" xong thì mọi thanh ghi cũng "biến mất", làm mình chẳng quan sát dc kết quả gì cả

    Leave a comment:


  • it4rb
    replied
    Ủa, mình xài bình thường mà bạn, mình down mấy project trên mạng về, mở IDE ra, chọn switch workspace chỉ đến chỗ vừa down về, sau đó import ngay cái đó luôn, có bị sao đâu, bạn thử lại coi.

    Leave a comment:


  • phuongdua
    replied
    hic, workspace của mình ở ổ C, các project ở ổ D, và mọi chuyện đều tốt đẹp với các project dc tạo ra và không đổi (tên hay đường dẫn). bây giờ thì ko biết sao mà đem báo cáo với thầy đây, copy project qua usb rồi đưa vô máy trường thì làm sao mà Nios II ở máy trường nó biết cho dc

    Leave a comment:


  • it4rb
    replied
    Mình cũng bực mình cái IDE này nhất vụ open project đó. Bạn thử File/SwithWorkspace sang thư mục khác rồi import thử coi. À mà nếu ko còn mấy cái file dạng có dấu "." ở đầu tên file thì có thể ko mở dc đâu.

    Leave a comment:


  • phuongdua
    replied
    Thanks nhiều lắm.Sau này có gì lại mong các bạn cùng nhau giải đáp. hihi

    ---------------
    Hi, có 1 câu hỏi "rất chuối" nhưng mình phải hỏi. Giả sử làm xong, copy project của mình sang chỗ khác (sang máy khác hay sang thư mục khác chẳng hạn) thì làm sao mở project từ Nios II IDE . Vì hình như cái lệnh "open project" chỉ áp dụng cho project nào đang bị đóng nhưng vẫn "có mặt" trong cửa sổ "Nios C/C++ project". Còn project ko có sẵn trong cửa sổ đó thì sao (mới copy sang thì làm sao mà có trong Nios dc), mình cũng đã dùng lệnh "import " nhưng hình như tên project của mình mà lỡ trùng với cái nào đã có sẵn thì cũng ko dc( mà chuyện trùng tên project nhiều khả năng xảy ra, ví dụ như như khi bạn copy project từ D:\ sang E:\ , vậy thì chỉ có cái trong D là có sẵn trong "Nios C/C++ project", còn cái ở E thì phải import, nhưng nó ko cho vì tên project y chang nhau !!!)
    Last edited by phuongdua; 23-03-2010, 12:33.

    Leave a comment:


  • it4rb
    replied
    Ủa, mình nhớ là đâu có cần include nó đâu, IDE tự động nhận cái đó mà, bạn vô properties của hello_word, phần project reference xem đã check vào cái hello_word_sys_lib chưa.
    Còn cái base address thì theo mình hiểu ko phải là vùng nhớ trên ram mà là ko gian nhớ của con CPU, thể hiện nó chiếm địa chỉ bắt đầu từ đâu, bạn hình dung là con cpu trần trụi chưa có ngoại vi gì hết, sau đó bạn đem các cục ngoại vi ghép vô, giả sử cái onchipmem có 4k byte, tức là nó cần 4096 địa chỉ của cpu, bạn có thể gán 4096 địa chỉ này vào bất cứ chỗ nào bạn muốn, giả sử là từ 1024-5119 đi, khi đó thì 1024 chính là base adr, còn 4096 là range. Bạn có thể đọc thêm ở sách Vi xử lý của thầy Mỹ BKHCM, phần thếit kế hệ vxl.
    Cái #define mình bị sai, đúng là ko có ;

    Leave a comment:


  • phuongdua
    replied
    Mình đã tìm thấy , nhưng ko biết cách nào để include nó đây, chẳng lẽ copy nó vào thư mục hello_world?

    _Quay lại với khái niệm base address, mỗi thiết bị ngoại vi dc phân cho 1 vùng nhớ, vậy "vùng nhớ đó" ở đâu? nó là vùng nhớ dc cấp phát trên Ram on chip memory ( trong trường hợp này ) phải ko?

    Leave a comment:


  • it4rb
    replied
    Ý bạn là ko tìm thấy system.h?, bạn thử tìm trong cái hello_word_sys_lib, phần system_description xem,ở cây thư mục bên trái của Nios IDE ấy.

    Leave a comment:


  • phuongdua
    replied
    Thanks all. Cái lỗi trên thật ra mình giải quyết = 2 bước (do thiếu Ram thật )
    1. phải chuột lên Hello_World --> system library Properties--> check các ô "reduce C......" để thu gọn thư viện chương trình lại và ko tốn nhiều Ram
    2. sửa Ram (Memory on chip) lên 32 KB ( hồi trước theo Tut để 4KB, Tut nó xài Altera Monitor nên ko sao, còn mình xài Nios II IDE với project Hello_World khá nặng nên ko đủ. Hihi


    Thật ra mình biết viết C nhưng là do toàn viết C trên các trình biên dịch "bình thường" nên có đôi chút thắc mắc khi viết C kiểu này, mình thấy Led hay Switch trong vd trước đều có khai địa chỉ Base nên cứ nghĩ viết C trong đây ko dc tự tiện đặt biến .

    @ it4rb : trong code của bạn, dòng define đầu tiên theo mình phải là
    Code:
     #define  num_len 8
    (không chấm phẩy và ko có dấu "=" ??? Vì cũng khá lâu mình ko viết nên muốn check lại).Thanks

    _ Nhưng file system. h thì tới giờ trong vd trước mình cũng ko thấy đâu, biên dịch thành công nhưng chẳng thấy tăm hơi file này đâu cả, nên phải copy base address vào code C. Hic. Các bạn có ai biết vụ này là sao ko?
    Last edited by phuongdua; 23-03-2010, 18:38.

    Leave a comment:


  • it4rb
    replied
    Trong C thì bạn dùng một biến như thanh ghi thôi, chẳng hạn int i=01101110b (8bits), rồi cũng dùng các phép dịch bit và so sánh để đếm số bit 1, mình ghi tạm cái mã đây nhá:
    Code:
    #define num_len=8;   //số 8bits
    unsigned int num=15;
    int num_1=0;   //số bit 1
    
    for (i=0;i<num_len;i++)
    {
         if(num%2!=0)//bit ngoài cùng bên phải là 1
               num_1++;
         num=num>>1;
    }
    Chưa test nên ko biết đúng sai thế nào.
    Còn nếu bạn làm việc với các khối ngoại vi như thì có các hàm riêng, ví dụ như nếu bạn dùng uart để xuất lên console thì có thể khai báo stdout, stderr là uart, sau đó dùng các hàm printf bình thường, hoặc bạn muốn xuất nhập data ra/vào PIO thì dùng IOWR, IORD...Nói chung là bạn nên tìm 2 cuốn về Nios của Altera, hình như một cuốn là giới thiệu kiến trúc, còn cuốn kia là Software developer's handbook thì sẽ rõ hơn.
    Còn cái BASE_ADDRESS có phải là cái khi dùng SOPC builder bạn cho nó gán tự động ko? Nếu vậy thì bác Jeff trả lời rồi đó. Khi giao tiếp với ngoại vi dạng PIO bạn phải biết địa chỉ này (thường nằm trong system.h đối với Nios IDE) để dùng các hàm IOWR, IORD...

    Leave a comment:


  • jefflieu
    replied
    Mấy cái lỗi kia cuối cùng là bị gì?

    Leave a comment:


  • jefflieu
    replied
    C là ngôn ngữ cao hơn Assembly. Trong C, việc dùng thanh ghi nào được giao cho Compiler phụ trách. Trong C, người ta khai báo biến (variable) và sử dụng. Quan trọng nhất của biến là kiểu (datatype), quyết định biến này sẽ nằm trong bộ nhớ như thế nào.
    Ví dụ kiểu character, chiếm 1 byte, kiểu short: 2 byte, kiểu integer: 4 byte.
    .......
    Bạn tìm hiểu thêm về ngôn ngữ C trước... mình tin là trên internet có khá nhiều.
    Ngôn ngữ C cao hơn và hỗ trợ các construct gần gũi với thuật toán hơn: if else, while, for ... thay vì phải dùng Compare/Jump như trong assembly.
    ------

    Không chắc SYSTEM_BASE_ADDRESS của bạn nghĩa là gì. Có thể bạn thắc mắc cái này:
    Trong computer organization, một khái niệm quan trọng là Memory mapped peripheral, mỗi một ngoại vi được phân (allocate) cho một vùng nhớ gồm có BASE và RANGE. Trong khi thiết kế SOPC, bạn sẽ thấy mỗi ngoại vi được phân địa chỉ đầu và cuối (START ADDRESS và END ADDRESS). Khi CPU ghi vào vùng nhớ nào thì ngoại vi đó sẽ tự decode "ah, vùng nhớ này thuộc lãnh địa của mình" và lấy data trên bus.

    Leave a comment:


  • phuongdua
    replied
    chào bạn, mình đã sửa dc lỗi, bây giờ thì mình bắt tay vào làm lab "computer oganization" của Altera. Trong phần này, mình có thắc mắc :
    - core Nios khá đơn giản : cpu và ram (32K) và nothing.....more
    _Nhưng phần mềm: mình sẽ đếm số bit1 trong chuỗi bit 1 dài nhất
    vd : 1000011110011 --> Kq: 4
    _ Thắc mắc như sau: khi viết code = assembly(có sẵn và mình đọc hiểu) thì Ok. Nhưng cuối cùng đề có yêu cầu chuyển sang code C. Và mình lúng túng hẳn, trong Ass thì có thể làm việc với các thanh ghi r4,r7,..... Nhưng C thì sao, dùng biến nào để lưu trữ? v. v . Mong bạn chỉ giáo

    -Nếu có thể, bạn cho mình hỏi System Base Address là gì? Cái này gán tự động nhưng mình muốn biết thêm về nó. Thanks

    Leave a comment:


  • jefflieu
    replied
    Về system.h ... cách 1 bạn thử copy nó bỏ chung vô cùng 1 folder với file .c, cách 2 trong NIOS EDK --> Project --> Properties-->C++ Include path, add thư mục chứa file system.h vào.

    Về ModelSim, không biết tại sao không thấy file.v ... theo kinh nghiệm thì ModelSIM hơi user-unfriendly hay còn gọi là hơi ngu ... mình chưa mô phỏng verilog nên không chắc ... tạo project MODELSIM ngay trong cái thư mục chính thử để cho mấy file đó nằm cùng 1 chỗ.

    Leave a comment:


  • phuongdua
    replied
    bản web 9.1 có tích hợp thư viện IP, trong đó có Nios processor, tất cả bản Nios, Modelsim mình đều xài free theo altera cho version 9.1 , nên mình nghĩ là tương thích hoàn toàn
    _Nhưng dù sao, nếu ko dc, có thể mình sẽ cài lại bản quartus 7.2 *****, nhưng nếu cài lại bản này, mình sẽ ko có soft modelsim tương ứng ( mình từng down free từ trang modelsim nhưng ko bik vì lý do gì mà cài ko dc, nên mình mới chuyển qua down ở trang Altera). Nếu bạn có modelsim xài dc cho bản ***** Quartus 7.2 thì share mình, mình sẽ thử lại



    Nó báo kô mở dc các file ......., nhưng tất cả các file đó mình đã add cả vào project của quartus lẫn project của Modelsim hết rồi

    Trong Nios II, Mình cũng bik nó báo ko đủ RAM nhưng ko bik tại sao

    "2. Bạn coi lại các đường dẫn." ---> bạn nói rõ hơn đi
    Last edited by phuongdua; 20-03-2010, 11:42.

    Leave a comment:

Về tác giả

Collapse

phuongdua Tìm hiểu thêm về phuongdua

Bài viết mới nhất

Collapse

Đang tải...