> the error will crop back up if MPU support is enabled without also
> performing a protected build since up_mpu.c is only included in a
> protected build.

Just a heads up there are some case on some HW (imxrt, maybe the K66 for the
DMA) were the MPU is needed to enable the proper access but not in protected
build.

ifeq ($(CONFIG_ARM_MPU),y)
  ifneq ($(CONFIG_BUILD_PROTECTED),y)
CMN_CSRCS += up_mpu.c
  endif
CHIP_CSRCS += imxrt_mpuinit.c
  ifeq ($(CONFIG_BUILD_PROTECTED),y)
CHIP_CSRCS += imxrt_userspace.c
  endif
endif

-----Original Message-----
From: John Rippetoe [mailto:jrippe...@roboticresearch.com]
Sent: Friday, March 20, 2020 2:09 PM
To: dev@nuttx.apache.org
Subject: Re: Build errors with inline functions

I think at a minimum, we need to conditionally include mpu.h only when
the MPU support is actually needed. Options for that are CONFIG_ARM_MPU,
CONFIG_ARCH_USE_MPU, or CONFIG_BUILD_PROTECTED. If we use either of the
first two, the error will crop back up if MPU support is enabled without
also performing a protected build since up_mpu.c is only included in a
protected build. I know that it is possible to enable MPU support
without performing a protected build, but is there any use case for
this? If not, it seems odd that these would be separate options. But if
there is, then we need to figure out how to get the build to compile in
that scenario. That might be as simple as including up_mpu.c whenever
MPU support is enabled as opposed to only doing so when a protected
build is requested. Someone with more knowledge on how these two
features interact would be a better source of info on that than I am.

On 3/20/20 11:21 AM, Gregory Nutt wrote:
>
>> If we want to support the compiler which don't support inline, it's
>> better that:
>> 1.Remove CONFIG_HAVE_INLINE from include/nuttx/compiler.h
>> 2.Convert inline fucntion to macro to normal function
>> It isn't hard to fix because grep just can find inline about 100 times.
> There are inline functions in common C files which are not a problem
> because we have the definitions in compiler.h.  The use in header
> files is causing all of the problems.
CONFIDENTIALITY NOTICE: This communication may contain private, confidential
and privileged material for the sole use of the intended recipient. If you
are not the intended recipient, please delete this e-mail and any
attachments permanently.

Reply via email to