Issue compiling uTasker for FRDM-K66F

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

Issue compiling uTasker for FRDM-K66F

ソリューションへジャンプ
1,301件の閲覧回数
zgife
Contributor I

Every time I try to build uTasker for the FRDM-K66F Simulator in visual studio 2015 it gives me the following error 

1>x:\utasker\utasker-git-kinetis\hardware\kinetis\kinetissim.c(6055): error C2065: 'DMUX_UART0_RX_CHANNEL': undeclared identifier
1>x:\utasker\utasker-git-kinetis\hardware\kinetis\kinetissim.c(6057): error C2065: 'DMUX_UART1_RX_CHANNEL': undeclared identifier
1>x:\utasker\utasker-git-kinetis\hardware\kinetis\kinetissim.c(6060): error C2065: 'DMUX_UART2_RX_CHANNEL': undeclared identifier
1>x:\utasker\utasker-git-kinetis\hardware\kinetis\kinetissim.c(6063): error C2065: 'DMUX_UART3_RX_CHANNEL': undeclared identifier
1>x:\utasker\utasker-git-kinetis\hardware\kinetis\kinetissim.c(6066): error C2065: 'DMUX_UART4_RX_CHANNEL': undeclared identifier
1>x:\utasker\utasker-git-kinetis\hardware\kinetis\kinetissim.c(6071): error C2065: 'DMUX_UART5_RX_CHANNEL': undeclared identifier
1>x:\utasker\utasker-git-kinetis\hardware\kinetis\kinetissim.c(6054): error C2099: initializer is not a constant

I have verified that the config.h has only the FRDM-K66F selected and can't seem to find any issues, this is a fresh clone of the uTasker Git repo aswell

ラベル(1)
0 件の賞賛
返信
1 解決策
1,180件の閲覧回数
mjbcswitzerland
Specialist V

Hi Zachary

Sorry about this - I recently added additional checking of the correct use of DMAMUX channels when using DMA and UARTs/LPUARTs and I missed defines for devices with 5 UARTs and 1 LPUART (which the K66 has).

You can fix it by finding the following list in the file in question and adding the
#elif UARTS_AVAILABLE == 5 set as below.

        #if UARTS_AVAILABLE == 0
            #define DMUX_UART0_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_LPUART0_RX)
            #define DMUX_UART1_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_LPUART1_RX)
            #define DMUX_UART2_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_LPUART2_RX)
            #define DMUX_UART3_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_LPUART3_RX)
            #define DMUX_UART4_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_LPUART4_RX)
        #elif UARTS_AVAILABLE == 1
            #define DMUX_UART0_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_UART0_RX)
            #define DMUX_UART1_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_LPUART0_RX)
            #define DMUX_UART2_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_LPUART1_RX)
            #define DMUX_UART3_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_LPUART2_RX)
            #define DMUX_UART4_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_LPUART3_RX)
        #elif UARTS_AVAILABLE == 2
            #define DMUX_UART0_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_UART0_RX)
            #define DMUX_UART1_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_UART1_RX)
            #define DMUX_UART2_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_LPUART0_RX)
            #define DMUX_UART3_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_LPUART1_RX)
            #define DMUX_UART4_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_LPUART2_RX)
        #elif UARTS_AVAILABLE == 3
            #define DMUX_UART0_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_UART0_RX)
            #define DMUX_UART1_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_UART1_RX)
            #define DMUX_UART2_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_UART2_RX)
            #define DMUX_UART3_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_LPUART0_RX)
            #define DMUX_UART4_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_LPUART1_RX)
        #elif UARTS_AVAILABLE == 4
            #define DMUX_UART0_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_UART0_RX)
            #define DMUX_UART1_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_UART1_RX)
            #define DMUX_UART2_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_UART2_RX)
            #define DMUX_UART3_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_UART3_RX)
            #define DMUX_UART4_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_LPUART0_RX)
        #elif UARTS_AVAILABLE == 5
            #define DMUX_UART0_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_UART0_RX)
            #define DMUX_UART1_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_UART1_RX)
            #define DMUX_UART2_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_UART2_RX)
            #define DMUX_UART3_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_UART3_RX)
            #define DMUX_UART4_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_UART4_RX)
            #define DMUX_UART5_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_LPUART0_RX)
        #endif
‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

Also, if you want to use Ethernet (#define ETH_INTERFACE) comment out
#define LAN8740_PHY
at line 931 in config.h
so that it works with the PHY on the board (the KSZ8081RMA).
The option to use a LAN8740 PHY was added for a special case and shouldn't be enabled for the standard FRDM-K66F.

The corrections are checked in if you would prefer to pull them from the repository.

Generally, in case of such an issue due to new code it is possible to switch the checked out version to any of the check-ins to wind back to a functional version - or use the GIT log to see what has been changed.

Regards

Mark

元の投稿で解決策を見る

0 件の賞賛
返信
1 返信
1,181件の閲覧回数
mjbcswitzerland
Specialist V

Hi Zachary

Sorry about this - I recently added additional checking of the correct use of DMAMUX channels when using DMA and UARTs/LPUARTs and I missed defines for devices with 5 UARTs and 1 LPUART (which the K66 has).

You can fix it by finding the following list in the file in question and adding the
#elif UARTS_AVAILABLE == 5 set as below.

        #if UARTS_AVAILABLE == 0
            #define DMUX_UART0_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_LPUART0_RX)
            #define DMUX_UART1_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_LPUART1_RX)
            #define DMUX_UART2_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_LPUART2_RX)
            #define DMUX_UART3_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_LPUART3_RX)
            #define DMUX_UART4_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_LPUART4_RX)
        #elif UARTS_AVAILABLE == 1
            #define DMUX_UART0_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_UART0_RX)
            #define DMUX_UART1_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_LPUART0_RX)
            #define DMUX_UART2_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_LPUART1_RX)
            #define DMUX_UART3_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_LPUART2_RX)
            #define DMUX_UART4_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_LPUART3_RX)
        #elif UARTS_AVAILABLE == 2
            #define DMUX_UART0_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_UART0_RX)
            #define DMUX_UART1_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_UART1_RX)
            #define DMUX_UART2_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_LPUART0_RX)
            #define DMUX_UART3_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_LPUART1_RX)
            #define DMUX_UART4_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_LPUART2_RX)
        #elif UARTS_AVAILABLE == 3
            #define DMUX_UART0_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_UART0_RX)
            #define DMUX_UART1_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_UART1_RX)
            #define DMUX_UART2_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_UART2_RX)
            #define DMUX_UART3_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_LPUART0_RX)
            #define DMUX_UART4_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_LPUART1_RX)
        #elif UARTS_AVAILABLE == 4
            #define DMUX_UART0_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_UART0_RX)
            #define DMUX_UART1_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_UART1_RX)
            #define DMUX_UART2_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_UART2_RX)
            #define DMUX_UART3_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_UART3_RX)
            #define DMUX_UART4_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_LPUART0_RX)
        #elif UARTS_AVAILABLE == 5
            #define DMUX_UART0_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_UART0_RX)
            #define DMUX_UART1_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_UART1_RX)
            #define DMUX_UART2_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_UART2_RX)
            #define DMUX_UART3_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_UART3_RX)
            #define DMUX_UART4_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_UART4_RX)
            #define DMUX_UART5_RX_CHANNEL (DMAMUX0_CHCFG_SOURCE_LPUART0_RX)
        #endif
‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

Also, if you want to use Ethernet (#define ETH_INTERFACE) comment out
#define LAN8740_PHY
at line 931 in config.h
so that it works with the PHY on the board (the KSZ8081RMA).
The option to use a LAN8740 PHY was added for a special case and shouldn't be enabled for the standard FRDM-K66F.

The corrections are checked in if you would prefer to pull them from the repository.

Generally, in case of such an issue due to new code it is possible to switch the checked out version to any of the check-ins to wind back to a functional version - or use the GIT log to see what has been changed.

Regards

Mark

0 件の賞賛
返信