Nếu đây là lần đầu tiên đến với Điện Tử Việt Nam, bạn có thể đọc phần Hỏi đáp bằng cách nhấn vào liên kết. Có thể bạn cần đăng kí trước khi có thể gửi bài . Để bắt đầu xem bài viết, chọn diễn đàn bạn muốn thăm dưới đây.
uCLinux vốn không phải hệ điều hành nhúng, cũng chẳng phải thời gian thực. Nhúng hay không, thời gian thực hay không phụ thuộc vào người đặt cấu hình cho nó.
Một hệ điều hành dùng để làm gì ? Tại sao lại phải cài trên một hệ điều hành khác ?
em xin được hỏi bác bqviet nếu vậy uclinux có thể là một DISTRIBUTION giống như ubuntu nhỉ?
hay nó cũng chỉ kiểu như 1 ứng dụng được cài trên HDH đẻ phục vụ cho 1 mục đích nào đó?
nói thật là em còn rất mù mờ về mấy cái HDH nên không có cái nhìn rõ ràng.
Nó chỉ là một cái nhân (lõi) hệ điều hành, không phải là một bản phân phối đầy đủ. uCLinux chính là lõi Linux, nhưng có một số thành phần được viết lại. Tham khảo tiếp tại đây http://www.uclinux.org/
Bản phân phối Linux nào cũng có thể dùng phát triển hệ thống nhúng được. Nếu bạn dùng công cụ thương mại, bạn nên dùng bản phân phối Linux được cái hãng sản xuất công cụ đó hỗ trợ. Thông dụng vẫn là RedHat, Debian và (có thể) SUSE, Slackware. Công cụ của cộng đồng thường hỗ trợ thêm Ubuntu và Mandriva.
uCLinux =linux + uClibC (thư viện nhỏ hơn glibc)
vô impactlinux.com của Rob Landley
anh ta tạo đầy uclinux cho đủ mọi cpu khác nhau !
(trạm độc nhất có nhiều linux_cpusex khác nhau )
Tất cả có thể chạy trên qemu với bất kỳ distro nào !
Bác bqviet cho em hỏi một chút. Tình hình là em đang sử dụng một board Blackfin BF537-Stamp để ngâm cứu uClinux, vấn đề là các source code của uClinux-dist mà em down trên trang http://blackfin.uclinux.org lúc biên dịch lại và nạp vào mạch thì không có phiên bản nào chạy được (kể cả lúc biên dịch ở chế độ default). Quá trình biên dịch em làm chính xác như hướng dẫn trên trang hướng dẫn http://docs.blackfin.uclinux.org rồi mà vẫn không được mặc dù em đã thử đặt lại các lựa chọn biên dịch khác nhau, nếu lựa chọn là mặc định thì biên dịch được nhưng lúc chạy bị treo lúc gần khởi động xong, còn nếu để khác chế độ mặc định thì lúc biên dịch báo lỗi tùm lum. Điều khiến em băn khoăn là nếu sử dụng các file Image hoặc file FLAT đã biên dịch sẵn (bản 2008 trở về trước) nạp vào thì lại chạy ngon lành, còn phiên bản 2009 trở về sau thì nạp vào cũng không chạy được (cả U-boot cũng thế). Bác có nhiều kinh nghiệm về vấn đề này nên nhờ bác hướng dẫn cho em một chút, chẳng hạn như những lựa chọn nào là cần thiết và lựa chọn nào thì không cần thiết? gõ lệnh "make xconfig" là nó hiện ra cả một rừng lựa chọn mà giải thích lại hết sức sơ lược, em lại mới bắt đầu tập tọe nên em cũng không chắc là lựa chọn đúng hay không :-(
Ngoài ra, trong quá trình tìm hiểu lại có một số điều chưa hiểu được, nhờ bác giải thích hộ em với:
1. Giả sử lúc mình nạp file ảnh của uClinux vào tại địa chỉ 0x1000000 thì khi chạy nó hiện ra như sau:
## Booting kernel from Legacy Image at 1000000 ...
Image Name: uClinux Kernel Image
Created: 2005-09-30 3:03:16 UTC
Image Type: Blackfin Linux Kernel Image (gzip compressed)
Data Size: 1429678 Bytes = 1.4 MB
Load Address: 00001000
Entry Point: 00042000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
Bác giải thích hộ em tại sao cả hai địa chỉ 0x1000000 và 0x1000 đều thuộc vùng RAM mà chương trình lại không bắt đầu tại địa chỉ 0x1000000 ? Thứ hai là địa chỉ "Entry point" 0x42000 ở đây có ý nghĩa gì? Chương trình sẽ có gì khác biệt nếu ta để Entry Point là 0x1000 ?
2. Nếu muốn chạy một chương trình ứng dụng, theo hướng dẫn thì sau khi build ứng dụng xong thì copy vào thư mục "romfs" của uClinux-dist rồi build lại, rồi lại nạp lại. Tại sao lại phải thế? Nếu em tìm cách copy file ứng dụng đã biên dịch ấy vào một thư mục nào đó trong uClinux đang chạy trên board thì có chạy được không? (như kiểu mình chạy ứng dụng trong Windows ý)
Hì, tìm hiểu linux embedded này mới biết cũng không ngon ăn lắm, nhưng dù sao cũng phải cố gắng. Rất mong được bác chỉ bảo thêm. Cảm ơn bác
Bác bqviet cho em hỏi một chút. Tình hình là em đang sử dụng một board Blackfin BF537-Stamp để ngâm cứu uClinux, vấn đề là các source code của uClinux-dist mà em down trên trang http://blackfin.uclinux.org lúc biên dịch lại và nạp vào mạch thì không có phiên bản nào chạy được (kể cả lúc biên dịch ở chế độ default). Quá trình biên dịch em làm chính xác như hướng dẫn trên trang hướng dẫn http://docs.blackfin.uclinux.org rồi mà vẫn không được mặc dù em đã thử đặt lại các lựa chọn biên dịch khác nhau, nếu lựa chọn là mặc định thì biên dịch được nhưng lúc chạy bị treo lúc gần khởi động xong, còn nếu để khác chế độ mặc định thì lúc biên dịch báo lỗi tùm lum. Điều khiến em băn khoăn là nếu sử dụng các file Image hoặc file FLAT đã biên dịch sẵn (bản 2008 trở về trước) nạp vào thì lại chạy ngon lành, còn phiên bản 2009 trở về sau thì nạp vào cũng không chạy được (cả U-boot cũng thế). Bác có nhiều kinh nghiệm về vấn đề này nên nhờ bác hướng dẫn cho em một chút, chẳng hạn như những lựa chọn nào là cần thiết và lựa chọn nào thì không cần thiết? gõ lệnh "make xconfig" là nó hiện ra cả một rừng lựa chọn mà giải thích lại hết sức sơ lược, em lại mới bắt đầu tập tọe nên em cũng không chắc là lựa chọn đúng hay không :-(
Ngoài ra, trong quá trình tìm hiểu lại có một số điều chưa hiểu được, nhờ bác giải thích hộ em với:
1. Giả sử lúc mình nạp file ảnh của uClinux vào tại địa chỉ 0x1000000 thì khi chạy nó hiện ra như sau:
Bác giải thích hộ em tại sao cả hai địa chỉ 0x1000000 và 0x1000 đều thuộc vùng RAM mà chương trình lại không bắt đầu tại địa chỉ 0x1000000 ? Thứ hai là địa chỉ "Entry point" 0x42000 ở đây có ý nghĩa gì? Chương trình sẽ có gì khác biệt nếu ta để Entry Point là 0x1000 ?
2. Nếu muốn chạy một chương trình ứng dụng, theo hướng dẫn thì sau khi build ứng dụng xong thì copy vào thư mục "romfs" của uClinux-dist rồi build lại, rồi lại nạp lại. Tại sao lại phải thế? Nếu em tìm cách copy file ứng dụng đã biên dịch ấy vào một thư mục nào đó trong uClinux đang chạy trên board thì có chạy được không? (như kiểu mình chạy ứng dụng trong Windows ý)
Hì, tìm hiểu linux embedded này mới biết cũng không ngon ăn lắm, nhưng dù sao cũng phải cố gắng. Rất mong được bác chỉ bảo thêm. Cảm ơn bác
Hi,
Xem qua log, có thể phỏng đoán lỗi của bạn có thể thuộc những trường hợp sau:
1> Khai báo tham số bootargs chưa đúng, UART chỉ hiệu lực lúc còn chạy trong u-boot, khi nhảy qua kernel nó không biết console là gì (không truyền qua UART).
2> Không đồng nhất mã máy, MACHINE_ID là mã nhận dạng và yêu cầu phải đồng nhất từ u-boot đến kernel.
3> RAM hệ thống bị lỗi.
> Booting kernel from Legacy Image at 1000000
> Load Address: 00001000
> Entry Point: 00042000
Những khái niệm này thuộc về u-boot, đây là các tham số cần thiết để lệnh bootm có thể tiến hành boot hệ thống. Quá trình boot sẽ diễn ra nhu sau:
+ Ban đầu chép ảnh uImage vào địa chỉ 0x1000000 (có thể thông qua tftp, nand flash, norflash, mmc...)
+ Verify crc32 và checksum.
+ Gải nén ảnh tại địa chỉ 0x1000000 và lưu vào địa chỉ 0x00001000, nếu kích thước file sau khi giải nén + 0x00001000 vượt quá giá trị 0x1000000 thì coi như tiêu.
+ Chép tham số bootargs đến vùng scratchpad memory (nơi kernel sẽ tham chiếu đến để lấy thông số khi boot).
+ Cuối cùng thực hiện lệnh nhảy đến địa chỉ 0x00042000 (entry point) thực hiện khởi động Linux.
Chính vì thế, khi load ảnh lên SDRAM thì nên để lùi về sau 1 chút (lớn hơn 0x1000000, bởi mỗi khi compile thêm driver cho kernel, kích thước sau khi giải nén nó phình to ra, ngăn ngừa hiện tượng overlap memory.
Quá dễ, Mua cái máy xq quét tòan thân, lấy bàn và khung di chuyển. Tháo đầu xquang ra bán ve chai, mua cái máy siêu âm gắn vào vị trí đầu đèn. Setup máy là chạy chính xác, còn file Setup thì chưa nghĩ ra....
Mạch tạo sương là tự dao động.
Mach 555 là đóng mở chu kỳ tần số thấp.
IC 555 giá rẻ, chỉ chạy lên tần số vài trăm ki lô hẹc thôi. Thăng cao hơn là méo dạng rồi tịt.
Mach sương thì dao động tần số tầm 2 mê ga hẹc cơ !...
Chuyện này cũ rồi.
Họ trả lương cho CN, sau đó lại bán hàng thu tiền về. Họ còn cấp các dịch vụ như chỗ ăn ở, quán cafe , giải trí, phương tiện giao thông. Mục đích là thu tối đa số tiền đã chi trả.
Hàng hóa sx ra, chuyển...
bao nhiêu năm quên bẳng đi, là mình còn có 1 chút xíu nghệ thuật bài bản, đã dạy cho con cháu chơi đàn, dù bố mẹ và chúng không xem là quan trọng. Hôm qua ngày bế mạc lớp lá, bỗng dưng thằng cháu ngoại thấy con bé được sơ giới thiệu...
Chào các anh em, tình hình là mình lo làm ăn không để ý sức khỏe, giờ có chút vấn đề rồi? không biết trên này có anh em nào độ tuổi U35 -> 40 đang có dùng các loại thuốc, thuốc bổ hay thực phẩm chức năng giúp bổ thận tráng dương,...
Trong thế giới phần cứng năm 2026, AMD Ryzen 5 7500X3D không chỉ là một cái tên mới, nó là một tuyên ngôn về hiệu suất. Dựa trên các thử nghiệm khắt khe trong môi trường chơi game chuyên nghiệp, con chip này đã chứng minh rằng: bạn không cần...
Em vừa dự một cái Odoo Business Show 2026 tuần rồi, ngồi nghe mấy session về tự động hóa sản xuất mà em thấy có vài điểm thấy đáng chia sẻ với mấy anh em làm kỹ thuật ở đây.
Mình có cái tay chuyển số chơi game của PXN, hiệu là PXN shifter A7, nó bị lỗi 1 con biến trở chỗ gạt lên xuống dùng để xác định là đang đẩy lên, ở giữa, hay gạt về. Con biến trở này giá trị là 10kOhm, sau khi bị hư thì mình đo chỉ...
Comment