f9micro / f9-kernel

An efficient and secure microkernel built for ARM Cortex-M cores, inspired by L4
Other
679 stars 145 forks source link

userApp #143

Open gnitnaw opened 7 years ago

gnitnaw commented 7 years ago
louisom commented 7 years ago

I think the answer is NO.

Could you give me the info about your board and the setting in the user/apps/build.mk? Because if you are using STM32F429, and building with LCD apps, you may hang by this process, and got the junk info like you got.

gnitnaw commented 7 years ago

I didn't change the code (with stm32f429 discovery). All are the same (git pull yesterday). I connect to USART4: PC11 (TX), PC10 (RX) Here is the message after I push reset button:

==================================================== Copyright(C) 2013-2014 The F9 Microkernel Project

Git head: d466fe1dcf8c0b230a6e7397ba4402bf5812bd37 Host: x86_64 Build:������������������������������������������������������������������������������������������������������������������������������������������������....(the same)

About LCD apps, I can see the rectangle on the LCD.

louisom commented 7 years ago

You still need to check user/apps/build.mk, my setting is like this

# Copyright (c) 2013 The F9 Microkernel Project. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

user-apps-dirs = \
    l4test \

If you use default setting, it may contain other apps.

And if I remember correctly, UART output will use async output, so your kernel may occure some problem after __l4_printf(banner) when init with INIT_LEVEL_KERNEL_EARLY hook at start.c.

Maybe you can use gdb to trace it.

gnitnaw commented 7 years ago

After I remove the ping-pong in user/apps/build.mk, it becomes:

==================================================== Copyright(C) 2013-2014 The F9 Microkernel Project

Git head: d466fe1dc�������������������������������������������������������������������������������������������������������������������������������

So how to solve this problem?

gapry commented 7 years ago

What is your current baud rate? 115200 or 9600 gnitnaw notifications@github.com於 2017年3月7日 週二,下午6:16寫道:

After I remove the ping-pong in user/apps/build.mk, it becomes:

Copyright(C) 2013-2014 The F9 Microkernel Project

Git head: d466fe1 https://github.com/f9micro/f9-kernel/commit/d466fe1dcf8c0b230a6e7397ba4402bf5812bd37 �������������������������������������������������������������������������������������������������������������������������������

So how to solve this problem?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/f9micro/f9-kernel/issues/143#issuecomment-284679766, or mute the thread https://github.com/notifications/unsubscribe-auth/AD7RiNZK-aKqX7AZ2yu6TIi1yBtluLjDks5rjS57gaJpZM4MUpA9 .

gnitnaw commented 7 years ago

I have tried 115200, 76800, 38400, 19200, and 9600. Only 115200 can let me see the banner...

louisom commented 7 years ago

@gnitnaw Can you give me your .config?

gnitnaw commented 7 years ago

I did "make config" and select STM32F429 in the platform and save, that's all.

CONFIG_BOARD_STM32F429DISCOVERY=y

CONFIG_BOARD_STM32P103 is not set

CONFIG_BITMAP_BITBAND is not set

CONFIG_FPU is not set

CONFIG_STDIO_NODEV is not set

CONFIG_STDIO_USE_DBGPORT=y

CONFIG_DBGPORT_USE_USART1 is not set

CONFIG_DBGPORT_USE_USART2 is not set

CONFIG_DBGPORT_USE_USART4=y

#

Limitations

# CONFIG_MAX_THREADS=32 CONFIG_MAX_KT_EVENTS=64 CONFIG_MAX_ASYNC_EVENTS=32 CONFIG_MAX_ADRESS_SPACES=16 CONFIG_MAX_FPAGES=256

#

Kernel Timer

# CONFIG_KTIMER_TICKLESS=y

CONFIG_KTIMER_TICKLESS_VERIFY is not set

CONFIG_KTIMER_TICKLESS_COMPENSATION=0 CONFIG_KTIMER_TICKLESS_INT_COMPENSATION=0 CONFIG_KTIMER_HEARTBEAT=65536 CONFIG_KTIMER_MINTICKS=128

#

Flexible page tweaks

# CONFIG_LARGEST_FPAGE_SHIFT=16 CONFIG_SMALLEST_FPAGE_SHIFT=8

#

Thread tweaks

# CONFIG_INTR_THREAD_MAX=256

#

KIP tweaks

# CONFIG_KIP_EXTRA_SIZE=128

#

Kernel hacking

#

CONFIG_DEBUG=y CONFIG_DEBUG_DEV_UART=y CONFIG_KDB=y CONFIG_KPROBES=y CONFIG_SYMMAP=y CONFIG_PANIC_DUMP_STACK=y

CONFIG_LOADER is not set

#

Test Case

#

gapry commented 7 years ago

I assume you use minicom to see the output of UART. So, do you have turned off (or turned on) software flow control and hardware flow control ? gnitnaw notifications@github.com於 2017年3月7日 週二,下午6:25寫道:

I did "make config" and select STM32F429 in the platform and save, that's all.

CONFIG_BOARD_STM32F429DISCOVERY=y CONFIG_BOARD_STM32P103 is not set CONFIG_BITMAP_BITBAND is not set CONFIG_FPU is not set CONFIG_STDIO_NODEV is not set

CONFIG_STDIO_USE_DBGPORT=y CONFIG_DBGPORT_USE_USART1 is not set CONFIG_DBGPORT_USE_USART2 is not set

CONFIG_DBGPORT_USE_USART4=y Limitations

CONFIG_MAX_THREADS=32 CONFIG_MAX_KT_EVENTS=64 CONFIG_MAX_ASYNC_EVENTS=32 CONFIG_MAX_ADRESS_SPACES=16 CONFIG_MAX_FPAGES=256 Kernel Timer

CONFIG_KTIMER_TICKLESS=y CONFIG_KTIMER_TICKLESS_VERIFY is not set

CONFIG_KTIMER_TICKLESS_COMPENSATION=0 CONFIG_KTIMER_TICKLESS_INT_COMPENSATION=0 CONFIG_KTIMER_HEARTBEAT=65536 CONFIG_KTIMER_MINTICKS=128 Flexible page tweaks

CONFIG_LARGEST_FPAGE_SHIFT=16 CONFIG_SMALLEST_FPAGE_SHIFT=8 Thread tweaks

CONFIG_INTR_THREAD_MAX=256 KIP tweaks

CONFIG_KIP_EXTRA_SIZE=128 Kernel hacking

CONFIG_DEBUG=y CONFIG_DEBUG_DEV_UART=y CONFIG_KDB=y CONFIG_KPROBES=y CONFIG_SYMMAP=y CONFIG_PANIC_DUMP_STACK=y CONFIG_LOADER is not set Test Case

— You are receiving this because you commented.

Reply to this email directly, view it on GitHub https://github.com/f9micro/f9-kernel/issues/143#issuecomment-284681967, or mute the thread https://github.com/notifications/unsubscribe-auth/AD7RiC-lzAbr5cg8HdinQPH3Ng6tWJoqks5rjTCsgaJpZM4MUpA9 .

gnitnaw commented 7 years ago

No, I simply follow your instruction: sudo screen /dev/ttyUSB0 115200 8n1

louisom commented 7 years ago

That's weird. Using your setting with master (d466fe1dcf8c) branch, I can get the output:

====================================================
 Copyright(C) 2013-2014 The F9 icrokernel Project  
====================================================
Git head: d466fe1dcf8c0b230a6e7397ba4402bf5812bd37
Host: x86_64
Build: 2017-03-07T18:32:35+0800

Press '?' to print KDB menu

L4/Pistachio test suite starts

Simple IPC test (inter-as, only untyped words)
  Send Message transfer:   OK
  ReplyWait Message transfer:   OK
Returned Id 0 != 0 (local) [0 (global)]
  From parameter (local):   FAILED
Kernel panic: Hard fault. Restarting
-------KTABLES------
gnitnaw commented 7 years ago

If I use UART2 (change setting in .config , and connect to PD5/PD6) instead of UART4, I get:

==================================================== Copyright(C) 2013-2014 The F9 Microkernel Project

Git head: d466fe1dcf8c0b230a6e7397ba4402bf5812bd37 Host: x86_64 tt y sma2d o)0

KDB

gnitnaw commented 7 years ago

Here is the message with USART1:

==================================================== Copyright(C) 2013-2014 The F9 Microkernel Project

Git head: d466fe1dcf8c0b230a6e7397ba4402bf5812bd37 Host: x86_64 Build: 2017-03-07T12:08:07+0100

Press '?' to print KDB menu

L4/Pistachio test suite starts

Simple IPC test (inter-as, only untyped words) Send Message transfer: OK ReplyWait Message transfer: OK Returned Id 0 != 0 (local) [0 (global)] From parameter (local): FAILED lcd main

gapry commented 7 years ago

@gnitnaw For now, I know you have tried USART1, UART2 and UART4 but it doesn't work normally.

Hence, I suggest you to read the document STM32F420 Note at this moment, please pay attention 「示範專案:USART 測試程式」, which is a part of the document.

If it doesn't work, I suggest you change your USB TTL Cable.

gnitnaw commented 7 years ago

For me USART1 works... USART2/4 doesn't work.

ab1aw commented 5 years ago

Are you also using the LEDs? The LEDs and the USART4 (PA0 and PA1) are using the same GPIO pins. Take a look at my ping-pong and other apps on my fork to see working variations of user/apps.