0

有相当古老的 uClinux-dist-20080808和 uClinux-dist-20080808-20090112 和 uClinux_on_stm32 补丁用于STM32F10x MCU,如AN3012所述。

我使用 Ubuntu 18.04(在 VirtualBox 内)构建 uClinux 并逐步完成 AN3012。

因此,我运行“make menuconfig”,输入第 15 页 (AN3012) 所示的设置,然后退出菜单。终端中有许多消息,最后我得到了这个:

配置写入 .config

make[2]: 离开目录'/home/maksim/Projects/STM/uClinux-dist/config' make[1]: 离开目录'/home/maksim/Projects/STM/uClinux-dist' make[1]: 进入目录 '/home/maksim/Projects/STM/uClinux-dist' Makefile:228: *** 混合隐式和普通规则:不推荐使用的语法

Makefile:245: *** 混合隐式和普通规则:不推荐使用的语法

KCONFIG_NOTIMESTAMP=1 make ARCH=arm CROSS_COMPILE=arm-uclinuxeabi- -C linux-2.6.x menuconfig

make[2]:进入目录'/home/maksim/Projects/STM/uClinux-dist/linux-2.6.x'

Makefile:434: *** 混合隐式和普通规则:不推荐使用的语法

Makefile:1563: *** 混合隐式和普通规则:不推荐使用的语法

make[2]: *** 没有规则来制作目标'menuconfig'。停止。

make[2]: 离开目录'/home/maksim/Projects/STM/uClinux-dist/linux-2.6.x'

Makefile:183: 目标“linux_menuconfig”的配方失败

make[1]: *** [linux_menuconfig] 错误 2

make[1]: 离开目录'/home/maksim/Projects/STM/uClinux-dist'

Makefile:127:目标“menuconfig”的配方失败 make:*** [menuconfig] 错误 2

请帮助了解问题所在并进行修复。非常感谢您的帮助!

对于那些想要重现该问题的人的注意事项:

1)您需要修复 uCLinux-dist/kconfig/config/zconf.hash.c(在第 165 行插入下面的代码段)

#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
    __attribute__ ((__gnu_inline__))
#endif

2) uClinux uClinux-dist-20080808 在这里可用

3) uClinux-dist-20080808-20090112 补丁在这里可用

4) uClinux_on_stm32 补丁在这里可用

4

1 回答 1

0

解决方案是使用较旧的 Linux版本。Ubuntu 12.04.5 没问题。

不要忘记将 CodeSourcery /bin 文件夹添加到 PATH。

于 2020-05-05T06:49:01.143 回答