Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - tha

Pages: [1] 2 3 ... 370
1
ARM Processors / Re: FreeRTOS
« on: Today at 10:35:39 am »
     •  RAM usage and ROM usage:

        The Memory Management section จัดให้มีข้อมูลทั้งหมดที่ต้องการเพื่อเข้าใจวิธีที่ FreeRTOS ใช้ RAM, และวิธีที่ RAM นี้ถูกจัดสรรไปยัง the RTOS
        kernel.

        ถ้าคุณกำลังแปลง an existing demo application เพื่อรันบน a microcontroller ที่มี RAM น้อยกว่าดังนั้นคุณอาจจำเป็นต้องลด the
        configTOTAL_HEAP_SIZE value - ที่ถูกเอาไว้อยู่ภายใน FreeRTOSConfig.h - และลดจำนวนของ tasks ที่ the demo สร้าง. การลดจำนวนของ tasks ที่
        สร้างสามารถถูกทำให้สำเร็จลงโดยเอาออกอย่างง่ายๆ the function calls ที่ใช้สร้าง the tasks ภายใน main(), ดังที่แสดงไว้ก่อนหน้านี้.

        ถ้าคุณกำลังแปลง an existing demo application เพื่อรันบน a microcontroller ที่มี ROM น้อยกว่าดังนั้นคุณอาจจำเป็นต้องลดจำนวนของ demo
        application files ที่ถูก included ในการบิวด์. เหล่านี้คือ the files ที่ถูกเอาไว้อยู่ภายใน the FreeRTOS/Demo/common directory tree. เมื่อคุณเอาออก
        a demo application file จากการบิวด์คุณจะต้องเอาออก the call ภายใน main() ที่ใช้สร้าง the tasks ที่ไม่ได้ included อีกต่อไปด้วย.

2
ARM Processors / Re: FreeRTOS
« on: Today at 09:04:59 am »
     •  Project settings:

        ทุกๆ project จะกำหนดโดยปกติ a preprocessor macro ที่เฉพาะเจาะจงไปยัง the port ที่กำลังถูกคอมไพล์. The preprocessor macro ระบุซึ่ง
        portmacro.h file จะถูกรวมด้วย. ตัวอย่างเช่น, GCC_MEGA_AVR ต้องถูกกำหนดเมื่อใช้ GCC เพื่อคอมไพล์ the MegaAVR port. IAR_MEGA_AVR  ต้องถูก
        กำหนดเมื่อใช้ IAR เพื่อคอมไพล์ the MegaAVR port, ฯลฯ. อ้างถึง existing demo application projects และ the file
        FreeRTOS/source/include/portable.h เพื่อค้นหาการกำหนดที่ถูกต้องสำหรับ project ของคุณ. ถ้า the preprocessor macro ไม่ถูกกำหนดดังนั้น the
        directory ซึ่ง the relevant portmacro.h file ถูกอยู่ต้องถูกรวมใน the preprocessors include search path.

        การตั้งค่าคอมไพเลอร์อื่นๆ เช่น ตัวเลือกการปรับให้เหมาะสมก็มีความสำคัญเช่นกัน. อีกครั้งอ้างถึง existing demo application projects สำหรับตัวอย่าง.

        Compilers ที่มี an IDE based interface โดยทั่วไปจะรวม the target microcontroller เป็นส่วนหนึ่งของ of the project settings - นี้ต้องถูกปรับเพื่อให้
        ถูกต้องสำหรับ the new target. ในทำนองเดียวกันในกรณีที่ a makefile ถูกใช้, ตัวเลือกภายใน makefile จะต้องได้รับการอัปเดตเพื่อให้ถูกต้องสำหรับเป้าหมาย
        ไมโครคอนโทรลเลอร์ใหม่.

     • Configuring the tick interrupt:

        The tick interrupt ถูกกำหนดค่าโดย a function ที่เรียกว่า prvSetupTimerInterrupt(), ซึ่งสามารถถูกเอาไว้อยู่ภายใน
        FreeRTOS/source/portable/[compiler]/[microcontroller]/port.c.

3
ARM Processors / Re: FreeRTOS
« on: Today at 06:17:26 am »
     •  Low level files:

        The C startup file and linker script เป็นโดยเฉพาะ processor and compiler โดยทั่วไป. ไม่ควรสร้าง from เหล่านี้จากเริ่มต้น - แทนด้วยการมองหาผ่าน
        ทาง the existing FreeRTOS demo projects สำหรับ a file ที่เป็นตัวเลือกที่เหมาะสมสำหรับการปรับเปลี่ยน.

        ใช้ความระมัดระวังเป็นพิเศษกับ ARM7 C startup files. เหล่านี้ต้องกำหนดอย่างใดอย่างหนึ่ง the IRQ handler ถึง vector โดยตรงไปยัง the interrupt
        handler หรือ vector ไปยัง a common entry point. ตัวอย่างถูกจัดให้มีของทั้งสองวิธี. ไม่ว่าในกรณีใด the first code ที่ปฏิบัติหลังจาก the jump ต้องเป็น
        the FreeRTOS context save code, ไม่ใช้ code ตัวกลางที่จัดให้มีโดยคอมไพเลอร์ใดๆ. อีกครั้ง - ใช้ the existing files เป็นตัวอ้างอิง.

        Linker scripts ต้องถูกปรับและอธิบายอย่างถูกต้อง the memory map of the microcontroller ที่กำลังถูกใช้.

4
ARM Processors / Re: FreeRTOS
« on: December 05, 2021, 11:01:19 am »
     •  การระบุ files ที่เฉพาะเจาะจงไปยัง the compiler ที่กำลังถูกใช้:

        Compilers ที่เป้าหมายเป็น embedded systems จัดให้มีส่วนขยายบางอย่างสำหรับ the C language. ตัวอย่างเช่น, a special keyword อาจมีอยู่ที่ถูกใช้เพื่อ
        ระบุว่า a particular function ควรถูกคอมไพล์เป็น an interrupt handler.

        ส่วนขยายของ the C language, โดยการกำหนด, อยู่นอก the C standard ดังนั้นจึงแตกต่างจาก compiler หนึ่งถึง compiler หนึ่ง. The FreeRTOS files ที่
        บรรจุ non-standard syntax ดังกล่าวจะเป็นไฟล์เหล่านั้นภายใน the FreeRTOS/source/portable directory tree (ตามที่ไฮไลต์ด้านบน).  นอกจากนี้, some
        demo applications จะติดตั้ง interrupt handlers ซึ่งไม่ได้เป็นส่วนหนึ่งของ  FreeRTOS เอง. การกำหนดของ interrupt handlers ดังกล่าวและวิธีการติดตั้ง
        the interrupt handler อาจเป็นคำเฉพาะของคอมไพเลอร์ด้วย.

5
ARM Processors / Re: FreeRTOS
« on: December 05, 2021, 10:09:24 am »
หมายเหตุต่อไปนี้เน้นข้อมูลที่ต้องการการพิจารณาว่าวิธีใดถูกใช้:

     •  การระบุ the FreeRTOS kernel files ที่เฉพาะเจาะจงไปยัง the microcontroller ที่กำลังถูกใช้ :

         The FreeRTOS source code organization page จัดให้มีข้อมูลทั้งหมดที่ถูกต้องการเพื่อเข้าใจ the FreeRTOS directory structure.

         ส่วนใหญ่ (ถ้าไม่ใช่ทั้งหมด) the code ที่เฉพาะเจาะจงไปยัง a single port ถูกบรรจุใน a file ที่เรียกว่า
         FreeRTOS/source/portable/[compiler]/[microcontroller]/port.c และ an accompanying header file ที่เรียกว่า
         FreeRTOS/source/portable/[compiler]/[microcontroller]/portmacro.h, โดยที่ [compiler] คือชื่อของคอมไพเลอร์ที่กำลังถูกใช้งาน และ
         [microcontroller] คือชื่อตระกูลไมโครคอนโทรลเลอร์ที่กำลังถูกใช้

         สำหรับคอมไพเลอร์บางตัว the port.c and portmacro.h files คือทั้งหมดที่ถูกต้องการ. สำหรับตัวอื่น ๆ (เหล่านั้นที่มีคุณสมบัติที่ยืดหยุ่นน้อยกว่า) an
         assembler file ถูกต้องการด้วย. นี้จะถูกเรียกว่า portasm.s or portasm.asm.

         สุดท้าย, และเฉพาะเจาะจงไปยัง ARM7 GCC ports เท่านั้น, จะมี a file ที่เรียกว่า portISR.c. portISR.c ถูกใช้อีกด้วยเพือแยกออกจาก port.c ที่ code ซึ่ง
         ต้องถูกคอมไพล์เป็น ARM mode เสมอ - the code ที่ยังคงอยู่ใน port.c ดังนั้นสามารถถูกคอมไพล์เป็นอย่างใดอย่างหนึ่ง ARM หรือ THUMB mode.

6
ARM Processors / Re: FreeRTOS
« on: December 05, 2021, 06:24:16 am »
Combining or Modifying Existing Demo Projects

ส่วนย่อยนี้เน้นรายละเอียดที่ต้องการพิจารณาเพื่ออย่างใดอย่างหนึ่ง ปรับเปลี่ยนโครงการที่มีอยู่ หรือรวมโครงการที่มีอยู่สองโครงการ, ทั้งคู่มีเป้าหมายของการสร้าง a project เฉพาะเจาะจงตามความต้องการของคุณ. ตัวอย่างเช่น, คุณอาจอยากจะสร้าง an STR9 demo project ที่ใช้ the GCC compiler. ในขณะที่ the FreeRTOS download อาจไม่ (ในขณะนั้นหรือการเขียน) รวม a GCC STR9 demo, มันรวม an IAR STR9 demo, และ a GCC STR75x demo.  ข้อมูลที่จำเป็นในการสร้าง the STR9 GCC project สามารถถูกรวบรวมได้จากทั้งสอง existing project. มีสองวิธีนี้สามารถถูกทำ:
 
     1. เอา an existing demo project ที่ใช้ the correct compiler แต่กำหนดเป้าหมายเป็น microcontroller อื่น, และกำหนดเป้าหมายใหม่นี้ไปยัง
         microcontroller ที่ต้องการ.
     2. สร้าง a new project โดยใช้ compiler ที่คุณเลือก. เมื่อตัวเลือกนี้ถูกเอา an existing demo project สามารถถูกใช้เป็นแนวทางที่ files และการเซ็ตถูก
         ต้องการ, ถึงแม้ว่า the existing project จะใช้ compiler ที่ต่างกัน.

7
ARM Processors / Re: FreeRTOS
« on: December 04, 2021, 09:24:33 am »
     4. Finishing off:

         เมื่อ the simple flash demo ถูกปฏิบัติคุณสามารถกู้คืน the full demo application ที่มี the demo tasks ทั้งหมดถูกสร้าง, หรืออีกทางหนึ่ง, เริ่มต้นสร้าง
         your own application tasks.

         ข้อควรจำ:

              •  ถ้า the demo application แต่เดิมไม่มีการเรียกไปยัง vTaskCreateFlashTasks(), และการเรียกไปยังฟังชั่นนี้ถูกเพิ่มแล้วแบบ manually, ดังนั้นการ
                  เรียกควรถูกเอาออกอีกครั้ง. ด้วยเหตุผลสองประการ อย่างแรก the flash tasks อาจใช้ LED outputs ที่ถูกใช้ที่อื่นแล้วภายใน the demo, และอย่างที่สอง
                  the full demo อาจใช้ the available RAM ทั้งหมดแล้ว, หมายความว่าไม่มีที่ว่างสำหรับ tasks เพิ่มเติมถูกสร้าง.

              •  The standard 'com test' tasks (ถ้าถูกรวมใน the demo) จะใช้ประโยชน์ the microcontrollers UART peripherals ตัวหนึ่ง. ตรวจสอบว่า the
                  UART ที่ใช้ใช้ได้สำหรับ the hardware ที่ซึ่งคุณได้พอร์ท the demo.

              •  ไม่น่าเป็นไปได้ที่ peripherals อย่างเช่น LCDs จะทำงานโดยไม่มีการปรับเปลี่ยน เพื่อพิจารณาสำหรับความแตกต่าง hardware หรือ interface ใดๆ.

8
ARM Processors / Re: FreeRTOS
« on: December 04, 2021, 07:39:18 am »
    3. Introducing the RTOS scheduler:

        เมื่อ the LEDs ถูกทราบว่ากำลังทำงาน the dummy main() function สามารถถูกเอาออก, และ the original main() function เอากลับคืน.

        ขอแนะนำให้เริ่มต้นด้วย the simplest multitasking application เท่าที่เป็นได้. The standard 'flash test' tasks มักจะถูกใช้ตอนเริ่มต้นเป็น a
        multitasking เทียบได้กับ a 'hello world' type application.

        The standard 'flash test' tasks คือชุดของ 3 very simple tasks - แต่ละ task จะสลับ a single LED ที่ความถี่คงที่, ด้วยแต่ละ task จะใช้ a different
        frequency. tasks เหล่านี้ถูกรวมใน the demo applications เกือบทั้งหมด, และถูกสตาร์ทภายใน main() โดยการเรียกไปยัง the function
        vStartLEDFlashTasks() (หรือ vStartFlashCoRoutines() หาก the co-routine version ถูกใช้แทน). ถ้า the main() function of the demo ที่คุณ
        กำลังใช้ไม่เรียก vStartLEDFlashTasks() (หืออีกทางหนึ่ง vStartFlashCoRoutines()) ดังนั้นเพิ่มอย่างง่ายๆ the file
        FreeRTOS/Demo/Common/Minimal/Flash.c ไปยัง your build และเพิ่มการเรียกถึง vStartLEDFlashTasks() แบบแมนน้วล.

        เอาออกทุกๆ function ที่ถูกใช้ตอนเริ่มต้นหนึ่งหรือมากว่า demo tasks, นอกเหนือจากการเรียกไปยัง vStartLEDFlashTasks(). มีแนวโน้มว่า main() จะเรียกใช้
        ฟังก์ชันสามฟังก์ชันเท่านั้น:  prvSetupHardware(), vStartLEDFlashTasks(), and vTaskStartScheduler(). For example (ตาม the typical main() 
        ที่แนะนำก่อนหน้านี้):



        แอปพลิเคชั่นที่เรียบง่ายมากนี้ทำงานอย่างถูกต้องหากไฟ LED 0 ถึง 2 (รวม) อยู่ภายใต้การควบคุมของ the 'flash' tasks และแต่ละรายการมีการสลับที่ความถี่คงที่
        แต่ต่างกัน

Pages: [1] 2 3 ... 370