From 41b60bfbaece00009751a79eedc08039858586ed Mon Sep 17 00:00:00 2001 From: aozima Date: Thu, 16 Jul 2020 15:05:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=9E=E9=80=80=20'Pull=20Request=20!23=20:?= =?UTF-8?q?=20=E3=80=90=E5=BC=80=E6=BA=90=E8=B4=A1=E7=8C=AE=E6=B4=BB?= =?UTF-8?q?=E5=8A=A8=E3=80=91=E5=A2=9E=E5=8A=A0imx6ull=20BSP=20https://git?= =?UTF-8?q?ee.com/rtthread/rt-thread/issues/I1I3VP'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bsp/imx6ul/.config | 65 +----- bsp/imx6ul/Kconfig | 6 +- bsp/imx6ul/README.md | 142 +----------- bsp/imx6ul/applications/application.c | 14 +- bsp/imx6ul/applications/startup.c | 70 ++++++ bsp/imx6ul/drivers/Kconfig | 3 - bsp/imx6ul/drivers/board.c | 13 -- bsp/imx6ul/drivers/imx6ul.h | 15 +- bsp/imx6ul/platform/drivers/epit.c | 4 +- bsp/imx6ul/qemu.bat | 68 ------ bsp/imx6ul/rtconfig.h | 203 +++++++++++++++++- bsp/imx6ul/rtconfig.py | 2 +- components/net/lwip-2.1.2/src/arch/sys_arch.c | 0 13 files changed, 304 insertions(+), 301 deletions(-) create mode 100644 bsp/imx6ul/applications/startup.c delete mode 100644 bsp/imx6ul/qemu.bat mode change 100755 => 100644 components/net/lwip-2.1.2/src/arch/sys_arch.c diff --git a/bsp/imx6ul/.config b/bsp/imx6ul/.config index 8683f2fc9..0068adc43 100644 --- a/bsp/imx6ul/.config +++ b/bsp/imx6ul/.config @@ -23,7 +23,7 @@ CONFIG_RT_IDLE_HOOK_LIST_SIZE=4 CONFIG_IDLE_THREAD_STACK_SIZE=256 # CONFIG_RT_USING_TIMER_SOFT is not set CONFIG_RT_DEBUG=y -CONFIG_RT_DEBUG_COLOR=y +# CONFIG_RT_DEBUG_COLOR is not set # CONFIG_RT_DEBUG_INIT_CONFIG is not set # CONFIG_RT_DEBUG_THREAD_CONFIG is not set # CONFIG_RT_DEBUG_SCHEDULER_CONFIG is not set @@ -64,8 +64,8 @@ CONFIG_RT_USING_DEVICE=y # CONFIG_RT_USING_INTERRUPT_INFO is not set CONFIG_RT_USING_CONSOLE=y CONFIG_RT_CONSOLEBUF_SIZE=128 -CONFIG_RT_CONSOLE_DEVICE_NAME="uart1" -CONFIG_RT_VER_NUM=0x40003 +CONFIG_RT_CONSOLE_DEVICE_NAME="uart" +CONFIG_RT_VER_NUM=0x40002 CONFIG_ARCH_ARM=y # CONFIG_RT_USING_CPU_FFS is not set CONFIG_ARCH_ARM_CORTEX_A=y @@ -76,9 +76,7 @@ CONFIG_ARCH_ARM_CORTEX_A7=y # RT-Thread Components # CONFIG_RT_USING_COMPONENTS_INIT=y -CONFIG_RT_USING_USER_MAIN=y -CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048 -CONFIG_RT_MAIN_THREAD_PRIORITY=10 +# CONFIG_RT_USING_USER_MAIN is not set # # C++ features @@ -213,13 +211,9 @@ CONFIG_RT_USING_POSIX=y # IoT - internet of things # # CONFIG_PKG_USING_PAHOMQTT is not set -# CONFIG_PKG_USING_UMQTT is not set # CONFIG_PKG_USING_WEBCLIENT is not set # CONFIG_PKG_USING_WEBNET is not set # CONFIG_PKG_USING_MONGOOSE is not set -# CONFIG_PKG_USING_MYMQTT is not set -# CONFIG_PKG_USING_KAWAII_MQTT is not set -# CONFIG_PKG_USING_BC28_MQTT is not set # CONFIG_PKG_USING_WEBTERMINAL is not set # CONFIG_PKG_USING_CJSON is not set # CONFIG_PKG_USING_JSMN is not set @@ -246,8 +240,6 @@ CONFIG_RT_USING_POSIX=y # CONFIG_PKG_USING_COAP is not set # CONFIG_PKG_USING_NOPOLL is not set # CONFIG_PKG_USING_NETUTILS is not set -# CONFIG_PKG_USING_CMUX is not set -# CONFIG_PKG_USING_PPP_DEVICE is not set # CONFIG_PKG_USING_AT_DEVICE is not set # CONFIG_PKG_USING_ATSRV_SOCKET is not set # CONFIG_PKG_USING_WIZNET is not set @@ -259,10 +251,8 @@ CONFIG_RT_USING_POSIX=y # CONFIG_PKG_USING_GAGENT_CLOUD is not set # CONFIG_PKG_USING_ALI_IOTKIT is not set # CONFIG_PKG_USING_AZURE is not set -# CONFIG_PKG_USING_TENCENT_IOT_EXPLORER is not set +# CONFIG_PKG_USING_TENCENT_IOTHUB is not set # CONFIG_PKG_USING_JIOT-C-SDK is not set -# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set -# CONFIG_PKG_USING_JOYLINK is not set # CONFIG_PKG_USING_NIMBLE is not set # CONFIG_PKG_USING_OTA_DOWNLOADER is not set # CONFIG_PKG_USING_IPMSG is not set @@ -273,14 +263,6 @@ CONFIG_RT_USING_POSIX=y # CONFIG_PKG_USING_PROTOBUF_C is not set # CONFIG_PKG_USING_ONNX_PARSER is not set # CONFIG_PKG_USING_ONNX_BACKEND is not set -# CONFIG_PKG_USING_DLT645 is not set -# CONFIG_PKG_USING_QXWZ is not set -# CONFIG_PKG_USING_SMTP_CLIENT is not set -# CONFIG_PKG_USING_ABUP_FOTA is not set -# CONFIG_PKG_USING_LIBCURL2RTT is not set -# CONFIG_PKG_USING_CAPNP is not set -# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set -# CONFIG_PKG_USING_AGILE_TELNET is not set # # security packages @@ -288,7 +270,6 @@ CONFIG_RT_USING_POSIX=y # CONFIG_PKG_USING_MBEDTLS is not set # CONFIG_PKG_USING_libsodium is not set # CONFIG_PKG_USING_TINYCRYPT is not set -# CONFIG_PKG_USING_TFM is not set # # language packages @@ -317,13 +298,6 @@ CONFIG_RT_USING_POSIX=y # CONFIG_PKG_USING_QRCODE is not set # CONFIG_PKG_USING_ULOG_EASYFLASH is not set # CONFIG_PKG_USING_ADBD is not set -# CONFIG_PKG_USING_COREMARK is not set -# CONFIG_PKG_USING_DHRYSTONE is not set -# CONFIG_PKG_USING_NR_MICRO_SHELL is not set -# CONFIG_PKG_USING_CHINESE_FONT_LIBRARY is not set -# CONFIG_PKG_USING_LUNAR_CALENDAR is not set -# CONFIG_PKG_USING_BS8116A is not set -# CONFIG_PKG_USING_URLENCODE is not set # # system packages @@ -335,7 +309,6 @@ CONFIG_RT_USING_POSIX=y # CONFIG_PKG_USING_LWEXT4 is not set # CONFIG_PKG_USING_PARTITION is not set # CONFIG_PKG_USING_FAL is not set -# CONFIG_PKG_USING_FLASHDB is not set # CONFIG_PKG_USING_SQLITE is not set # CONFIG_PKG_USING_RTI is not set # CONFIG_PKG_USING_LITTLEVGL2RTT is not set @@ -344,10 +317,6 @@ CONFIG_RT_USING_POSIX=y # CONFIG_PKG_USING_LITTLEFS is not set # CONFIG_PKG_USING_THREAD_POOL is not set # CONFIG_PKG_USING_ROBOTS is not set -# CONFIG_PKG_USING_EV is not set -# CONFIG_PKG_USING_SYSWATCH is not set -# CONFIG_PKG_USING_SYS_LOAD_MONITOR is not set -# CONFIG_PKG_USING_PLCCORE is not set # # peripheral libraries and drivers @@ -355,7 +324,6 @@ CONFIG_RT_USING_POSIX=y # CONFIG_PKG_USING_SENSORS_DRIVERS is not set # CONFIG_PKG_USING_REALTEK_AMEBA is not set # CONFIG_PKG_USING_SHT2X is not set -# CONFIG_PKG_USING_SHT3X is not set # CONFIG_PKG_USING_STM32_SDIO is not set # CONFIG_PKG_USING_ICM20608 is not set # CONFIG_PKG_USING_U8G2 is not set @@ -364,16 +332,10 @@ CONFIG_RT_USING_POSIX=y # CONFIG_PKG_USING_SX12XX is not set # CONFIG_PKG_USING_SIGNAL_LED is not set # CONFIG_PKG_USING_LEDBLINK is not set -# CONFIG_PKG_USING_LITTLED is not set -# CONFIG_PKG_USING_LKDGUI is not set -# CONFIG_PKG_USING_NRF5X_SDK is not set -# CONFIG_PKG_USING_NRFX is not set # CONFIG_PKG_USING_WM_LIBRARIES is not set # CONFIG_PKG_USING_KENDRYTE_SDK is not set # CONFIG_PKG_USING_INFRARED is not set # CONFIG_PKG_USING_ROSSERIAL is not set -# CONFIG_PKG_USING_AGILE_BUTTON is not set -# CONFIG_PKG_USING_AGILE_LED is not set # CONFIG_PKG_USING_AT24CXX is not set # CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set # CONFIG_PKG_USING_AD7746 is not set @@ -381,19 +343,8 @@ CONFIG_RT_USING_POSIX=y # CONFIG_PKG_USING_I2C_TOOLS is not set # CONFIG_PKG_USING_NRF24L01 is not set # CONFIG_PKG_USING_TOUCH_DRIVERS is not set +# CONFIG_PKG_USING_LCD_DRIVERS is not set # CONFIG_PKG_USING_MAX17048 is not set -# CONFIG_PKG_USING_RPLIDAR is not set -# CONFIG_PKG_USING_AS608 is not set -# CONFIG_PKG_USING_RC522 is not set -# CONFIG_PKG_USING_EMBARC_BSP is not set -# CONFIG_PKG_USING_EXTERN_RTC_DRIVERS is not set -# CONFIG_PKG_USING_MULTI_RTIMER is not set -# CONFIG_PKG_USING_MAX7219 is not set -# CONFIG_PKG_USING_BEEP is not set -# CONFIG_PKG_USING_EASYBLINK is not set -# CONFIG_PKG_USING_PMS_SERIES is not set -# CONFIG_PKG_USING_CAN_YMODEM is not set -# CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set # # miscellaneous packages @@ -428,8 +379,4 @@ CONFIG_RT_USING_POSIX=y # CONFIG_PKG_USING_ELAPACK is not set # CONFIG_PKG_USING_ARMv7M_DWT is not set # CONFIG_PKG_USING_VT100 is not set -# CONFIG_PKG_USING_ULAPACK is not set -# CONFIG_PKG_USING_UKAL is not set -CONFIG_RT_USING_UART1=y CONFIG_SOC_MCIMX6X4=y -# CONFIG_RT_QEMU_SUPPORT is not set diff --git a/bsp/imx6ul/Kconfig b/bsp/imx6ul/Kconfig index 5684aa031..9fbc95e84 100644 --- a/bsp/imx6ul/Kconfig +++ b/bsp/imx6ul/Kconfig @@ -28,9 +28,5 @@ source "$BSP_DIR/drivers/Kconfig" config SOC_MCIMX6X4 bool select RT_USING_COMPONENTS_INIT - select RT_USING_USER_MAIN + #select RT_USING_USER_MAIN default y - -config RT_QEMU_SUPPORT - bool "Using RT_QEMU_SUPPORT" - default n diff --git a/bsp/imx6ul/README.md b/bsp/imx6ul/README.md index a4d8c41fe..3dc29e5c9 100644 --- a/bsp/imx6ul/README.md +++ b/bsp/imx6ul/README.md @@ -1,137 +1,17 @@ -# imx6ul BSP 说明 +# i.MX6 SoloX -标签: ARM Cortex-A7 core、qemu、mcimx6ul-evk +Freescale's Smart Application Blueprint for Rapid Engineering (SABRE) board for smart devices ---- +Rev.B -## 开发板介绍 +CPU: MCIMX6X4EVM10AB -100ASK_IMX6ULL开发板是百问科技推出的基于NXP CORTEX-A7 IMX6ULL,CPU主频最高为800MHZ,采用512MB DD3L内存,该开发板具有丰富的板载资源。 +* ARM Cortex-A9 @ 1GHz +* ARM Cortex-M4 @ 200MHz -## QEMU MCIMX6UL-ENK介绍 - -基于QEMU_v5.0.0版本,对QEMU进行改动,添加了GUI显示,添加了更多的设备模拟,让用户可以更有真实感地使用QEMU来模拟IMX6UL板子。 -qemu模拟imx6ul环境:https://gitee.com/DAI_David/qemu_imx6ull_windows.git - -## 外设支持 - -本 BSP 目前对外设的支持情况如下: - -|**片上外设** |**支持情况**|**备注** | -| :----------------- | :----------: | :------------------------------------- | -| GPIO | 支持 | 即将支持 | -| UART | 支持 | UART1/x/x | -| SPI | 暂不支持 | 即将支持 | -| I2C | 暂不支持 | 即将支持 | -| SDIO | 暂不支持 | 即将支持 | -| RTC | 暂不支持 | 即将支持 | -| PWM | 暂不支持 | 即将支持 | -| USB Device | 暂不支持 | 即将支持 | -| USB Host | 暂不支持 | 即将支持 | -| IWG | 暂不支持 | 即将支持 | -| xxx | 暂不支持 | 即将支持 | -|**板载外设** |**支持情况**|**备注** | -| 以太网 | 暂不支持 | | -| SD 卡 | 暂不支持 | | -| CAN | 暂不支持 | | -|**扩展模块** |**支持情况**|**备注** | -| xxx 模块 | 支持 | | - -## 使用说明 - -使用说明分为如下两个章节: - -- 环境准备 - - 下载rtthread env编译环境,windows环境下的Qemu,用于为后面使用qemu模拟imx6ul开发板做准备 - -- 编译RT-thread imx6ul BSP包 - - 本章节是为需要在 RT-Thread 操作系统上使用更多开发板资源的开发者准备的。通过使用 ENV 工具对 BSP 进行配置,可以开启更多板载资源,实现更多高级功能。 - -- IMX6UL开发板运行RT-Thread - - 本章节描述使用真实IMX6UL开发板运行rt-thread - -- QEMU运行结果 - - 本章节为描述使用qemu模拟IMX6UL开发运行rt-thread - -### 环境准备 -env环境:[下载 Env 工具](https://www.rt-thread.org/page/download.html) -env用户手册:[Env 用户手册](https://github.com/RT-Thread/rtthread-manual-doc/blob/master/env/env.md) -qemu环境:git clone https://gitee.com/DAI_David/qemu_imx6ull_windows.git - - -### 编译RT-thread imx6ul BSP包 - -此BSP 默认开启串口的功能,如果需使用更多功能,需要利用 ENV 工具对 BSP 进行配置,步骤如下: -1. 在 bsp 下打开 env 工具进入rt-thread\bsp\imx6ul目录。 -2. 输入 `menuconfig` 命令配置工程,配置好之后保存退出。 -3. 输入 `pkgs --update` 命令更新软件包。 -4. 输入 `scons -jn` 命令重新生成二进制文件(n为cpu线程数)。 - -### IMX6UL开发板运行RT-Thread - -操作步骤如下: -1. 在 bsp 下打开 env 工具进入rt-thread\bsp\imx6ul目录。 -2. 输入 `scons -jn`命令重新生成二进制文件(n为cpu线程数)。 -3. 将rtthread.bin使用NXP tools进行打包生成rtthread.imx,具体命令./tools/mkimage -n ./tools/imximage.cfg.cfgtmp -T imximage -e 0x80100000 -d rttread.bin rtthread.imx(该工具提供NXP和商家会提供,这里不做详细描述) -4. 烧写到开发板中 -5. 连接串口(115200-8-1-N) - -复位设备后,可以看到 RT-Thread 的输出信息: - -```text - \ | / -- RT - Thread Operating System - / | \ 4.0.3 build Jun 16 2020 - 2006 - 2020 Copyright by rt-thread team -Freescale i.MX6 Platform SDK 1.2 -CPU: 528 MHz -DDR: 396 MHz -IPG: 49 MHz -msh /> -``` - -### QEMU模拟运行 - -将绝对路径添加到PATH环境变量:(由于env工具的qemu的版本比较旧不支持mcimx6ul-evk) - -此BSP 默认支持真实开发板环境运行,如果需qemu运行,需要利用 ENV 工具对 BSP 进行配置,操作步骤如下: -1. 在 bsp 下打开 env 工具进入rt-thread\bsp\imx6ul目录。 -2. 输入 `menuconfig` 命令配置工程,在菜单中找到Using RT_QEMU_SUPPORT,开启[*] Using RT_QEMU_SUPPORT -3. 配置qemu环境变量,例如: 输入`set PATH=D:\qemu_imx6ull_windows\qemu\bin;%PATH%`(D:\qemu_imx6ull_windows\qemu\bin为下载的qemu路径) -4. 输入 `qemu.bat nogui`命令可以看到 RT-Thread 的输出信息: - -```text - \ | / -- RT - Thread Operating System - / | \ 4.0.3 build Jun 16 2020 - 2006 - 2020 Copyright by rt-thread team -Freescale i.MX6 Platform SDK 1.2 -CPU: 528 MHz -DDR: 396 MHz -IPG: 49 MHz -msh /> -``` - -## 注意事项 - -xxx - -## 维护人信息 - -- [xxx](https://github.com/xxx) -- [邮箱](xxx@xxx.com) - -## 参考资料 - -* [RT-Thread 文档中心](https://www.rt-thread.org/document/site/) - -* [xxx 开发板数据手册](http://abc.com/datasheet.pdf) - -* [xxx 开发板参考手册](http://abc.com/reference.pdf) - -* [xxx 芯片数据手册](http://abc.com/um.pdf) +* Freescale PF0200 PMIC +* 1GB DDR3 +* 32 MB x2 QuadSPI Flash +* Freescale MMA8451 3-Axis Accelerometer +* Freescale MAG3110 3D Magnetometer diff --git a/bsp/imx6ul/applications/application.c b/bsp/imx6ul/applications/application.c index bcf6e0c32..98fcbfc88 100644 --- a/bsp/imx6ul/applications/application.c +++ b/bsp/imx6ul/applications/application.c @@ -20,10 +20,22 @@ void show_freq(void) rt_kprintf("IPG: %d MHz\n", get_main_clock(IPG_CLK)/1000000); } -int main(void) +void init_thread(void* parameter) { rt_kprintf("Freescale i.MX6 Platform SDK %s\n", SDK_VERSION_STRING); show_freq(); + rt_components_init(); +} + +int rt_application_init() +{ + rt_thread_t tid; + + tid = rt_thread_create("init", init_thread, RT_NULL, + 1024, RT_THREAD_PRIORITY_MAX/3, 10); + if (tid != RT_NULL) rt_thread_startup(tid); + return 0; } + diff --git a/bsp/imx6ul/applications/startup.c b/bsp/imx6ul/applications/startup.c new file mode 100644 index 000000000..4c1f83619 --- /dev/null +++ b/bsp/imx6ul/applications/startup.c @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2012-12-05 Bernard the first version + */ + +#include +#include + +#include + +extern int rt_application_init(void); +extern void rt_hw_board_init(void); + +/** + * This function will startup RT-Thread RTOS. + */ +void rtthread_startup(void) +{ + // platform_init(); + // print_version(); + + /* initialzie hardware interrupt */ + rt_hw_interrupt_init(); + + /* initialize board */ + rt_hw_board_init(); + + /* show RT-Thread version */ + rt_show_version(); + + /* initialize memory system */ +#ifdef RT_USING_HEAP + rt_system_heap_init(HEAP_BEGIN, HEAP_END); +#endif + + /* initialize scheduler system */ + rt_system_scheduler_init(); + + /* initialize timer and soft timer thread */ + rt_system_timer_init(); + rt_system_timer_thread_init(); + + /* initialize application */ + rt_application_init(); + + /* initialize idle thread */ + rt_thread_idle_init(); + + /* start scheduler */ + rt_system_scheduler_start(); + + /* never reach here */ + return ; +} + +int main(void) +{ + /* disable interrupt first */ + rt_hw_interrupt_disable(); + + /* invoke rtthread_startup */ + rtthread_startup(); + + return 0; +} diff --git a/bsp/imx6ul/drivers/Kconfig b/bsp/imx6ul/drivers/Kconfig index 8033ded3e..e69de29bb 100644 --- a/bsp/imx6ul/drivers/Kconfig +++ b/bsp/imx6ul/drivers/Kconfig @@ -1,3 +0,0 @@ -config RT_USING_UART1 - bool "Using RT_USING_UART1" - default y diff --git a/bsp/imx6ul/drivers/board.c b/bsp/imx6ul/drivers/board.c index 8204ea5f3..015a3709c 100644 --- a/bsp/imx6ul/drivers/board.c +++ b/bsp/imx6ul/drivers/board.c @@ -21,7 +21,6 @@ #include #include -#include struct mem_desc platform_mem_desc[] = { {0x00000000, 0x80000000, 0x00000000, DEVICE_MEM}, @@ -70,28 +69,16 @@ int rt_hw_timer_init(void) } INIT_BOARD_EXPORT(rt_hw_timer_init); -void idle_wfi(void) -{ - asm volatile ("wfi"); -} - /** * This function will initialize hardware board */ void rt_hw_board_init(void) { - /* initialize hardware interrupt */ - rt_hw_interrupt_init(); - /* initialize system heap */ - rt_system_heap_init(HEAP_BEGIN, HEAP_END); - enable_neon_fpu(); disable_strict_align_check(); rt_components_board_init(); rt_console_set_device(RT_CONSOLE_DEVICE_NAME); - - rt_thread_idle_sethook(idle_wfi); } /*@}*/ diff --git a/bsp/imx6ul/drivers/imx6ul.h b/bsp/imx6ul/drivers/imx6ul.h index aefd28144..7f0db1354 100644 --- a/bsp/imx6ul/drivers/imx6ul.h +++ b/bsp/imx6ul/drivers/imx6ul.h @@ -30,23 +30,15 @@ /* the basic constants needed by gic */ rt_inline rt_uint32_t platform_get_gic_dist_base(void) { - rt_uint32_t gic_base = 0x00A00000; - -#ifndef RT_QEMU_SUPPORT //The default is 0x00A00000, if RT_QEMU_SUPPORT is not defined, read the P15 register to get GIC BASE. + rt_uint32_t gic_base; asm volatile ("mrc p15, 4, %0, c15, c0, 0" : "=r"(gic_base)); -#endif - return gic_base + kGICDBaseOffset; } rt_inline rt_uint32_t platform_get_gic_cpu_base(void) { - rt_uint32_t gic_base = 0x00A00000; - -#ifndef RT_QEMU_SUPPORT //The default is 0x00A00000, if RT_QEMU_SUPPORT is not defined, read the P15 register to get GIC BASE. + rt_uint32_t gic_base; asm volatile ("mrc p15, 4, %0, c15, c0, 0" : "=r"(gic_base)); -#endif - return gic_base + kGICCBaseOffset; } @@ -60,6 +52,9 @@ rt_inline rt_uint32_t platform_get_gic_cpu_base(void) /* keep compatible with platform SDK */ typedef enum { CPU_0, + CPU_1, + CPU_2, + CPU_3, } cpuid_e; enum _gicd_sgi_filter diff --git a/bsp/imx6ul/platform/drivers/epit.c b/bsp/imx6ul/platform/drivers/epit.c index e0c095846..efc88c786 100644 --- a/bsp/imx6ul/platform/drivers/epit.c +++ b/bsp/imx6ul/platform/drivers/epit.c @@ -156,10 +156,8 @@ void epit_init(uint32_t instance, uint32_t clock_src, uint32_t prescaler, clock_gating_config(base, CLOCK_ON); // start with a known state by disabling and reseting the module -#ifndef RT_QEMU_SUPPORT // Qemu restart timer has a bug HW_EPIT_CR_WR(instance, BM_EPIT_CR_SWR); -#endif - + // wait for the reset to complete while ((HW_EPIT_CR(instance).B.SWR) != 0) ; diff --git a/bsp/imx6ul/qemu.bat b/bsp/imx6ul/qemu.bat deleted file mode 100644 index 26965f52c..000000000 --- a/bsp/imx6ul/qemu.bat +++ /dev/null @@ -1,68 +0,0 @@ -@echo off -set ROOT_DIR=%~dp0 - -set QEMU_TOOLS=qemu-system-arm.exe -set FILE=rtthread-imx6.elf -set RUN_TYPE=%1 - -rem parameter setting -set MACHINES=mcimx6ul-evk -smp cpus=1 -set NO_DISPLAY=-nographic -set DISPLAY=-display sdl -show-cursor -set SERIAL_PORT=mon:stdio -set NETWORK=-nic user - -if exist %FILE% goto run -call scons -j4 - -:run - -if "%RUN_TYPE%"=="" ( - goto _help -) else ( - goto _start -) - -:_help -set var="" -echo "help(%0 [gui|nogui|debug]):" -echo " 1. gui" -echo " 2. nogui" -echo " 3. debug" -set /p var=Please input manually: -if "%var%"=="1" ( - goto gui_start -) else if "%var%"=="2" ( - goto nogui_start -) else if "%var%"=="3" ( - goto debug_start -) else ( - echo "Input error!" - goto _help -) - -:_start -if "%RUN_TYPE%"=="gui" ( - goto gui_start -) else if "%RUN_TYPE%"=="nogui" ( - goto nogui_start -) else if "%RUN_TYPE%"=="debug" ( - goto debug_start -) else ( - goto _help -) - -:gui_start -%QEMU_TOOLS% -M %MACHINES% -kernel %FILE% %DISPLAY% -serial %SERIAL_PORT% %NETWORK% -goto end - -:nogui_start -%QEMU_TOOLS% -M %MACHINES% -kernel %FILE% %NO_DISPLAY% -serial %SERIAL_PORT% %NETWORK% -goto end - -:debug_start -%QEMU_TOOLS% -M %MACHINES% -m 512M -kernel %FILE% %NO_DISPLAY% -serial %SERIAL_PORT% %NETWORK% -S -s -goto end - -:end -pause \ No newline at end of file diff --git a/bsp/imx6ul/rtconfig.h b/bsp/imx6ul/rtconfig.h index 3b63ce8fd..19826089e 100644 --- a/bsp/imx6ul/rtconfig.h +++ b/bsp/imx6ul/rtconfig.h @@ -9,8 +9,12 @@ /* RT-Thread Kernel */ #define RT_NAME_MAX 8 +/* RT_USING_ARCH_DATA_TYPE is not set */ +/* RT_USING_SMP is not set */ #define RT_ALIGN_SIZE 4 +/* RT_THREAD_PRIORITY_8 is not set */ #define RT_THREAD_PRIORITY_32 +/* RT_THREAD_PRIORITY_256 is not set */ #define RT_THREAD_PRIORITY_MAX 32 #define RT_TICK_PER_SECOND 100 #define RT_USING_OVERFLOW_CHECK @@ -18,8 +22,19 @@ #define RT_USING_IDLE_HOOK #define RT_IDLE_HOOK_LIST_SIZE 4 #define IDLE_THREAD_STACK_SIZE 256 +/* RT_USING_TIMER_SOFT is not set */ #define RT_DEBUG -#define RT_DEBUG_COLOR +/* RT_DEBUG_COLOR is not set */ +/* RT_DEBUG_INIT_CONFIG is not set */ +/* RT_DEBUG_THREAD_CONFIG is not set */ +/* RT_DEBUG_SCHEDULER_CONFIG is not set */ +/* RT_DEBUG_IPC_CONFIG is not set */ +/* RT_DEBUG_TIMER_CONFIG is not set */ +/* RT_DEBUG_IRQ_CONFIG is not set */ +/* RT_DEBUG_MEM_CONFIG is not set */ +/* RT_DEBUG_SLAB_CONFIG is not set */ +/* RT_DEBUG_MEMHEAP_CONFIG is not set */ +/* RT_DEBUG_MODULE_CONFIG is not set */ /* Inter-Thread communication */ @@ -28,33 +43,41 @@ #define RT_USING_EVENT #define RT_USING_MAILBOX #define RT_USING_MESSAGEQUEUE +/* RT_USING_SIGNALS is not set */ /* Memory Management */ #define RT_USING_MEMPOOL +/* RT_USING_MEMHEAP is not set */ +/* RT_USING_NOHEAP is not set */ #define RT_USING_SMALL_MEM +/* RT_USING_SLAB is not set */ +/* RT_USING_MEMTRACE is not set */ #define RT_USING_HEAP /* Kernel Device Object */ #define RT_USING_DEVICE +/* RT_USING_DEVICE_OPS is not set */ +/* RT_USING_INTERRUPT_INFO is not set */ #define RT_USING_CONSOLE #define RT_CONSOLEBUF_SIZE 128 -#define RT_CONSOLE_DEVICE_NAME "uart1" -#define RT_VER_NUM 0x40003 +#define RT_CONSOLE_DEVICE_NAME "uart" +#define RT_VER_NUM 0x40002 #define ARCH_ARM +/* RT_USING_CPU_FFS is not set */ #define ARCH_ARM_CORTEX_A #define ARCH_ARM_CORTEX_A7 +/* ARCH_CPU_STACK_GROWS_UPWARD is not set */ /* RT-Thread Components */ #define RT_USING_COMPONENTS_INIT -#define RT_USING_USER_MAIN -#define RT_MAIN_THREAD_STACK_SIZE 2048 -#define RT_MAIN_THREAD_PRIORITY 10 +/* RT_USING_USER_MAIN is not set */ /* C++ features */ +/* RT_USING_CPLUSPLUS is not set */ /* Command shell */ @@ -64,11 +87,14 @@ #define FINSH_HISTORY_LINES 5 #define FINSH_USING_SYMTAB #define FINSH_USING_DESCRIPTION +/* FINSH_ECHO_DISABLE_DEFAULT is not set */ #define FINSH_THREAD_PRIORITY 20 #define FINSH_THREAD_STACK_SIZE 4096 #define FINSH_CMD_SIZE 80 +/* FINSH_USING_AUTH is not set */ #define FINSH_USING_MSH #define FINSH_USING_MSH_DEFAULT +/* FINSH_USING_MSH_ONLY is not set */ #define FINSH_ARG_MAX 10 /* Device virtual file system */ @@ -78,85 +104,248 @@ #define DFS_FILESYSTEMS_MAX 2 #define DFS_FILESYSTEM_TYPES_MAX 2 #define DFS_FD_MAX 16 +/* RT_USING_DFS_MNTTABLE is not set */ +/* RT_USING_DFS_ELMFAT is not set */ #define RT_USING_DFS_DEVFS +/* RT_USING_DFS_ROMFS is not set */ +/* RT_USING_DFS_RAMFS is not set */ +/* RT_USING_DFS_UFFS is not set */ +/* RT_USING_DFS_JFFS2 is not set */ /* Device Drivers */ #define RT_USING_DEVICE_IPC #define RT_PIPE_BUFSZ 512 +/* RT_USING_SYSTEM_WORKQUEUE is not set */ #define RT_USING_SERIAL #define RT_SERIAL_USING_DMA #define RT_SERIAL_RB_BUFSZ 64 +/* RT_USING_CAN is not set */ +/* RT_USING_HWTIMER is not set */ +/* RT_USING_CPUTIME is not set */ +/* RT_USING_I2C is not set */ #define RT_USING_PIN +/* RT_USING_ADC is not set */ +/* RT_USING_PWM is not set */ +/* RT_USING_MTD_NOR is not set */ +/* RT_USING_MTD_NAND is not set */ +/* RT_USING_PM is not set */ +/* RT_USING_RTC is not set */ +/* RT_USING_SDIO is not set */ +/* RT_USING_SPI is not set */ +/* RT_USING_WDT is not set */ +/* RT_USING_AUDIO is not set */ +/* RT_USING_SENSOR is not set */ +/* RT_USING_TOUCH is not set */ +/* RT_USING_HWCRYPTO is not set */ +/* RT_USING_PULSE_ENCODER is not set */ +/* RT_USING_INPUT_CAPTURE is not set */ +/* RT_USING_WIFI is not set */ /* Using USB */ +/* RT_USING_USB_HOST is not set */ +/* RT_USING_USB_DEVICE is not set */ /* POSIX layer and C standard library */ #define RT_USING_LIBC +/* RT_USING_PTHREADS is not set */ #define RT_USING_POSIX +/* RT_USING_POSIX_MMAP is not set */ +/* RT_USING_POSIX_TERMIOS is not set */ +/* RT_USING_POSIX_AIO is not set */ +/* RT_USING_MODULE is not set */ /* Network */ /* Socket abstraction layer */ +/* RT_USING_SAL is not set */ /* Network interface device */ +/* RT_USING_NETDEV is not set */ /* light weight TCP/IP stack */ +/* RT_USING_LWIP is not set */ /* AT commands */ +/* RT_USING_AT is not set */ /* VBUS(Virtual Software BUS) */ +/* RT_USING_VBUS is not set */ /* Utilities */ +/* RT_USING_RYM is not set */ +/* RT_USING_ULOG is not set */ +/* RT_USING_UTEST is not set */ +/* RT_USING_LWP is not set */ /* RT-Thread online packages */ /* IoT - internet of things */ +/* PKG_USING_PAHOMQTT is not set */ +/* PKG_USING_WEBCLIENT is not set */ +/* PKG_USING_WEBNET is not set */ +/* PKG_USING_MONGOOSE is not set */ +/* PKG_USING_WEBTERMINAL is not set */ +/* PKG_USING_CJSON is not set */ +/* PKG_USING_JSMN is not set */ +/* PKG_USING_LIBMODBUS is not set */ +/* PKG_USING_FREEMODBUS is not set */ +/* PKG_USING_LJSON is not set */ +/* PKG_USING_EZXML is not set */ +/* PKG_USING_NANOPB is not set */ /* Wi-Fi */ /* Marvell WiFi */ +/* PKG_USING_WLANMARVELL is not set */ /* Wiced WiFi */ +/* PKG_USING_WLAN_WICED is not set */ +/* PKG_USING_RW007 is not set */ +/* PKG_USING_COAP is not set */ +/* PKG_USING_NOPOLL is not set */ +/* PKG_USING_NETUTILS is not set */ +/* PKG_USING_AT_DEVICE is not set */ +/* PKG_USING_ATSRV_SOCKET is not set */ +/* PKG_USING_WIZNET is not set */ /* IoT Cloud */ +/* PKG_USING_ONENET is not set */ +/* PKG_USING_GAGENT_CLOUD is not set */ +/* PKG_USING_ALI_IOTKIT is not set */ +/* PKG_USING_AZURE is not set */ +/* PKG_USING_TENCENT_IOTHUB is not set */ +/* PKG_USING_JIOT-C-SDK is not set */ +/* PKG_USING_NIMBLE is not set */ +/* PKG_USING_OTA_DOWNLOADER is not set */ +/* PKG_USING_IPMSG is not set */ +/* PKG_USING_LSSDP is not set */ +/* PKG_USING_AIRKISS_OPEN is not set */ +/* PKG_USING_LIBRWS is not set */ +/* PKG_USING_TCPSERVER is not set */ +/* PKG_USING_PROTOBUF_C is not set */ +/* PKG_USING_ONNX_PARSER is not set */ +/* PKG_USING_ONNX_BACKEND is not set */ /* security packages */ +/* PKG_USING_MBEDTLS is not set */ +/* PKG_USING_libsodium is not set */ +/* PKG_USING_TINYCRYPT is not set */ /* language packages */ +/* PKG_USING_LUA is not set */ +/* PKG_USING_JERRYSCRIPT is not set */ +/* PKG_USING_MICROPYTHON is not set */ /* multimedia packages */ +/* PKG_USING_OPENMV is not set */ +/* PKG_USING_MUPDF is not set */ +/* PKG_USING_STEMWIN is not set */ +/* PKG_USING_WAVPLAYER is not set */ +/* PKG_USING_TJPGD is not set */ /* tools packages */ +/* PKG_USING_CMBACKTRACE is not set */ +/* PKG_USING_EASYFLASH is not set */ +/* PKG_USING_EASYLOGGER is not set */ +/* PKG_USING_SYSTEMVIEW is not set */ +/* PKG_USING_RDB is not set */ +/* PKG_USING_QRCODE is not set */ +/* PKG_USING_ULOG_EASYFLASH is not set */ +/* PKG_USING_ADBD is not set */ /* system packages */ +/* PKG_USING_GUIENGINE is not set */ +/* PKG_USING_PERSIMMON is not set */ +/* PKG_USING_CAIRO is not set */ +/* PKG_USING_PIXMAN is not set */ +/* PKG_USING_LWEXT4 is not set */ +/* PKG_USING_PARTITION is not set */ +/* PKG_USING_FAL is not set */ +/* PKG_USING_SQLITE is not set */ +/* PKG_USING_RTI is not set */ +/* PKG_USING_LITTLEVGL2RTT is not set */ +/* PKG_USING_CMSIS is not set */ +/* PKG_USING_DFS_YAFFS is not set */ +/* PKG_USING_LITTLEFS is not set */ +/* PKG_USING_THREAD_POOL is not set */ +/* PKG_USING_ROBOTS is not set */ /* peripheral libraries and drivers */ +/* PKG_USING_SENSORS_DRIVERS is not set */ +/* PKG_USING_REALTEK_AMEBA is not set */ +/* PKG_USING_SHT2X is not set */ +/* PKG_USING_STM32_SDIO is not set */ +/* PKG_USING_ICM20608 is not set */ +/* PKG_USING_U8G2 is not set */ +/* PKG_USING_BUTTON is not set */ +/* PKG_USING_PCF8574 is not set */ +/* PKG_USING_SX12XX is not set */ +/* PKG_USING_SIGNAL_LED is not set */ +/* PKG_USING_LEDBLINK is not set */ +/* PKG_USING_WM_LIBRARIES is not set */ +/* PKG_USING_KENDRYTE_SDK is not set */ +/* PKG_USING_INFRARED is not set */ +/* PKG_USING_ROSSERIAL is not set */ +/* PKG_USING_AT24CXX is not set */ +/* PKG_USING_MOTIONDRIVER2RTT is not set */ +/* PKG_USING_AD7746 is not set */ +/* PKG_USING_PCA9685 is not set */ +/* PKG_USING_I2C_TOOLS is not set */ +/* PKG_USING_NRF24L01 is not set */ +/* PKG_USING_TOUCH_DRIVERS is not set */ +/* PKG_USING_LCD_DRIVERS is not set */ +/* PKG_USING_MAX17048 is not set */ /* miscellaneous packages */ +/* PKG_USING_LIBCSV is not set */ +/* PKG_USING_OPTPARSE is not set */ +/* PKG_USING_FASTLZ is not set */ +/* PKG_USING_MINILZO is not set */ +/* PKG_USING_QUICKLZ is not set */ +/* PKG_USING_MULTIBUTTON is not set */ +/* PKG_USING_FLEXIBLE_BUTTON is not set */ +/* PKG_USING_CANFESTIVAL is not set */ +/* PKG_USING_ZLIB is not set */ +/* PKG_USING_DSTR is not set */ +/* PKG_USING_TINYFRAME is not set */ +/* PKG_USING_KENDRYTE_DEMO is not set */ +/* PKG_USING_DIGITALCTRL is not set */ +/* PKG_USING_UPACKER is not set */ +/* PKG_USING_UPARAM is not set */ /* samples: kernel and components samples */ -#define RT_USING_UART1 +/* PKG_USING_KERNEL_SAMPLES is not set */ +/* PKG_USING_FILESYSTEM_SAMPLES is not set */ +/* PKG_USING_NETWORK_SAMPLES is not set */ +/* PKG_USING_PERIPHERAL_SAMPLES is not set */ +/* PKG_USING_HELLO is not set */ +/* PKG_USING_VI is not set */ +/* PKG_USING_NNOM is not set */ +/* PKG_USING_LIBANN is not set */ +/* PKG_USING_ELAPACK is not set */ +/* PKG_USING_ARMv7M_DWT is not set */ +/* PKG_USING_VT100 is not set */ #define SOC_MCIMX6X4 #endif diff --git a/bsp/imx6ul/rtconfig.py b/bsp/imx6ul/rtconfig.py index d37228062..0a9ea3dce 100644 --- a/bsp/imx6ul/rtconfig.py +++ b/bsp/imx6ul/rtconfig.py @@ -32,7 +32,7 @@ if PLATFORM == 'gcc': DEVICE = ' -march=armv7-a -mtune=cortex-a9 -mfpu=vfpv3-d16 -ftree-vectorize -ffast-math -mfloat-abi=softfp' CFLAGS = DEVICE + ' -Wall' - AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp -D__ASSEMBLY__ -I.' + AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp -D__ASSEMBLY__' LINK_SCRIPT = 'imx6.lds' LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rtthread-imx6.map,-cref,-u,system_vectors'+\ ' -T %s' % LINK_SCRIPT diff --git a/components/net/lwip-2.1.2/src/arch/sys_arch.c b/components/net/lwip-2.1.2/src/arch/sys_arch.c old mode 100755 new mode 100644 -- GitLab