MQXソフトウェアソリューションナレッジベース

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

MQX Software Solutions Knowledge Base

ディスカッション

ソート順:
The new Freescale MQX™ 4.1 GA release is now available on the www.freescale.com/MQX ·         Files available # Name Description 1 FSL_MQX_RELEASE_NOTES_4_1_0 Freescale   MQX™ RTOS 4.1 Release Notes 2 Freescale   MQX RTOS 4.1 MQX™    Source code. Includes an RTOS, File System, TCP/IP and USB host/device   software stacks. ·         What is New? o   New Board Support Package added §  TWR-K21F120M o   Vybrid-based board support packages for TWR-VF65GS10 and AutoEVB updated §  Support of audio-related drivers extended--SAI, eSAI, and ASRC. Device driver for DSP Codec CS422888 added (AutoEVB only). §  Support the Quadrature Decoder functionality in the FTM peripheral §  Added eDMA driver §  UART driver updated to use the eDMA §  Clock management component ported §  Added DCU driver §  QSPI driver updated to support the FlashX framework §  NAND FFS support added o   DMA support in device drivers has been extended §  Introduced new DMA device driver, supporting eDMA peripheral on Kinetis and Vybrid processor families §  The SPI device driver was updated to support the new DMA driver §  The SAI and eSAI audio drivers support DMA §  eSDHC drivers were reworked to fully leverage the ADMA peripheral module o   Driver updates §  The LWADC driver has been ported to all supported board support packages. The support of the legacy ADC driver was discontinued. §  The RTC driver was updated on all supported platforms. Provided generic, POSIX compatible API for time conversion functionality. §  FlashX driver extended by handling Flash Swap functionality on Kinetis processors. §  LP Timer module was added to the HW Timer framework. Its usage is demonstrated in the Low Power and HW Timer example applications o   Standardization effort §  Legacy MQX custom integer types were replaced by the Standard C99 set (int_32 -> int32_t, boolean -> bool, etc). A header file is provided with the set of backward compatible type definitions to make the transition to the new types easier. For more details, see Section 3.1 “C99 Types” in the Getting Started with Freescale MQX™ RTOS (document MQXGSRTOS). §  The endian conversion macros were consolidated inside MQX. The htons, ntons and similar conversion functions were renamed to mqx_htons, mqx_nton to avoid a conflict with the standard. o   NAND FFS library is no longer provided as a separate add in package but it is directly included as a part of MQX main package o   RTCS new features and enhancements §  The MQX TCP/IP stack is now available with an optional package to enable the IPv6 protocol support. For more information visit freescale.com/mqx. §  The FTP server was redesigned to provide faster and more stable implementation. §  The DNS resolver was updated. o   USB §  Fixed several EHCI related bugs (HUB, pipe close, audio example) o   MQX startup is now split in two parts to avoid a crash risk if an interrupt occurs during the startup. §  _bsp_enable_card() function has been replaced by the _bsp_pre_init() function that handles initialization of the OS vital functions, such as the timer (system tick), interrupt controller, memory management, etc. The _bsp_pre_init() function is called during the MQX initialization time, before any user task is created and the scheduler is not started. §  The second part of the startup is done in a separate _mqx_init_task that executes _bsp_init() function for I/O drivers or stacks initialization and _bsp_post_init() function for possible post-init operations. After the _bsp_post_init() function execution, the _mqx_init_task is destroyed. o   All BSPs are now adjusted to this concept. All I/O drivers are installed in the context of the _mqx_init_task after the MQX scheduler is started. This concept also allows a complex driver installation (handling ISRs during the driver initialization, drivers can use blocking functionality like _time_delay, etc.). ·         Known issues o   For known issues and limitations please consult the release notes.
記事全体を表示
Atheros WiFi Tower Module (TWR-WIFI-AR4100P) support patch for Freescale MQX™ 4.0.2  is available at MQX Downloads. Files available # Name Description 1 FSL_MQX_ATHEROS_RELEASE_NOTES_4_0_2  Freescale   MQX™ Atheros Wifi package 4.0.2 Release Notes 2 Freescale   MQX RTOS 4.0.2 Atheros Wifi package Atheros   Wifi solution for MQX™ 4.0.2
記事全体を表示
The new Freescale MQX™ 4.1.1 Cloning Wizard patch is now available on the www.freescale.com/mqxrtos ·         Patch Description o   BSP Cloning Wizard is now based on Eclipse 4.4 o   Kinetis Design Studio support for generating projects (libraries, examples) and working sets (.wsd files for Project of Projects plug-in) o   Remembering opened boards (cloned or opened by user) from previous application run o   BSP Cloning Wizard saves users selection of IDEs, Libraries and Examples in project generator section for all currently opened boards o   Fix the issue of the BSP Cloning Wizard not working in MQX 4.1.1 To get the patch follow the next instructions: Go to www.freescale.com/mqxrtos Click on the big Download Button.  - You will have to log in if you aren’t already.  Click on MQX RTOS for Kinetis, Vybrid, Coldfire v4.1.1….. The patch for the cloning wizard is on the list of files.
記事全体を表示
The attached document shows how to get the MQX4.1 Virtual Com Port Example. This document is located in the following path: C:\Freescale\Freescale_MQX_4_1\usb\device\examples\cdc\virtual_com Regards, Carlos
記事全体を表示
The new Freescale MQX™ 4.1 for TWR-K64F120M release is now available on the www.freescale.com ·         Files available # Name Description 1 FSL_MQX_TWRK64F120M_RELEASE_NOTES Freescale   MQX™ RTOS 4.1.0 TWR-K64F120M Release Notes 2 Freescale   MQX RTOS 4.1.0 for the TWRK64F120M Includes   an RTOS, File System, TCP/IP and USB host/device software stacks. Does not   require MQX™ 4.1 installation. ·         Target HW board o   TWR-K64F120M ·         New features o   PSP support for the K64F120M Microcontroller o   BSP for the TWR-K64F120M tower system module o   Standard set of I/O drivers supporting the K64F120M peripherals including: §  LWGPI/O driver §  Serial interrupt and polled driver §  DMI SPI driver §  I2C interrupt and polled driver §  ADC §  LWADC §  Flash Driver §  RTC Driver §  PIT Timer §  LPT Timer §  SD card driver §  SDHC §  FlexCAN §  SAI §  ENET o   USB Host and Device drivers and stacks o   Example and demo applications demonstrating MQX, USB, RTCS, and MFS usage o   RTCS TCP/IP stack o   MFS file system o   Shell command line interface ·         Known issues o   For known issues and limitations please consult the release notes.
記事全体を表示
Video Tutorial 1 of 6 for the iDigi Connector for MQX: Installing and Configuring the iDigi Connector for MQX (1 of 6) - iDigi Device Cloud More information and free download at http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=KINETIS_IDIGI_M2M
記事全体を表示
Hi all, I want to share this document that describes steps to create a new driver using MQX 4.1 and CW 10.6.  I used the Null-Device Driver,  the null device driver provides an I/O device that functions as a device driver but does not perform any work. I hope it helps. Regards Sol
記事全体を表示
Freescale MQX incluye un BSP que soporta funciones y periféricos comúnmente usados. Sin embargo en aplicaciones muy específicas puede ser necesario el desarrollo o modificación de uno o varios “Drivers”. El siguiente documento explica cómo crear y agregar un nuevo driver al BSP en MQX. El documento está escrito en español. Espero que les sea útil. Saludos Sol
記事全体を表示
The Kinetis Software Development Kit (KSDK) is a software framework for developing applications on Kinetis MCUs. The software components in the framework include peripheral drivers, middleware and real time operating systems. KSDK provides FreeRTOS OS, selected drivers provide FreeRTOS support in form of an additional layer. This solution enables simple driver integration in RTOS-based applications. Drivers with FreeRTOS layers are: • UART / LPUART / LPSCI • I2C / LPI2C • SPI / LPSPI The drivers for FreeRTOS OS is a layer built on top of standard KSDK peripheral drivers to achieve multithread (RTOS) awareness. The wrappers provide an API which blocks the calling task until the I/O operation completes and allows other tasks to run in the background. This is achieved by using the asynchronous API of the underlying driver along with RTOS task synchronization objects. Underlying drivers require enabled interrupts for proper operation. In addition, it is possible to use the KSDK bare metal drivers. This document shows how to use the LPTMR Driver in a FreeRTOS and SDK 2.0 project. For this example it is used SDK 2.0, FRDMK64F and FreeRTOS. If you want to know how to create a new SDK 2.0 with FreeRTOS project please check the below link: https://community.freescale.com/docs/DOC-330183 GPIO AND LPTMR EXAMPLE: Introduction This example toggle the Blue LED every 1 second. This example check the Timer Compare Flag bit, when this flag is set blue LED changes status. Writing the example code First it is necessary to create a new SDK 2.0 with FreeRTOS project, please check the below link for do that.      https://community.freescale.com/docs/DOC-330183    2. After create a new project, open the pin_mux.c file in order to enable the port clock and configure the necessary pins as GPIO (for FRDM-K64F the RGB LED is connected   through GPIO signals: RED to PTB22, BLUE to PTB21 and GREEN to PTE26).   3. In addition, it is necessary to enable the clock for the lptmr module, in the pin_mux.c file.   4. In main.c file it is necessary to include the fsl_lptmr.h and fsl_gpio.h.   5. In main function, create a new task. This task will initialize the LPTMR and GPIO drivers. For this example the new task function was named task_init. /* Create RTOS task */    xTaskCreate(                  task_init,                  "Task_Init",                  configMINIMAL_STACK_SIZE,                  NULL,                  task_PRIORITY,                  NULL);     6. Write the task_init function code.                   a. Using the KSDK GPIO driver: To initialize the GPIO, define a pin configuration, either input or output, in the user file. Then, call the GPIO_PinInit() function. In this case the pin PTB21 where blue LED is connected was configured as output. gpio_pin_config_t ledB_config = {kGPIO_DigitalOutput, 0,}; GPIO_PinInit(BOARD_LED_BLUE_GPIO, BOARD_LED_BLUE_GPIO_PIN, &ledB_config); After configure the GPIO pins, it is possible to use the below GPIO operations: GPIO OUTPUT OPERATIONS. GPIO_WritePinOutput  (GPIO_Type *base, uint32_t pin, uint8_t output) GPIO_SetPinsOutput (GPIO_Type *base, uint32_t mask) GPIO_ClearPinsOutput (GPIO_Type *base, uint32_t mask) GPIO_TogglePinsOutput (GPIO_Type *base, uint32_t mask) GPIO INPUT OPERATIONS. GPIO_ReadPinInput (GPIO_Type *base, uint32_t pin) The board.h file contains definitions for this operations. For example: /*!< Toggle on target LED_BLUE */ #define LED_BLUE_TOGGLE() \ GPIO_TogglePinsOutput(BOARD_LED_BLUE_GPIO, 1U << BOARD_LED_BLUE_GPIO_PIN)                   b. Using the KSDK LPTMR driver: The LPTMR_Init () should be called at the beginning of the application using the LPTMR driver. This function initializes the lptmr_config_t structure, this structure holds the configuration settings for the LPTMR peripheral. To initialize this structure to reasonable defaults, call the LPTMR_GetDefaultConfig () function and pass a pointer to your config structure instance. The config struct can be made const so it resides in flash. The default values are: config->timerMode = kLPTMR_TimerModeTimeCounter; config->pinSelect = kLPTMR_PinSelectInput_0; config->pinPolarity = kLPTMR_PinPolarityActiveHigh; config->enableFreeRunning = false; config->bypassPrescaler = true; config->prescalerClockSource = kLPTMR_PrescalerClock_1; config->value = kLPTMR_Prescale_Glitch_0; After configure the LPTMR, it is necessary to set the timer period. The LPTMR_SetTimerPeriod(), the timer counts from 0 till it equals the count value set here. The count value is written to the CMR register. Finally start the timer using the LPTMR_StarTimer (). After calling this function, the timer counts up to the CMR register value. Each time the timer reaches CMR value and then increments, it generates a trigger pulse and sets the timeout interrupt flag. An interrupt will also be triggered if the timer interrupt is enabled. For this example the below lines configure and start the LPTMR. /* Configure LPTMR */ LPTMR_GetDefaultConfig(&lptmrConfig); /* Initialize the LPTMR */ LPTMR_Init(LPTMR0, &lptmrConfig); /* Set timer period */ LPTMR_SetTimerPeriod(LPTMR0, USEC_TO_COUNT(1000000U, LPTMR_SOURCE_CLOCK)); /* Start counting */ LPTMR_StartTimer(LPTMR0);                   c. This example check the Timer Compare Flag bit, when this flag is set blue LED changes status. So in an infinity loop the LPTMR_GetStatusFlags() function check                       the status flag, if this flag is set then toggle the LED and clear the flag using the the LPTMR_ClearStatusFlags() function. while (1)    {    if (LPTMR_GetStatusFlags(LPTMR0) )           { LED_BLUE_TOGGLE();                       LPTMR_ClearStatusFlags(LPTMR0, kLPTMR_TimerCompareFlag);                } }   7. At this point you can build and debug the example. Complete Code GPIO and LPTMR Example #include <string.h> #include "board.h" #include "pin_mux.h" #include "clock_config.h" #include "fsl_debug_console.h" #include "fsl_device_registers.h" #include "fsl_lptmr.h" #include "fsl_gpio.h" /* FreeRTOS kernel includes. */ #include "FreeRTOS.h" #include "task.h" #include "queue.h" #include "timers.h" /* Task priorities. */ #define task_PRIORITY (configMAX_PRIORITIES - 1) /******************************************************************************* * Definitions ******************************************************************************/ /* Get source clock for LPTMR driver */ #define LPTMR_SOURCE_CLOCK CLOCK_GetFreq(kCLOCK_LpoClk) static void task_init(void *pvParameters); /******************************************************************************* * Variables ******************************************************************************/ volatile uint32_t lptmrCounter = 0U; int main(void) {        /* Init board hardware. */        BOARD_InitPins();        BOARD_BootClockRUN();        BOARD_InitDebugConsole();        /* Add your code here */        /* Create RTOS task */        xTaskCreate(                      task_init,                      "Task_Init",                      configMINIMAL_STACK_SIZE,                      NULL,                      task_PRIORITY,                      NULL);        vTaskStartScheduler();        for(;;) { /* Infinite loop to avoid leaving the main function */               __asm("NOP"); /* something to use as a breakpoint stop while looping */        } } static void task_init(void *pvParameters) {        for (;;) {               lptmr_config_t lptmrConfig;               PRINTF("You are running the initialization task.\r\n");               /* Init output LED GPIO. */               gpio_pin_config_t ledB_config = {kGPIO_DigitalOutput, 0,};               GPIO_PinInit(BOARD_LED_BLUE_GPIO, BOARD_LED_BLUE_GPIO_PIN, &ledB_config);               PRINTF("LED BLUE initialized \r\n");               /* Configure LPTMR */               /*                * lptmrConfig.timerMode = kLPTMR_TimerModeTimeCounter;                * lptmrConfig.pinSelect = kLPTMR_PinSelectInput_0;                * lptmrConfig.pinPolarity = kLPTMR_PinPolarityActiveHigh;                * lptmrConfig.enableFreeRunning = false;                * lptmrConfig.bypassPrescaler = true;                * lptmrConfig.prescalerClockSource = kLPTMR_PrescalerClock_1;                * lptmrConfig.value = kLPTMR_Prescale_Glitch_0;                */               LPTMR_GetDefaultConfig(&lptmrConfig);               /* Initialize the LPTMR */               LPTMR_Init(LPTMR0, &lptmrConfig);               /* Set timer period */               LPTMR_SetTimerPeriod(LPTMR0, USEC_TO_COUNT(1000000U, LPTMR_SOURCE_CLOCK));               PRINTF("Low Power Timer module initialized \r\n");               /* Start counting */               LPTMR_StartTimer(LPTMR0);               while (1)               {                      if (LPTMR_GetStatusFlags(LPTMR0) )                      {                            lptmrCounter++;                            LED_BLUE_TOGGLE();                            LPTMR_ClearStatusFlags(LPTMR0, kLPTMR_TimerCompareFlag);                      }               }        } }
記事全体を表示
The new Freescale MQX™ 4.1.2 GA for Vybrid release is now available on www.freescale.com/mqxrtos ·      Files available                   # Name Description 1 Freescale MQX RTOS 4.1.2 for Vybrid Linux Base This   release has the same basic code as the 4.1.2 version, with just the changes   needed to build and debug on Linux systems. 2 Freescale MQX RTOS 4.1.2 for Vybrid MQX™ Source   code. Includes an RTOS, File System, TCP/IP and USB host/device software   stacks. Does not require MQX™ 4.1.1 installation. ·         What is New? ·         New Board Support Package ·         X-SVF522R-EVB Vybrid Evaluation Board Rev. B with the SVF522R3MK4 processor. ·         TWR-VF65GS10 Development Kit Rev. H with the MVF61NS10MK50 processor. ·         New Features and Updates ·         BSP package for TWR-VF600 was replaced by new TWR-VF65GS10 ·         Vybrid Auto EVB board was replaced by new X-SVF522R-EVB board ·         MFS library was updated ·         New USB stack was added ·         Exception support for cortex A kernel ·         Video ADC + VIU example application ·         RTCS package was updated ·         Known issues ·         For known issues and limitations please consult the release notes
記事全体を表示