สารบัญ:
- ขั้นตอนที่ 1: ดาวน์โหลด Sunxi-tools
- ขั้นตอนที่ 2: เปิดเครื่องรูดซอร์สโค้ด
- ขั้นตอนที่ 3: ดาวน์โหลดรหัส::blocks
- ขั้นตอนที่ 4: ทดสอบ IDE ของคุณ
- ขั้นตอนที่ 5: ทำการทดสอบให้เสร็จ
- ขั้นตอนที่ 6: สร้างโครงการใหม่
- ขั้นตอนที่ 7: เพิ่มไฟล์ใน Project
- ขั้นตอนที่ 8: ให้ Gcc ปฏิบัติตามมาตรฐานภาษา ISO C ปี 1999
- ขั้นตอนที่ 9: ค้นหาการพึ่งพาที่ขาดหายไป
- ขั้นตอนที่ 10: แกะ Mman
- ขั้นตอนที่ 11: และเพิ่มลงในโครงการ
- ขั้นตอนที่ 12: เส้นทางที่ถูกต้อง
- ขั้นตอนที่ 13: การไล่ผี
- ขั้นตอนที่ 14: หมายเหตุ
วีดีโอ: Orange PI HowTo: รวบรวมเครื่องมือ Sunxi สำหรับ Windows ภายใต้ Windows: 14 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
ข้อกำหนดเบื้องต้น:
คุณจะต้องการ
- คอมพิวเตอร์ (เดสก์ท็อป) ที่ใช้ Windows
- การเชื่อมต่ออินเทอร์เน็ต
- บอร์ด Orange PI
สุดท้ายเป็นทางเลือก แต่ฉันแน่ใจว่า คุณมีอยู่แล้ว มิฉะนั้นคุณจะไม่อ่านคำแนะนำนี้
เมื่อคุณซื้อคอมพิวเตอร์บอร์ดเดี่ยว Orange PI จะเหลือเพียงเศษโลหะจนกว่าจะกำหนดค่าอย่างเหมาะสม และไฟล์การกำหนดค่าหลัก: "script.bin" เป็นคีย์แรกที่ทำให้มันมีชีวิต ไฟล์นี้อยู่ในพาร์ติชันสำหรับเริ่มระบบของการ์ด SD ที่สามารถบู๊ตได้ของคุณ และโชคดีสำหรับเรา ในการแจกแจง Linux ส่วนใหญ่จากเว็บไซต์ทางการ (https://www.orangepi.org/downloadresources/) พาร์ติชันนี้คือ FAT32 และคอมพิวเตอร์ Windows ทุกเครื่องสามารถเห็นได้ง่าย มันทำให้สิ่งต่าง ๆ ง่ายขึ้นจริง ๆ เนื่องจากยังไม่มีวิธีที่เชื่อถือได้ในการเขียนลงในพาร์ติชัน Linux ext2 จากภายใต้ Windows
โชคร้ายสำหรับเรา ไฟล์การกำหนดค่า script.bin มีรูปแบบไบนารีที่ไม่เป็นมิตรกับการแก้ไขโดยมนุษย์ เราต้องการเครื่องมือซอฟต์แวร์บางประเภทเพื่อถอดรหัสและเข้ารหัสลับหลังการแก้ไขที่จำเป็น และชุดเครื่องมือดังกล่าวก็มีอยู่จริง มันเป็น SUNXI-TOOLS ที่น่าอับอาย แมลงวันในครีมคือว่ามันมีวัตถุประสงค์เพื่อให้ทำงานภายใต้ Linux และเราต้องเก็บเครื่อง Linux เฉพาะไว้เพื่อใช้เครื่องมือ sunxi เท่านั้นหรือหาวิธีรวบรวมสำหรับ windows
ฉันสามารถคอมไพล์และแชร์ไฟล์ปฏิบัติการได้ แต่ไม่มีใครรู้ว่าพวกเขาต้องการสร้างรีลีสใหม่หรือไม่ และคุณจะต้องคอมไพล์ใหม่โดยเร็วที่สุด ดังนั้นฉันจึงตัดสินใจจัดทำคู่มือวิธีการรวบรวมเครื่องมือที่จำเป็นจากแหล่งที่มา มาเริ่มกันเลย.
ขั้นตอนที่ 1: ดาวน์โหลด Sunxi-tools
รับซอร์สโค้ด sunxi-tools เวอร์ชันล่าสุด (หรือจำเป็น) ไปที่ URL: https://github.com/linux-sunxi/sunxi-tools/releases และเลือกดาวน์โหลดเป็นไฟล์ zip
ขั้นตอนที่ 2: เปิดเครื่องรูดซอร์สโค้ด
เมื่อการดาวน์โหลดเสร็จสิ้น ให้เปิดเครื่องรูดซอร์สโค้ดไปยังโฟลเดอร์ที่คุณเลือก (ต่อไปฉันจะถือว่าโฟลเดอร์นี้คือ c:\sunxitools\ ดังนั้นแทนที่เส้นทางนี้ด้วยเส้นทางของคุณเอง)
ขั้นตอนที่ 3: ดาวน์โหลดรหัส::blocks
หากคุณมีสำเนาคอมไพเลอร์ c ++ ที่ทำงานอยู่สำหรับ windows ที่ติดตั้งไว้ และถ้าคุณรู้วิธีใช้งาน คุณอาจไปยังขั้นตอนที่ 3 ได้โดยตรง คนอื่นๆ ควรได้รับคอมไพเลอร์ c++ และเชลล์ (IDE) ที่เหมาะสมเพื่อใช้งานอย่างสะดวกสบาย ตัวเลือกของฉันคือ code::blocks สำหรับ Windows พร้อมกับชุดเครื่องมือ MinGW ที่ติดตั้งไว้ล่วงหน้า คุณสามารถรับได้จากที่นี่:https://sourceforge.net/…/codeblocks-16.01mingw-setup.exe/download
ดาวน์โหลดและติดตั้ง
ขั้นตอนที่ 4: ทดสอบ IDE ของคุณ
หากต้องการทดสอบว่าทุกอย่างเรียบร้อยดีหรือไม่ ให้เริ่ม codeblocks คลิก "สร้างโครงการใหม่" เลือก "แอปพลิเคชันคอนโซล" เลือก c หรือ c++ พิมพ์ชื่อโครงการชำระเงิน รักษาค่าเริ่มต้นไว้โดยไม่มีการแตะต้องในหน้าต่างถัดไป และคลิก "เสร็จสิ้น" ".
ขั้นตอนที่ 5: ทำการทดสอบให้เสร็จ
จากนั้นคลิกสามเหลี่ยมสีเขียวที่แผงด้านบนของ IDE หรือใช้จุดเมนู Build->Run หากทุกอย่างเรียบร้อยดี คุณควรเห็นข้อความจากแอปพลิเคชัน "สวัสดีชาวโลก" ที่สร้างอัตโนมัติของคุณในหน้าต่าง "DOS" สีดำ
หากไม่เป็นเช่นนั้น แสดงว่า IDE และคอมไพเลอร์ทำงานไม่ถูกต้อง และคุณจะต้องตรวจสอบวิธีตั้งค่าให้ถูกต้อง อาจเป็นไปได้ว่าคุณจะต้องดาวน์โหลดเครื่องมือการเขียนโปรแกรมรุ่นอื่นหรือตรวจสอบการอนุญาตในซอฟต์แวร์ไฟร์วอลล์ / โปรแกรมป้องกันไวรัสของคุณ
ขั้นตอนที่ 6: สร้างโครงการใหม่
ตอนนี้ คุณควรมีชุดเครื่องมือของโปรแกรมเมอร์ C/C++ และซอร์สโค้ดเครื่องมือ sunxi ที่คลายแพ็กแล้วในโฟลเดอร์ c:\sunxitools\ บนคอมพิวเตอร์ของคุณ ถึงเวลารวบรวมโครงการ สร้างโครงการใหม่ใน Your IDE เลือกโปรเจ็กต์ C ธรรมดา (ไม่ใช่ c++) ของประเภท "แอปพลิเคชันคอนโซล"
ตรวจสอบให้แน่ใจว่าคุณกำลังสร้างโครงการในโฟลเดอร์ c:\sunxitools\ และไม่ใช่ในที่อื่น (EG codeblocks มักจะสร้างโฟลเดอร์ย่อยที่มีชื่อเดียวกันกับโปรเจ็กต์ ดังนั้นหากคุณตั้งชื่อโปรเจ็กต์ของคุณแล้ว ให้พูดว่า "test" แล้วลองวางไว้ใน c:\sunxitools\ โปรเจ็กต์ของคุณอาจหายไป ไปที่ c:\sunxitools\test\ หากคุณไม่ใส่ใจเพียงพอ) Sunxi-tools มียูทิลิตี้หลายอย่าง แต่สำหรับจุดประสงค์ของเรา เราจะต้องมีเพียงหนึ่งยูทิลิตี้: ยูทิลิตี้ที่เรียกว่า "fexc"
ขั้นตอนที่ 7: เพิ่มไฟล์ใน Project
ยูทิลิตี้ "fexc" มีหน้าที่ในการแปลง script.bin เป็นรูปแบบข้อความและสำหรับการแปลงกลับเป็นไบนารี จำเป็นอย่างยิ่งที่โปรแกรมปฏิบัติการของยูทิลิตี้นี้จะต้องมีชื่อ "fexc.exe" ดังนั้นจะดีถ้าคุณตั้งชื่อโปรเจ็กต์ของคุณเป็น "fexc" อย่างไรก็ตาม คุณสามารถใช้ชื่ออื่นของโปรเจ็กต์ได้ เนื่องจากคุณสามารถเปลี่ยนชื่อไฟล์เรียกทำงานหลังจากการคอมไพล์ได้เสมอ หรือคุณสามารถเลือก "Project->Properties" จากเมนูแบบเลื่อนลงด้านบน และในหน้าต่างที่ปรากฏ ให้คลิกแท็บ "สร้างเป้าหมาย" และแก้ไขฟิลด์ "ชื่อไฟล์เอาต์พุต" เพื่อแทนที่ชื่อที่เรียกใช้งานได้
ในโครงการสร้างอัตโนมัติของคุณ คุณควรเพิ่มไฟล์ต้นฉบับเพียงห้าไฟล์:
- fexc.c
- script.c
- script_bin.c
- script_fex.c
- script_uboot.c
และไฟล์ส่วนหัวเจ็ดไฟล์:
- list.h (ย้ายจากโฟลเดอร์ c:\sunxitools\include\ ไปยังโฟลเดอร์ c:\sunxitools)
- fexc.h
- script.h
- script_bin.h
- script_fex.h
- script_uboot.h
- version.h
อย่าลืมแยก main.c ที่สร้างอัตโนมัติออกจากโปรเจ็กต์ เพราะ fexc.c มีฟังก์ชัน "int main" อยู่แล้ว (โปรดจำไว้ว่าโปรแกรมใดควรมีฟังก์ชันหลักเพียงฟังก์ชันเดียว?)
ไฟล์ซอร์สโค้ดที่จำเป็นทั้งหมดอยู่ในโฟลเดอร์ย่อยแล้ว โดยที่คุณได้คลายแพ็กซอร์สโค้ดแล้ว ไฟล์ส่วนหัวสมควรได้รับคำสองคำ จะหาได้จากที่ใด "list.h" - มักจะอยู่ในโฟลเดอร์ย่อย "include" ของชุดซอร์สโค้ดที่คลายการแพ็ก "version.h" - แค่สร้างมันขึ้นมาเอง ใส่สตริงเช่น:
#define เวอร์ชัน "Win32"
จากนั้นบันทึกและปิดไฟล์ (คุณอาจตกแต่งด้วย #define's และ #ifdef's ถ้าคุณต้องการ)
ถ้าตอนนี้คุณพยายามคอมไพล์โปรเจ็กต์ มันจะบ่นเกี่ยวกับข้อผิดพลาดมากมายและไฟล์ที่ขาดหายไปหนึ่งไฟล์ ข้อผิดพลาดส่วนใหญ่เกิดจากความอิสระของรูปแบบที่มากเกินไป โปรแกรมเมอร์ sunxi-tools ที่ใช้ในการปรับใช้ และไฟล์ที่ขาดหายไปคือการพึ่งพาที่ไม่รวมอยู่ในชุดของซอร์สโค้ด ให้จัดการกับขั้นตอนนี้ทีละขั้นตอน
ขั้นตอนที่ 8: ให้ Gcc ปฏิบัติตามมาตรฐานภาษา ISO C ปี 1999
เพื่อให้คอมไพเลอร์ไม่บ่นว่ารูปแบบการเขียนโปรแกรมฟรีเกินไปให้ตั้งค่ามาตรฐาน "с99" ของการรวบรวม ใน codeblocks ให้ไปที่เมนู "Project -> Build Options" และใน "Compiler Settings -> Compiler Flags" ให้เลือกช่องทำเครื่องหมาย "มี gcc ปฏิบัติตามมาตรฐานภาษา ISO C 1999" หรือคุณสามารถเพิ่ม "-std=c99" ลงในสตริงตัวเลือกคอมไพเลอร์ของคุณ ตอนนี้ถ้าคุณพยายามคอมไพล์โปรเจ็กต์ ข้อผิดพลาดมากมายเหล่านั้นควรหมดไป และคุณเป็นหนึ่งต่อหนึ่งที่มีการพึ่งพาที่ขาดหายไป
ขั้นตอนที่ 9: ค้นหาการพึ่งพาที่ขาดหายไป
การพึ่งพาที่ขาดหายไปคือไฟล์ "mman.h" - ส่วนหัวของตัวจัดการหน่วยความจำ linux บางประเภท Windows C โดยกำเนิดไม่มีไฟล์ดังกล่าว แต่โชคดีที่มีพอร์ต windows ของมัน ไปที่ https://github.com/witwall/mman-win32 สำหรับ windows ดาวน์โหลดสแน็ปช็อตของที่เก็บ git
ขั้นตอนที่ 10: แกะ Mman
แตกไฟล์ mman.c และ mman.h แล้ววางลงในโฟลเดอร์ c:\sunxitools
ขั้นตอนที่ 11: และเพิ่มลงในโครงการ
ขั้นตอนที่ 12: เส้นทางที่ถูกต้อง
และในไฟล์ "fex.c" raplece line:
#รวม
เพื่อ
#รวม "mman.h"
ในขั้นตอนนี้ คอมไพเลอร์ของคุณไม่ควรบ่นอะไรเลย และคุณจะได้รับ fexc.exe ที่รอนานเป็นผลลัพธ์ อย่ามีความสุขเร็วเกินไป ยูทิลิตี้ยังทำงานได้ไม่เต็มที่ คุณสามารถตรวจสอบได้โดยถอดรหัสไฟล์ script.bin ที่ถูกต้องในรูปแบบข้อความ - ไฟล์ script.fex โดยเข้ารหัสไฟล์ script.fex กลับเข้าไปใน script.bin คุณอาจสังเกตว่าขนาดของ script.bin ที่ได้นั้นแตกต่างจากขนาดของ script.bin ดั้งเดิมเล็กน้อย และถ้าคุณพยายามถอดรหัสผลลัพธ์อีกครั้งก็จะล้มเหลว Orange PI จะไม่ทำงานกับ script.bin นี้ เพื่อให้ได้ยูทิลิตีการทำงาน เราต้องปล่อยโค้ดบอมบ์ ซึ่งมีคนใส่ซอร์สโค้ดของ sunxi-tools มันจะเป็นขั้นตอนต่อไปของเรา
ขั้นตอนที่ 13: การไล่ผี
ในการปลดปล่อยโค้ดบอมบ์ ให้เปิดไฟล์โค้ด fexc.c และพบว่ามีสตริงข้อความของเนื้อหาถัดไป:
อื่น if ((ออก = เปิด (ชื่อไฟล์, O_WRONLY|O_CREAT|O_TRUNC, 0666)) < 0) {
เพียงแทนที่ด้วยสตริงถัดไป:
อื่น if ((ออก = open(ชื่อไฟล์, O_WRONLY|O_CREAT|O_TRUNC|O_BINARY, 512))<0){
ถ้าไม่ใช่เลขร้าย "666" ในสตริงแรก ฉันคิดว่าผู้เข้ารหัสเพิ่งลืมใช้แฟล็ก O_BINARY แต่ Number of The Beast ได้ชี้แจงเจตนาของเขาอย่างโปร่งใส ลองคิดดูสิว่ามันฉลาดแค่ไหน: เนื่องจากความแตกต่างเล็กน้อยในการประมวลผลไฟล์ใน Windows และ Linux ระเบิดไม่มีผลเมื่อยูทิลิตี้ถูกคอมไพล์และใช้งานภายใต้ Linux แต่มันทำลายทุกอย่างเมื่อใช้ยูทิลิตี้ภายใต้ Windows
หลังจากที่ระเบิดถูกปลดอาวุธแล้ว ในที่สุด คุณสามารถคอมไพล์และใช้ยูทิลิตี้ fexc บนคอมพิวเตอร์เดสก์ท็อป Windows ของคุณได้อย่างปลอดภัย
ขั้นตอนที่ 14: หมายเหตุ
1) ในการใช้ยูทิลิตี้ fexc อย่างสะดวกสบาย คุณควรได้รับไฟล์แบตช์สองไฟล์:
bin2fex.bat - และ - fex2bin.bat
คุณสามารถรับได้จาก fexc.exe build สำหรับ Windows ที่ล้มเหลวหรือคุณสามารถพิมพ์เองได้:
- bin2fex.bat ควรมี "fexc -I bin -O fex script.bin script.fex"
- fex2bin.bat ควรมี "fexc -O bin -I fex script.fex script.bin"
2) หากเป็นเรื่องยากที่จะหาตัวจัดการ mman สำหรับ Windows เราสามารถหลีกเลี่ยงการใช้งานได้เลย อย่างไรก็ตาม ต้องใช้เวลาในการแก้ไขไฟล์ fexc.c มากขึ้นและต้องการความรู้เกี่ยวกับ c อย่างน้อย เพื่อความมั่นใจของคุณ ฉันแบ่งปันซอร์สโค้ดที่แก้ไขแล้วของ fexc จาก sunxi-tools v1.4 ที่ปราศจากการพึ่งพา mman.h พร้อมกับไฟล์โครงการ codeblocks และตัวอย่าง script.bin จาก pi สีส้มบางส่วน คุณสามารถดาวน์โหลด fexc_nomman.zip
3) เป็นไปได้ว่าในรุ่นต่อมาของ sunxi-tools พวกเขาจะเพิ่มการพึ่งพาเพิ่มเติม คุณสามารถค้นหาได้ทางอินเทอร์เน็ตและเพิ่มลงในโครงการรวบรวมของคุณ
5) สุดท้ายนี่คือ fexc.exe เวอร์ชันที่คอมไพล์ล่วงหน้าสำหรับ Win32:
fexc_nomman.zip
หากคุณขี้เกียจมากพอให้ใช้ ver. อย่างไรก็ตาม ระวังว่าจะไม่ได้รับการอัปเดตหาก/เมื่อ SunxiTools/Windows เวอร์ชันใหม่กว่าจะพร้อมใช้งาน ดังนั้นจึงเป็นการดีกว่าที่จะเรียนรู้วิธีการคอมไพล์มากกว่าการพึ่งพาการสร้างไบนารีแบบคงที่บางตัวฉันเข้าใจ
4) "Orange PI", "Code::Blocks", "Windows", "Linux", "Sunxi-Tools", "Allwinner" ฯลฯ… เป็นเครื่องหมายการค้าของเจ้าของที่เกี่ยวข้อง
5) หากคุณคอมไพเลอร์บ่นว่าไม่พบฟังก์ชัน mman เช่น:
ไม่ได้กำหนดการอ้างอิงถึง '_imp_mmap'
พึงระวังว่าผู้ชื่นชอบชุมชนพัฒนา mman นั้นลืมไปว่าโค้ดนั้นสามารถคอมไพล์ได้ไม่เพียงแต่เป็นไลบรารี่ dll เท่านั้น นอกจากนี้ยังสามารถเป็นไลบรารีแบบคงที่หรือโค้ดแบบสแตนด์อโลนเหมือนที่เรามีที่นี่ ในการแก้ไขปัญหาให้แก้ไขไฟล์ "mman.h" ดังนี้:
ก) ค้นหาสตริง:
#if กำหนดไว้ (MMAN_LIBRARY)
#define MMANSHARED_EXPORT _declspec (dllexport) #else #define MMANSHARED_EXPORT _declspec (dllimport) #endif
b) เพิ่มสตริง
#define MMANSHARED_EXPORT
ด้านล่างสตริงที่พบในขั้นตอนก่อนหน้า
แนะนำ:
ขาตั้งกล้อง DIY ภายใต้ $1: 3 ขั้นตอน
DIY Tripod Under $1: คำแนะนำนี้จะสอนวิธีทำขาตั้งกล้องที่ยอดเยี่ยมภายใต้ $1.ใช้เฉพาะของใช้ในครัวเรือนเช่นแป้ง คุณสามารถสร้างขาตั้งกล้องที่ยอดเยี่ยมซึ่งดีกว่าขาตั้งกล้องปกติ พกพาสะดวก..ลอง!คุณ ควรดูวิดิโอก่อนนะครับ
โปรเจ็กเตอร์ DIY ภายใต้ 1$: 4 ขั้นตอน
โปรเจ็กเตอร์ DIY ต่ำกว่า 1 ดอลลาร์: โปรเจ็กเตอร์ DIY นี้มีความทนทาน ราคาไม่แพง และดีที่สุดคือสร้างขึ้นเอง คุณสามารถสร้างได้ด้วยตัวเองโดยทำตามขั้นตอนง่ายๆ โปรเจ็กเตอร์นี้ยังง่ายต่อการแก้ไขและออกแบบใหม่ ในช่วง 3 เดือนที่ผ่านมา ฉันใช้การออกแบบนี้และได้ผลเ
Flipperkonsole สำหรับ PC Flipper / Pinball Console สำหรับ PC Pinballs: 9 ขั้นตอน
Flipperkonsole สำหรับ PC Flipper / Pinball Console สำหรับ PC Pinballs: ใช้งานได้กับ USB พื้นฐาน เกมสำหรับ PC-Flipperkästen Die Spannungsversorgung erfolgt über das USB Kabel. Implementiert sind die beiden Flipper Buttons และ ein Startbutton Zusätzlich ist ein stossen von unten, von links และ von rechts implem
ไม้โปรแทรกเตอร์ดิจิตอล DIY ภายใต้ <--13$: 5 ขั้นตอน
DIY ไม้โปรแทรกเตอร์ดิจิตอลภายใต้ <--13$: จะเกิดอะไรขึ้นถ้ามาตราส่วนไม้บรรทัดของคุณแปลงเป็นไม้โปรแทรกเตอร์…..โครงการนี้เกี่ยวกับการแปลงไม้บรรทัดธรรมดาเป็นไม้บรรทัดอัจฉริยะที่มีคุณสมบัติพิเศษในการวัดมุม
Orange PI HowTo: ตั้งค่าให้ใช้กับจอแสดงผล HDMI TFT LCD ขนาด 5 นิ้ว: 8 ขั้นตอน (พร้อมรูปภาพ)
Orange PI HowTo: ตั้งค่าให้ใช้กับจอแสดงผล HDMI TFT LCD ขนาด 5 นิ้ว: หากคุณรอบคอบพอที่จะสั่งจอแสดงผล HDMI TFT LCD ร่วมกับ Orange PI ของคุณ คุณอาจรู้สึกท้อแท้กับความยากลำบากในการพยายามบังคับให้มันทำงาน ในขณะที่คนอื่นไม่สามารถสังเกตเห็นอุปสรรคใด ๆ ได้ กุญแจสำคัญคือมีที่เล