Thông báo

Collapse
No announcement yet.

[TUT] Cấu hình Jlink để Nạp và Debug dòng ARM với Keil RealView MDK

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • [TUT] Cấu hình Jlink để Nạp và Debug dòng ARM với Keil RealView MDK

    J-Link là một mạch nạp/debug cực mạnh cho dòng ARM7/9 và CortexM3 được sản xuất bởi hãng Segger.


    Một số ưu điểm của Jlink:
    - Jlink kết nối qua cổng USB2.0, tương thích Windows 2000/XP/Vista.
    - Làm việc tốt với các dòng ARM7/9 Cortex M3.
    - JTAG speed lên tới 12 MHz.
    - Chuẩn kết nối JTAG 20pin phổ biến.
    - Đặc biệt, Jlink tương thích với nhiều trình biên dịch ARM như ADS, KeilRealView ARM, IAR...

    Jlink chính hãng khá đắt tiền, do đó nó ít phổ biến ở VN. Tuy nhiên hiện tại, đã có các sản phẩm Clone phiên bản JlinkV7 với giá rất phải chăng xuất hiện. Hứa hẹn đây sẽ là công cụ tốt nhất để làm việc với các dòng ARM.
    Bài viết này mô tả chi tiết cách thức nạp và debug chíp AT91SAM7S256 bằng một mạch nạp Jlink Clone, sử dụng trình biên dịch Keil RealView ARM. Các chíp khác có phương pháp sử dụng hoàn toàn tương tự.

    Hardware:


    Phần mềm cần sử dụng:
    - Keil RealView MDK phiên bản 3.20 (download phiên bản trial mới nhất tại tại https://www.keil.com/arm/demo/eval/arm.htm)
    - Jlink Software (tải tại đây: http://www.segger.com/download_jlink.html)

    Cài đặt:
    - Keil Real View MDK cài đặt hoàn toàn đơn giản, bản trial có một vài giới hạn (xem tại đây) nhưng nói chung không ảnh hưởng nhiều.

    - Jlink Software cần phải được cài đặt trước khi kết nối mạch nạp J-Link với máy tính, phần mềm làm nhiệm vụ cung cấp Driver và các tệp tin cần thiết để các Compiler như Keil có thể kết nối tốt với mạch nạp Jlink.

    Khi sau khi cài đặt Jlink Software, kết nối mạch Jlink với máy tính, hệ thống sẽ tự động cài đặt Driver cho thiết bị.
    Khởi động Jlink Commander, nếu nhận thấy firmware trong Jlink cũ hơn phiên bản hiện tại, JLink Commander sẽ tự động update firmware:


    Nếu đã kết nối Jlink với Board AT91SAM7S256, Jlink Commander sẽ báo tìm thấy ARM7 đồng thời đo điện áp Vcc của Board AT91SAM7S256.



    Tắt Jlink Commander, mở Keil Real View MDK, ở đây ta sử dụng một ví dụ demo sẵn có là Led Blinker.
    Vào Option for Target của Project. Trong Tab Debug chọn J-LINK/J-TRACE:



    Chọn tương tự trong Tab Utilities:



    Một bước quan trọng là thiết lập cấu hình sử dụng cho Jlink, tại Tab Utilities, bấm Setting, ta có hộp thoại Flash Download Setup:



    Click vào nút Add để hiện hộp thoại Add Flash Programming Algorithm:



    Trong hộp thoại này là danh sách các loại Flash (bao gồm cả on-chip và ext. Flash) được hỗ trợ bởi Keil. Chọn AT91SAM7 256k Flash, bấm Add.
    Cấu hình lại một số thông số cho giống với hình dưới:



    Nhấn Ok và quay trở lại Project, tiến hành biên dịch sau đó vào Menu Flash->Download để nạp chương trình xuống chíp. Thông báo sau cho biết quá trình nạp đã thành công:



    Sau khi nạp, có thể nhấn Ctrl-F5 để vào môi trường Debug.

    Chi tiết hơn về ý nghĩa các thông số và phương thức Debug cụ thể sẽ được cập nhật trong các bài viết tiếp theo.....

    PNLab
    Mạch nạp/debug ULink2, Jlink ARM USB
    Mạch nạp AVR, PIC, 8051, MSP430 USB
    Mạch phát triển STM32, ARM9, ARM11
    more...www.pnlabvn.com

  • #2
    chúc mừng Pnlab,
    Theo hình thì có vẻ là Jlink đã chạy OK trên Keil RealView. Bác có thể test thêm chức năng như : debug với break point thì có OK ko hay số break point mà Jlink này hỗ trợ, ... ?.

    Comment


    • #3
      Dùng Keil với Jlink xem ra có vẻ ko phải là tốt nhất, vì khi cài đặt Jlink Software, nó không tìm thấy dll Jlink của Keil mà chỉ tìm thấy dll của IAR và nó cũng chỉ update dll cho IAR, Keil phải update thủ công. Em gửi mạch cho anh rồi anh thử với IAR nhé. Em ko chuyên IAR nên chỉ test được ở mức cơ bản thôi.
      PNLab
      Mạch nạp/debug ULink2, Jlink ARM USB
      Mạch nạp AVR, PIC, 8051, MSP430 USB
      Mạch phát triển STM32, ARM9, ARM11
      more...www.pnlabvn.com

      Comment


      • #4
        Nguyên văn bởi sphinx Xem bài viết
        Dùng Keil với Jlink xem ra có vẻ ko phải là tốt nhất, vì khi cài đặt Jlink Software, nó không tìm thấy dll Jlink của Keil mà chỉ tìm thấy dll của IAR và nó cũng chỉ update dll cho IAR, Keil phải update thủ công. Em gửi mạch cho anh rồi anh thử với IAR nhé. Em ko chuyên IAR nên chỉ test được ở mức cơ bản thôi.
        cái này là tại vì khi mình cài đặt IAR thì nó đã cài luôn cái file JLinkARM.dll vào sẵn rồi, khi cài segger thì nó update lại file dll này lên latest version thôi (chắc là vì bọn IAR và segger nó thích chơi với nhau ). Còn thằng Keil RealView thì nó chưa cài sẵn thôi. chứ anh em nào xài Keil RealView thì cứ an tâm.

        Comment


        • #5
          Bản Keil RealView 3.50 đã update dll đến Version 4.03r, bản mới nhất hiện tại là 4.04.
          Xem release note của Keil thì mấy phần này vẫn còn cập nhật thường xuyên lắm (cho Jlink và Ulink), tốt nhất là thường xuyên update bản mới nhất
          PNLab
          Mạch nạp/debug ULink2, Jlink ARM USB
          Mạch nạp AVR, PIC, 8051, MSP430 USB
          Mạch phát triển STM32, ARM9, ARM11
          more...www.pnlabvn.com

          Comment


          • #6
            chứng tỏ bọn Keil RealView cũng chạy đua "vũ trang" rất dữ đấy chứ.

            Comment


            • #7
              Nguyên văn bởi thavali Xem bài viết
              chứng tỏ bọn Keil RealView cũng chạy đua "vũ trang" rất dữ đấy chứ.
              Cứ vài tháng là nó đã cho ra một bản mới!

              báo cáo là đã debug ngon lành trên Keil RealView 3.50 Trial, em mới thử đặt vài Breakpoint, không có vấn đề gì.
              Attached Files
              PNLab
              Mạch nạp/debug ULink2, Jlink ARM USB
              Mạch nạp AVR, PIC, 8051, MSP430 USB
              Mạch phát triển STM32, ARM9, ARM11
              more...www.pnlabvn.com

              Comment


              • #8
                vừa nhận xong board của bác là tui test liền, nhưng ko hiểu sao (có lẽ do máy tính) mà việc connect thành công với j-link ko ổn định, lúc được lúc ko (đèn chớp liên tục, PC báo ko nhận ra USB, đương nhiên là drive và các thứ liên quan đã setup xong). Khi đem lên máy cty thì ko bị lỗi này .

                Trong trường hợp connect được rồi thì lại bị error liên quan đến connect với jtag (tức ko thể connect giữa j-link với board ARM7, (hình), lỗi này hiện chưa test trên máy cty nên chưa biết ra sao.

                Hiện tại thì chỉ mới test sơ bộ, những lỗi trên có thể do PC, để ngày mai tui đem board lên cty test lại xem sao.

                Thân
                Attached Files
                Last edited by thavali; 11-05-2009, 11:52.

                Comment


                • #9
                  Chào bạn Sphinx, cái Evaluation kit của bạn, theo như quảng cáo, thì có thể nạp trực tiếp từ laptop qua RS232toUSB port được mờ, tại sao phải dùng thêm J-Link như ở ảnh chụp?

                  Comment


                  • #10
                    Chức mừng PNLab. cho hỏi jlink có dùng được với realview development suite ko nhỉ?

                    Comment


                    • #11
                      Nguyên văn bởi Viet Vinh Xem bài viết
                      Chào bạn Sphinx, cái Evaluation kit của bạn, theo như quảng cáo, thì có thể nạp trực tiếp từ laptop qua RS232toUSB port được mờ, tại sao phải dùng thêm J-Link như ở ảnh chụp?
                      Cái AT91SAM7 KIT có thể nạp trực tiếp qua cổng USB2.0 nhờ bootloader có sẵn trong chíp. Tuy nhiên khi bạn làm việc với ARM, sẽ thấy độ phức tạp của nó đòi hỏi phải có chức năng debug giúp gỡ lỗi cũng như tránh được các bug trong quá trình code mã. Bootloader chỉ để nạp chương trình xuống Flash chứ không hỗ trợ debug.

                      Ngoài ra có nhiều loại ARM khác không có sẵn bootloader nên chỉ có thể lập trình Flash thông qua kết nối chuẩn JTAG.
                      PNLab
                      Mạch nạp/debug ULink2, Jlink ARM USB
                      Mạch nạp AVR, PIC, 8051, MSP430 USB
                      Mạch phát triển STM32, ARM9, ARM11
                      more...www.pnlabvn.com

                      Comment


                      • #12
                        nói chung thì để nạp flash ta chỉ cần wiggler jtag là OK rồi, J-link chủ yếu là cho real time debug

                        Comment


                        • #13
                          Nguyên văn bởi nguyenvandai Xem bài viết
                          Chức mừng PNLab. cho hỏi jlink có dùng được với realview development suite ko nhỉ?
                          Có hỗ trợ bạn ạ, nhưng chỉ từ bản 3.0 trở xuống, từ 3.1 RVDS bỏ RDI nên ko dùng được nữa:
                          http://www.segger.com/jlink_arm_software_rdi.html

                          J-Link RDI can be used with any RDI-compliant debuggers. In the following all RDI compliant debuggers which have been tested with J-Link RDI are listed.
                          • ARM® Developer Suite™ (ADS)
                          • ARM® RealView® Development Suite (RVDS) V3.0 (Since RVDS 3.1 removed RDI support, J-Link RDI will not work with RVDS 3.1)
                          • IAR Embedded Workbench for ARM (EWARM)
                          • RealView® Microcontroller Development Kit (Keil MDK)
                          PNLab
                          Mạch nạp/debug ULink2, Jlink ARM USB
                          Mạch nạp AVR, PIC, 8051, MSP430 USB
                          Mạch phát triển STM32, ARM9, ARM11
                          more...www.pnlabvn.com

                          Comment


                          • #14
                            sau khi test lại, thì lỗi ko còn nữa, nguyên do là drive ko tốt, lúc trước cài bản J-Link ARM V4.04 nên đã bị lỗi, sau khi chuyển sang cài lại J-Link ARM V4.04a thì việc connect là OK. cảm nhận đầu tiên là tốc độ, so với wiggler là một trời một vực, file demo của bác sphinx được nạp chỉ trong 0.5 s (dùng J-Flash ARM). đặt biệt khi xài với IAR rất cool, ko phát sinh vấn đề gì cả, tốc độ debug rất real time lên tới 8M , riêng phần watchpoint thì chưa test.
                            Test với RealView thì bị lỗi là : no algorithm to found for : 0x0200000 to 0x02001B3.
                            mặc dù đã add algorithm, nhưng lỗi này ko do j-link

                            Comment


                            • #15
                              Với Jlink thì firmware phải tương ứng với version của phần mềm, mỗi lần cập nhật phần mềm thì firmware cũng được cập nhật theo, hiện tại phiên bản phần mềm mới nhất là 4.04a, phiên bản beta mới nhất là V4.05d
                              PNLab
                              Mạch nạp/debug ULink2, Jlink ARM USB
                              Mạch nạp AVR, PIC, 8051, MSP430 USB
                              Mạch phát triển STM32, ARM9, ARM11
                              more...www.pnlabvn.com

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X