You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@nuttx.apache.org by "steelen@163.com" <st...@163.com> on 2020/05/08 07:24:36 UTC
Hi,anybody build nuttx that use openamp on board STM32H747I-disco
Hi
Anybody build nuttx that use openamp on board stm32h747i-disco?
I turn on the openamp opion ,but give errors like
make[1]: Entering directory '/home/steelen/nuttx/nuttx/openamp'
make[1]: *** No rule to make target 'libmetal/lib/system/nuttx/condition.c', needed by '.depend'. Stop.
make[1]: Leaving directory '/home/steelen/nuttx/nuttx/openamp'
tools/Makefile.unix:504: recipe for target 'pass2dep' failed
make: *** [pass2dep] Error 2
I also download the incubator-nuttx version , when make it download a lot files
and also erros
make[1]: Entering directory '/home/steelen/nuttx/incubator-nuttx/openamp'
In file included from /home/steelen/nuttx/incubator-nuttx/include/metal/io.h:23:0,
from /home/steelen/nuttx/incubator-nuttx/include/metal/device.h:16,
from ./libmetal/lib/system/nuttx/device.c:12:
/home/steelen/nuttx/incubator-nuttx/include/metal/cpu.h:15:35: fatal error: metal/processor//cpu.h: No such file or directory
# include <metal/processor//cpu.h>
^
compilation terminated.
ERROR: arm-none-eabi-gcc failed: 1
command: arm-none-eabi-gcc -M -fno-builtin -Wall -Wstrict-prototypes -Wshadow -Wundef -g -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard -I. -isystem /home/steelen/nuttx/incubator-nuttx/include -D__KERNEL__ -pipe -DMETAL_INTERNAL ./libmetal/lib/system/nuttx/device.c
Makefile:72: recipe for target '.depend' failed
make[1]: *** [.depend] Error 1
make[1]: Leaving directory '/home/steelen/nuttx/incubator-nuttx/openamp'
tools/Makefile.unix:498: recipe for target 'pass2dep' failed
make: *** [pass2dep] Error 2
I modify # include <metal/processor//cpu.h> to # include <metal/processor/cpu.h>
also erros
steelen@163.com
Re: RE: Hi,anybody build nuttx that use openamp on board STM32H747I-disco
Posted by Xiang Xiao <xi...@gmail.com>.
On Sat, May 9, 2020 at 10:47 AM steelen@163.com <st...@163.com> wrote:
>
> Thanks a lot
> I make it work
>
> But there is some other bugs
> First
> in file
> /incubator-nuttx/include/metal/cpu.h
> line 15 # include <metal/processor//cpu.h> should be # include <metal/processor/cpu.h>
>
> Second
> There is no "processor " directory under /incubator-nuttx/include/metal
> I don't understand the rules of makefile ,I just copy the directory from /incubator-nuttx/openamp/libmetal/lib/processor under /incubator-nuttx/include/metal
> and copy cpu.h and atomic.h from /incubator-nuttx/openamp/libmetal/lib/processor/arm to /incubator-nuttx/openamp/libmetal/lib/processor and it works.
> Perhaps this is a stupid way to do so ,forgive me .
>
> I examiming the code ,perhaps make a link is the right way.
We can't use the link here directly, because the header files need do
some process to remove the special marker, like @PROJECT_SYSTEM@:
/*
* Copyright (c) 2015, Xilinx Inc. and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
/*
* @file mutex.h
* @brief Mutex primitives for libmetal.
*/
#ifndef __METAL_MUTEX__H__
#define __METAL_MUTEX__H__
#ifdef __cplusplus
extern "C" {
#endif
/** \defgroup mutex Mutex Interfaces
* @{
*/
The snippet in openamp/libmetal.defs use sed to replace these mark
with the real value:
#include <metal/system/@PROJECT_SYSTEM@/mutex.h>
LIBMETAL_HDRS_SEDEXP := \
"s/@PROJECT_VER_MAJOR@/0/g; \
s/@PROJECT_VER_MINOR@/1/g; \
s/@PROJECT_VER_PATCH@/0/g; \
s/@PROJECT_VER@/0.1.0/g; \
s/@PROJECT_SYSTEM@/nuttx/g; \
s/@PROJECT_PROCESSOR@/$(LIBMETAL_ARCH)/g; \
s/@PROJECT_MACHINE@/$(CONFIG_ARCH_CHIP)/g; \
s/@PROJECT_SYSTEM_UPPER@/nuttx/g; \
s/@PROJECT_PROCESSOR_UPPER@/$(LIBMETAL_ARCH)/g; \
s/@PROJECT_MACHINE_UPPER@/$(CONFIG_ARCH_CHIP)/g; \
s/cmakedefine/undef/g"
libmetal.zip:
$(Q) wget https://github.com/OpenAMP/libmetal/archive/v$(VERSION).zip
-O libmetal.zip
$(Q) unzip -o libmetal.zip
$(Q) mv libmetal-$(VERSION) libmetal
$(Q) patch -p0 < 0001-nuttx-change-sched_kfree-to-metal_free_memory.patch
.libmetal_headers: libmetal.zip
$(eval headers := $(wildcard libmetal/lib/compiler/gcc/*.h))
$(eval headers += $(wildcard libmetal/lib/processor/$(LIBMETAL_ARCH)/*.h))
$(eval headers += $(wildcard libmetal/lib/system/nuttx/*.h))
$(eval headers += $(wildcard libmetal/lib/*.h))
$(foreach header,$(headers), \
$(eval hobj := $(patsubst
libmetal$(DELIM)lib$(DELIM)%,$(TOPDIR)$(DELIM)include$(DELIM)metal$(DELIM)%,$(header)))
\
$(shell if [ ! -d $(dir $(hobj)) ];then mkdir -p $(dir $(hobj)); fi) \
$(shell sed $(LIBMETAL_HDRS_SEDEXP) $(header) > $(hobj)) \
So you don't need do anything special action after apply my patch.
it's enough to run:
make distclean
./tools/configure.sh xxx:yyy
make
>
>
>
>
>
>
>
> steelen@163.com
>
> 发件人: Xiang Xiao
> 发送时间: 2020-05-08 17:21
> 收件人: dev@nuttx.apache.org
> 主题: RE: Hi,anybody build nuttx that use openamp on board STM32H747I-disco
> Please try this patch:
> https://github.com/apache/incubator-nuttx/pull/1003
> The openamp/libmetal.defs fail to handle arch other than x86-64 and risc-v correctly.
>
> Thanks
> Xiang
>
> -----Original Message-----
> From: steelen@163.com <st...@163.com>
> Sent: Friday, May 8, 2020 3:25 PM
> To: dev <de...@nuttx.apache.org>
> Subject: Hi,anybody build nuttx that use openamp on board STM32H747I-disco
>
> Hi
> Anybody build nuttx that use openamp on board stm32h747i-disco?
> I turn on the openamp opion ,but give errors like
>
> make[1]: Entering directory '/home/steelen/nuttx/nuttx/openamp'
> make[1]: *** No rule to make target 'libmetal/lib/system/nuttx/condition.c', needed by '.depend'. Stop.
> make[1]: Leaving directory '/home/steelen/nuttx/nuttx/openamp'
> tools/Makefile.unix:504: recipe for target 'pass2dep' failed
> make: *** [pass2dep] Error 2
>
> I also download the incubator-nuttx version , when make it download a lot files and also erros
>
> make[1]: Entering directory '/home/steelen/nuttx/incubator-nuttx/openamp'
> In file included from /home/steelen/nuttx/incubator-nuttx/include/metal/io.h:23:0,
> from /home/steelen/nuttx/incubator-nuttx/include/metal/device.h:16,
> from ./libmetal/lib/system/nuttx/device.c:12:
> /home/steelen/nuttx/incubator-nuttx/include/metal/cpu.h:15:35: fatal error: metal/processor//cpu.h: No such file or directory # include <metal/processor//cpu.h>
> ^
> compilation terminated.
> ERROR: arm-none-eabi-gcc failed: 1
> command: arm-none-eabi-gcc -M -fno-builtin -Wall -Wstrict-prototypes -Wshadow -Wundef -g -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard -I. -isystem /home/steelen/nuttx/incubator-nuttx/include -D__KERNEL__ -pipe -DMETAL_INTERNAL ./libmetal/lib/system/nuttx/device.c
> Makefile:72: recipe for target '.depend' failed
> make[1]: *** [.depend] Error 1
> make[1]: Leaving directory '/home/steelen/nuttx/incubator-nuttx/openamp'
> tools/Makefile.unix:498: recipe for target 'pass2dep' failed
> make: *** [pass2dep] Error 2
>
> I modify # include <metal/processor//cpu.h> to # include <metal/processor/cpu.h>
> also erros
>
>
>
>
>
> steelen@163.com
Re: Re: Hi,anybody build nuttx that use openamp on board STM32H747I-disco
Posted by "steelen@163.com" <st...@163.com>.
ok, I find a good way to solve the problem
modify
/incubator-nuttx/include/metal/cpu.h
line 15 # include <metal/processor//cpu.h>
to
# include <openamp/libmetal/lib/cpu.h>
steelen@163.com
发件人: steelen@163.com
发送时间: 2020-05-09 10:47
收件人: dev
主题: Re: RE: Hi,anybody build nuttx that use openamp on board STM32H747I-disco
Thanks a lot
I make it work
But there is some other bugs
First
in file
/incubator-nuttx/include/metal/cpu.h
line 15 # include <metal/processor//cpu.h> should be # include <metal/processor/cpu.h>
Second
There is no "processor " directory under /incubator-nuttx/include/metal
I don't understand the rules of makefile ,I just copy the directory from /incubator-nuttx/openamp/libmetal/lib/processor under /incubator-nuttx/include/metal
and copy cpu.h and atomic.h from /incubator-nuttx/openamp/libmetal/lib/processor/arm to /incubator-nuttx/openamp/libmetal/lib/processor and it works.
Perhaps this is a stupid way to do so ,forgive me .
I examiming the code ,perhaps make a link is the right way.
steelen@163.com
发件人: Xiang Xiao
发送时间: 2020-05-08 17:21
收件人: dev@nuttx.apache.org
主题: RE: Hi,anybody build nuttx that use openamp on board STM32H747I-disco
Please try this patch:
https://github.com/apache/incubator-nuttx/pull/1003
The openamp/libmetal.defs fail to handle arch other than x86-64 and risc-v correctly.
Thanks
Xiang
-----Original Message-----
From: steelen@163.com <st...@163.com>
Sent: Friday, May 8, 2020 3:25 PM
To: dev <de...@nuttx.apache.org>
Subject: Hi,anybody build nuttx that use openamp on board STM32H747I-disco
Hi
Anybody build nuttx that use openamp on board stm32h747i-disco?
I turn on the openamp opion ,but give errors like
make[1]: Entering directory '/home/steelen/nuttx/nuttx/openamp'
make[1]: *** No rule to make target 'libmetal/lib/system/nuttx/condition.c', needed by '.depend'. Stop.
make[1]: Leaving directory '/home/steelen/nuttx/nuttx/openamp'
tools/Makefile.unix:504: recipe for target 'pass2dep' failed
make: *** [pass2dep] Error 2
I also download the incubator-nuttx version , when make it download a lot files and also erros
make[1]: Entering directory '/home/steelen/nuttx/incubator-nuttx/openamp'
In file included from /home/steelen/nuttx/incubator-nuttx/include/metal/io.h:23:0,
from /home/steelen/nuttx/incubator-nuttx/include/metal/device.h:16,
from ./libmetal/lib/system/nuttx/device.c:12:
/home/steelen/nuttx/incubator-nuttx/include/metal/cpu.h:15:35: fatal error: metal/processor//cpu.h: No such file or directory # include <metal/processor//cpu.h>
^
compilation terminated.
ERROR: arm-none-eabi-gcc failed: 1
command: arm-none-eabi-gcc -M -fno-builtin -Wall -Wstrict-prototypes -Wshadow -Wundef -g -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard -I. -isystem /home/steelen/nuttx/incubator-nuttx/include -D__KERNEL__ -pipe -DMETAL_INTERNAL ./libmetal/lib/system/nuttx/device.c
Makefile:72: recipe for target '.depend' failed
make[1]: *** [.depend] Error 1
make[1]: Leaving directory '/home/steelen/nuttx/incubator-nuttx/openamp'
tools/Makefile.unix:498: recipe for target 'pass2dep' failed
make: *** [pass2dep] Error 2
I modify # include <metal/processor//cpu.h> to # include <metal/processor/cpu.h>
also erros
steelen@163.com
Re: RE: Hi,anybody build nuttx that use openamp on board STM32H747I-disco
Posted by "steelen@163.com" <st...@163.com>.
Thanks a lot
I make it work
But there is some other bugs
First
in file
/incubator-nuttx/include/metal/cpu.h
line 15 # include <metal/processor//cpu.h> should be # include <metal/processor/cpu.h>
Second
There is no "processor " directory under /incubator-nuttx/include/metal
I don't understand the rules of makefile ,I just copy the directory from /incubator-nuttx/openamp/libmetal/lib/processor under /incubator-nuttx/include/metal
and copy cpu.h and atomic.h from /incubator-nuttx/openamp/libmetal/lib/processor/arm to /incubator-nuttx/openamp/libmetal/lib/processor and it works.
Perhaps this is a stupid way to do so ,forgive me .
I examiming the code ,perhaps make a link is the right way.
steelen@163.com
发件人: Xiang Xiao
发送时间: 2020-05-08 17:21
收件人: dev@nuttx.apache.org
主题: RE: Hi,anybody build nuttx that use openamp on board STM32H747I-disco
Please try this patch:
https://github.com/apache/incubator-nuttx/pull/1003
The openamp/libmetal.defs fail to handle arch other than x86-64 and risc-v correctly.
Thanks
Xiang
-----Original Message-----
From: steelen@163.com <st...@163.com>
Sent: Friday, May 8, 2020 3:25 PM
To: dev <de...@nuttx.apache.org>
Subject: Hi,anybody build nuttx that use openamp on board STM32H747I-disco
Hi
Anybody build nuttx that use openamp on board stm32h747i-disco?
I turn on the openamp opion ,but give errors like
make[1]: Entering directory '/home/steelen/nuttx/nuttx/openamp'
make[1]: *** No rule to make target 'libmetal/lib/system/nuttx/condition.c', needed by '.depend'. Stop.
make[1]: Leaving directory '/home/steelen/nuttx/nuttx/openamp'
tools/Makefile.unix:504: recipe for target 'pass2dep' failed
make: *** [pass2dep] Error 2
I also download the incubator-nuttx version , when make it download a lot files and also erros
make[1]: Entering directory '/home/steelen/nuttx/incubator-nuttx/openamp'
In file included from /home/steelen/nuttx/incubator-nuttx/include/metal/io.h:23:0,
from /home/steelen/nuttx/incubator-nuttx/include/metal/device.h:16,
from ./libmetal/lib/system/nuttx/device.c:12:
/home/steelen/nuttx/incubator-nuttx/include/metal/cpu.h:15:35: fatal error: metal/processor//cpu.h: No such file or directory # include <metal/processor//cpu.h>
^
compilation terminated.
ERROR: arm-none-eabi-gcc failed: 1
command: arm-none-eabi-gcc -M -fno-builtin -Wall -Wstrict-prototypes -Wshadow -Wundef -g -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard -I. -isystem /home/steelen/nuttx/incubator-nuttx/include -D__KERNEL__ -pipe -DMETAL_INTERNAL ./libmetal/lib/system/nuttx/device.c
Makefile:72: recipe for target '.depend' failed
make[1]: *** [.depend] Error 1
make[1]: Leaving directory '/home/steelen/nuttx/incubator-nuttx/openamp'
tools/Makefile.unix:498: recipe for target 'pass2dep' failed
make: *** [pass2dep] Error 2
I modify # include <metal/processor//cpu.h> to # include <metal/processor/cpu.h>
also erros
steelen@163.com
RE: Hi,anybody build nuttx that use openamp on board STM32H747I-disco
Posted by Xiang Xiao <xi...@gmail.com>.
Please try this patch:
https://github.com/apache/incubator-nuttx/pull/1003
The openamp/libmetal.defs fail to handle arch other than x86-64 and risc-v correctly.
Thanks
Xiang
-----Original Message-----
From: steelen@163.com <st...@163.com>
Sent: Friday, May 8, 2020 3:25 PM
To: dev <de...@nuttx.apache.org>
Subject: Hi,anybody build nuttx that use openamp on board STM32H747I-disco
Hi
Anybody build nuttx that use openamp on board stm32h747i-disco?
I turn on the openamp opion ,but give errors like
make[1]: Entering directory '/home/steelen/nuttx/nuttx/openamp'
make[1]: *** No rule to make target 'libmetal/lib/system/nuttx/condition.c', needed by '.depend'. Stop.
make[1]: Leaving directory '/home/steelen/nuttx/nuttx/openamp'
tools/Makefile.unix:504: recipe for target 'pass2dep' failed
make: *** [pass2dep] Error 2
I also download the incubator-nuttx version , when make it download a lot files and also erros
make[1]: Entering directory '/home/steelen/nuttx/incubator-nuttx/openamp'
In file included from /home/steelen/nuttx/incubator-nuttx/include/metal/io.h:23:0,
from /home/steelen/nuttx/incubator-nuttx/include/metal/device.h:16,
from ./libmetal/lib/system/nuttx/device.c:12:
/home/steelen/nuttx/incubator-nuttx/include/metal/cpu.h:15:35: fatal error: metal/processor//cpu.h: No such file or directory # include <metal/processor//cpu.h>
^
compilation terminated.
ERROR: arm-none-eabi-gcc failed: 1
command: arm-none-eabi-gcc -M -fno-builtin -Wall -Wstrict-prototypes -Wshadow -Wundef -g -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard -I. -isystem /home/steelen/nuttx/incubator-nuttx/include -D__KERNEL__ -pipe -DMETAL_INTERNAL ./libmetal/lib/system/nuttx/device.c
Makefile:72: recipe for target '.depend' failed
make[1]: *** [.depend] Error 1
make[1]: Leaving directory '/home/steelen/nuttx/incubator-nuttx/openamp'
tools/Makefile.unix:498: recipe for target 'pass2dep' failed
make: *** [pass2dep] Error 2
I modify # include <metal/processor//cpu.h> to # include <metal/processor/cpu.h>
also erros
steelen@163.com