Tôi thực sự muốn sử dụng nhanh chóng cho lập trình nhúng vì tôi cảm thấy nó thay thế tốt hơn cho C++, Bộ xử lý tôi đang sử dụng là ARM Cortex-M4F (http://www.ti.com/tool/ek-tm4c123gxl). Nhìn vào trình biên dịch nhanh chóng page, nó nói rằng bạn có thể tạo LLVM IR từ nguồn nhanh chóng và sau đó tôi đã hy vọng vượt qua biên dịch với LLVM. Điều này có khả thi không?Sử dụng trình biên dịch nhanh cho kim loại trần?
Trả lời
Chắc chắn có thể tạo mã máy bằng Swift. Trong thực tế, theo mặc định khi bạn biên dịch một chương trình Swift trong Xcode hoặc với trình biên dịch dòng lệnh swiftc, tệp thực thi được tạo ra bao gồm mã máy.
Mã bytecode LLVM được tạo tại một số điểm trong quá trình xây dựng, nhưng tệp thực thi cuối cùng được tạo ra là mã máy. Có các tùy chọn trình biên dịch cho phép bạn chỉ tạo mã byte LLVM nếu bạn muốn, nhưng bytecode LLVM thường không được thực thi trực tiếp, như Java bytecode với được chạy bởi thời gian chạy Java.
Theo như biên dịch chéo cho ARM, tôi không chắc cách nó hoạt động với công cụ swiftc, nhưng nếu bạn xây dựng một dự án Xcode iOS, nó sẽ tạo ra một tệp thực thi ARM. Tôi chắc rằng trình biên dịch swiftc có tất cả các tùy chọn bạn cần để tạo ra các tệp thi hành ARM.
Tuy nhiên, một điều tôi có thể nghĩ đến, đó là rất nhiều chức năng của Swift phụ thuộc vào khung công tác của Apple. Tuy nhiên, bây giờ Swift đã có nguồn mở, dần dần có nhiều thư viện tinh khiết hơn cho tất cả mọi thứ.
Tôi đã khám phá khả năng này (sử dụng Swift cho các ứng dụng nhúng). Vì Swift cần thời gian chạy, sau khi biên dịch tĩnh "Hello, World!" (trên Ubuntu, x86-64 sử dụng Swift 3.0.2 mới nhất) kích thước nhị phân kết quả là hơn 5 MB, có thể là một vấn đề về bộ điều khiển ARM "nhỏ" (như Cortex-M0).
- 1. Lập trình kim loại trần Beagleboard
- 2. kim loại iOS cung cấp cho biên dịch lỗi
- 3. Gọi lắp ráp ARM từ C, GCC (kim loại trần)
- 4. Lưu trữ dữ liệu nguồn mở cho kim loại trần Cortex M3 không có OS
- 5. long_calls giữa các phần RAM và ROM trên ARM kim loại trần với gcc
- 6. Phần mềm có thể được thực hiện trong máy kim loại trần không?
- 7. Trình biên dịch/trình biên dịch/trình biên dịch C++
- 8. Điều gì làm cho trình biên dịch Java quá nhanh?
- 9. kim loại: sử dụng macro và kim loại: define-macro trong Five ViewPageTemplateFile
- 10. loại trình biên dịch-suy luận cho lambdas generic
- 11. Trình biên dịch cho Haskell
- 12. Trình biên dịch nhanh luôn luôn 100% CPU
- 13. Lỗi trình biên dịch cho Nullable Bool
- 14. Lỗi khi biên dịch khi sử dụng trình biên dịch AspectJ thay vì Javac
- 15. Trình biên dịch chéo Delphi cho linux
- 16. Trình biên dịch C dành cho Windows?
- 17. Trình biên dịch biên dịch trong C#
- 18. Trình biên dịch dòng lệnh cho XTend
- 19. Trình biên dịch D nào để sử dụng?
- 20. Trình biên dịch có trình biên dịch không?
- 21. Trình biên dịch Prolog/Trình biên dịch được nhúng cho Java
- 22. Trình biên dịch Android chậm (sử dụng Eclipse)
- 23. Làm thế nào tôi có thể biên dịch mã C để có được một bộ xương trần kim loại của một chương trình lắp ráp RISC-V tối thiểu?
- 24. Sử dụng System.Xml.Linq với trình biên dịch dòng lệnh mono
- 25. Trình biên dịch java nào được NetBeans sử dụng?
- 26. Sử dụng trình biên dịch khác nhau trong Visual Studio
- 27. Tại sao trình biên dịch sử dụng biến tạm thời?
- 28. Sử dụng mô-đun MySQLdb với trình biên dịch Pypy
- 29. Tìm hiểu trình biên dịch Maven nào sử dụng
- 30. Trình biên dịch có điều kiện khi sử dụng ARC
hầu hết sự phụ thuộc với khung công tác của Apple đã biến mất, Foundation đã được triển khai nhanh chóng và có nguồn mở. –
Swift yêu cầu thời gian chạy Objective-C, khá lớn trong ngữ cảnh nhúng (ít nhất 600KB theo [người này] (http://xmaker.mx/archives/14), những người có Objective-C làm việc trên một Cortex SiLabs -M4). Nếu bạn có bộ nhớ ngoài để ghi thì đó là ít vấn đề hơn. –
@TonyK www.swift.org, nhanh chóng không còn phụ thuộc vào mục tiêu c. nó đã được mở nguồn –