Bắt đầu với Git trong Vitis IDE
Việc sử dụng Git với IDE "Unified Vitis" mới, dựa trên VSCode, đặt ra những thách thức đặc biệt so với phiên bản dựa trên Eclipse cũ hơn. Trình hướng dẫn dự án nhập/xuất bị thiếu trong phiên bản mới nhất, gây khó khăn trong việc quản lý kiểm soát phiên bản một cách hiệu quả.
Hướng dẫn này nhằm giải quyết các vấn đề gặp phải khi sử dụng Git trong Vitis, bao gồm xử lý các tệp được tạo bằng đường dẫn tuyệt đối và đảm bảo cộng tác suôn sẻ trên các hệ thống phát triển khác nhau. Chúng ta sẽ khám phá quy trình làm việc thực tế để quản lý các dự án Vitis của bạn một cách hiệu quả bằng Git.
Yêu cầu | Sự miêu tả |
---|---|
import vitis | Nhập API Vitis để tương tác với các dự án Vitis theo chương trình. |
client.set_workspace() | Đặt thư mục không gian làm việc cho máy khách Vitis để quản lý các tệp dự án. |
client.create_platform_component() | Tạo một thành phần nền tảng mới trong không gian làm việc Vitis bằng cách sử dụng các tham số hệ điều hành và phần cứng được chỉ định. |
platform.build() | Kích hoạt quá trình xây dựng cho thành phần nền tảng được chỉ định trong Vitis. |
client.create_app_component() | Tạo thành phần ứng dụng mới được liên kết với thành phần nền tảng được chỉ định trong Vitis. |
comp.import_files() | Nhập các tệp cần thiết từ thư mục nguồn vào thành phần ứng dụng Vitis. |
os.makedirs() | Tạo cấu trúc thư mục được chỉ định, bao gồm mọi thư mục mẹ cần thiết. |
vitis -s tools/build_app.py | Chạy tập lệnh Python được chỉ định bằng giao diện dòng lệnh Vitis để thiết lập dự án. |
echo "build-vitis/" >>echo "build-vitis/" >> .gitignore | Thêm thư mục bản dựng vào tệp bỏ qua Git để loại trừ nó khỏi kiểm soát phiên bản. |
git commit -m | Cam kết các thay đổi theo giai đoạn đối với kho lưu trữ Git cục bộ bằng thông báo cam kết được chỉ định. |
Giải thích về tập lệnh tự động hóa Vitis
Tập lệnh đầu tiên tự động hóa việc thiết lập dự án Vitis bằng Python. Nó bắt đầu bằng cách nhập các mô-đun cần thiết, cụ thể là vitis Và os. Sau đó, nó xác định đường dẫn gốc và tạo thư mục bản dựng nếu nó không tồn tại bằng cách sử dụng os.makedirs(). Tập lệnh thiết lập các đường dẫn dự kiến cho tệp XSA và thư mục nguồn chính. Tiếp theo, nó tạo một ứng dụng khách Vitis và đặt không gian làm việc vào thư mục bản dựng mới được tạo. Thành phần nền tảng được tạo bằng client.create_platform_component(), chỉ định cấu hình phần cứng, hệ điều hành và CPU. Sau khi thành phần nền tảng được xây dựng, thành phần ứng dụng sẽ được tạo và liên kết với thành phần nền tảng. Cuối cùng, các tệp cần thiết sẽ được nhập vào dự án Vitis và thành phần này sẽ được xây dựng.
Tập lệnh thứ hai là tập lệnh shell khởi tạo dự án Vitis và thiết lập tích hợp Git. Nó xác định đường dẫn gốc và thư mục xây dựng, tạo thư mục nếu nó không tồn tại. Tập lệnh sau đó chạy tập lệnh Python bằng cách sử dụng vitis -s tools/build_app.py để tự động hóa việc thiết lập dự án. Sau khi tập lệnh Python chạy, tập lệnh shell sẽ thiết lập kho lưu trữ Git bằng cách điều hướng đến thư mục gốc, khởi tạo Git bằng git initvà thêm thư mục bản dựng vào .gitignore tài liệu. Nó sắp xếp các tập tin có liên quan với git add và cam kết chúng vào kho lưu trữ với số 8. Cách tiếp cận này đảm bảo rằng các thư mục bản dựng được loại trừ khỏi việc kiểm soát phiên bản trong khi vẫn theo dõi các tệp dự án cần thiết.
Tự động thiết lập dự án Vitis bằng Python
Tập lệnh Python để xử lý thiết lập dự án Vitis và tích hợp Git
import vitis
import os
ROOT_PATH = os.path.abspath(os.path.dirname(__file__))
VITIS_BUILD_DIR_PATH = os.path.join(ROOT_PATH, "build-vitis")
os.makedirs(VITIS_BUILD_DIR_PATH, exist_ok=True)
EXPECTED_XSA_FILE_PATH = os.path.join(ROOT_PATH, "build-vivado", "mydesign.xsa")
COMPONENT_NAME = "MyComponent"
MAIN_SRC_PATH = os.path.join(ROOT_PATH, "src")
client = vitis.create_client()
client.set_workspace(path=VITIS_BUILD_DIR_PATH)
PLATFORM_NAME = "platform_baremetal"
platform = client.create_platform_component(
name=PLATFORM_NAME,
hw=EXPECTED_XSA_FILE_PATH,
os="standalone",
cpu="mycpu"
)
platform = client.get_platform_component(name=PLATFORM_NAME)
status = platform.build()
comp = client.create_app_component(
name=COMPONENT_NAME,
platform=os.path.join(VITIS_BUILD_DIR_PATH, PLATFORM_NAME, "export", PLATFORM_NAME, f"{PLATFORM_NAME}.xpfm"),
domain="mydomainname"
)
comp = client.get_component(name=COMPONENT_NAME)
status = comp.import_files(
from_loc=MAIN_SRC_PATH,
files=["CMakeLists.txt", "UserConfig.cmake", "lscript.ld", "NOTUSED.cpp"],
dest_dir_in_cmp="src"
)
comp.build()
Quản lý kiểm soát nguồn trong dự án Vitis
Tập lệnh Shell để hợp lý hóa việc khởi tạo và kiểm soát nguồn dự án Vitis
#!/bin/bash
ROOT_PATH=$(pwd)
VITIS_BUILD_DIR_PATH="$ROOT_PATH/build-vitis"
mkdir -p "$VITIS_BUILD_DIR_PATH"
EXPECTED_XSA_FILE_PATH="$ROOT_PATH/build-vivado/mydesign.xsa"
COMPONENT_NAME="MyComponent"
MAIN_SRC_PATH="$ROOT_PATH/src"
vitis -s tools/build_app.py
# After running the Python script, set up Git repository
cd "$ROOT_PATH"
git init
echo "build-vitis/" >> .gitignore
echo "build-vivado/" >> .gitignore
git add src/ tools/ .gitignore
git commit -m "Initial commit with project structure and scripts"
# Script end
Tìm hiểu Vitis IDE và kiểm soát phiên bản
Một khía cạnh của việc sử dụng IDE "Unified Vitis" mới với Git liên quan đến việc hiểu cấu trúc và các thành phần của dự án Vitis. Vitis IDE tạo ra nhiều tệp, nhiều tệp có đường dẫn tuyệt đối, điều này làm phức tạp việc kiểm soát phiên bản. Các tệp này bao gồm cấu hình nền tảng, mô tả phần cứng và siêu dữ liệu dành riêng cho IDE. Khi các tệp này được kiểm soát theo phiên bản mà không được xử lý thích hợp, nhà phát triển có thể gặp phải các vấn đề như lỗi xây dựng do đường dẫn không khớp trên các hệ thống khác nhau.
Để giảm thiểu những vấn đề này, một phương pháp phổ biến là loại trừ các thư mục do Vitis quản lý khỏi kiểm soát phiên bản. Thay vào đó, các tệp cấu hình quan trọng như tập lệnh liên kết, tệp CMake và các tệp dự án thiết yếu khác được sao chép thủ công vào các vị trí thích hợp mà Vitis mong đợi. Cách tiếp cận này đảm bảo rằng chỉ những tệp cần thiết mới được kiểm soát phiên bản, giảm nguy cơ xung đột và lỗi khi cộng tác với các nhà phát triển khác. Ngoài ra, việc sử dụng các tập lệnh tự động hóa như Python hoặc tập lệnh shell có thể hợp lý hóa quy trình này, đảm bảo rằng việc thiết lập dự án và quản lý tệp nhất quán và có thể tái tạo.
Các câu hỏi và giải pháp phổ biến khi sử dụng Git với Vitis IDE
- Làm cách nào để khởi tạo kho lưu trữ Git cho dự án Vitis?
- Bạn có thể khởi tạo kho lưu trữ Git bằng cách điều hướng đến thư mục gốc của dự án và chạy git init. Thêm các tập tin cần thiết vào .gitignore để loại trừ các tập tin không mong muốn.
- Những tập tin nào nên được bao gồm trong .gitignore cho dự án Vitis?
- Bao gồm các thư mục dành riêng cho IDE như build-vitis/ Và build-vivado/ để tránh các tệp được tạo tự động kiểm soát phiên bản.
- Làm cách nào tôi có thể tự động hóa quá trình thiết lập dự án Vitis?
- Sử dụng tập lệnh Python để tự động hóa các tác vụ như tạo các thành phần nền tảng và nhập các tệp cần thiết. Chạy tập lệnh bằng cách sử dụng vitis -s tools/build_app.py.
- Tại sao tôi cần sao chép tập tin cấu hình theo cách thủ công?
- Vitis yêu cầu một số tệp cấu hình nhất định sẽ nằm ở các vị trí cụ thể. Việc sao chép các tệp này theo cách thủ công hoặc thông qua tập lệnh sẽ đảm bảo rằng IDE tìm thấy chúng một cách chính xác.
- Làm cách nào để xử lý các thư mục nền tảng và ứng dụng trong Vitis?
- Loại trừ các thư mục này khỏi kiểm soát phiên bản và sử dụng tập lệnh để quản lý các tệp cần thiết, đảm bảo tính nhất quán và tránh xung đột đường dẫn.
- Tôi có thể chỉnh sửa tệp nguồn trực tiếp trong Vitis khi sử dụng Git không?
- Có, nhưng hãy đảm bảo rằng thiết lập CMake của bạn trỏ đến đúng thư mục nguồn. Vitis có thể không nhận ra chính xác các thành phần và tên để đánh dấu cú pháp.
- Lợi ích của việc sử dụng tập lệnh để thiết lập dự án là gì?
- Tập lệnh đảm bảo thiết lập dự án nhất quán và có thể lặp lại, giảm lỗi thủ công và đơn giản hóa việc cộng tác trên các môi trường khác nhau.
- Làm cách nào tôi có thể cập nhật thiết lập dự án của mình nếu có thay đổi?
- Sửa đổi tập lệnh tự động hóa của bạn để phản ánh những thay đổi và chạy lại chúng. Điều này đảm bảo rằng tất cả các bản cập nhật cần thiết được áp dụng chính xác.
- Tôi nên làm gì nếu gặp phải lỗi xây dựng do vấn đề về đường dẫn?
- Kiểm tra tập lệnh thiết lập dự án của bạn và đảm bảo rằng tất cả các đường dẫn đều được chỉ định chính xác. Sử dụng đường dẫn tương đối nếu có thể để tránh xung đột.
Những điểm chính để kiểm soát phiên bản hiệu quả trong Vitis IDE
Việc triển khai kiểm soát phiên bản bằng Unified Vitis IDE mới bao gồm một số bước quan trọng. Bắt đầu bằng cách loại trừ các thư mục do Vitis tạo ra khỏi kiểm soát phiên bản để tránh xung đột và lỗi. Thay vào đó, hãy tập trung vào việc theo dõi các tệp cấu hình thiết yếu như tập lệnh liên kết, tệp CMake và các thành phần quan trọng khác của dự án. Các tập lệnh tự động hóa, đặc biệt là các tập lệnh được viết bằng Python, có thể hợp lý hóa đáng kể quy trình này bằng cách tự động hóa việc thiết lập dự án và đảm bảo tất cả các tệp cần thiết đều ở đúng vị trí.
Bằng cách tự động hóa quá trình thiết lập, bạn có thể đảm bảo môi trường phát triển nhất quán trên các hệ thống khác nhau, giảm khả năng xảy ra các sự cố liên quan đến đường dẫn. Cách tiếp cận này không chỉ đơn giản hóa việc quản lý dự án mà còn tạo điều kiện cho sự cộng tác suôn sẻ hơn giữa các nhà phát triển. Ngoài ra, việc giữ các tệp nguồn trong thư mục gốc và sử dụng CMake để trỏ đến các thư mục này cho phép chỉnh sửa và kiểm soát phiên bản dễ dàng hơn, đồng thời tránh sự phức tạp khi xử lý cấu trúc tệp nội bộ của Vitis.
Kết thúc quy trình làm việc cho Vitis và Git
Việc tích hợp Git với Unified Vitis IDE đòi hỏi một cách tiếp cận chiến lược để quản lý việc kiểm soát phiên bản một cách hiệu quả. Bằng cách loại trừ các thư mục do Vitis quản lý và tập trung vào các tệp cấu hình thiết yếu, nhà phát triển có thể tránh được những cạm bẫy phổ biến liên quan đến đường dẫn tuyệt đối và siêu dữ liệu dành riêng cho IDE. Các tập lệnh tự động hóa nâng cao hơn nữa quá trình này bằng cách cung cấp thiết lập dự án nhất quán và có thể lặp lại. Những chiến lược này đảm bảo rằng các dự án Vitis vẫn có thể quản lý và hợp tác, ngay cả trong môi trường phát triển phức tạp.