Ubuntu安装MDK
阅读原文时间:2023年07月15日阅读:1

1 环境部署

  • [x] Ubuntu 18.04

  • [x] Wine 3.0.4

    lscpu

序号

属性

描述

1

架构

x86_64

2

CPU 运行模式

32-bit, 64-bit

3

字节序

Little Endian

4

CPU

4

5

在线 CPU 列表

0-3

6

每个核的线程数

1

7

每个座的核数

4

8

1

9

NUMA 节点

1

10

厂商 ID

GenuineIntel

11

CPU 系列

6

13

型号

158

14

型号名称

Intel(R) Core(TM) i5-7400 CPU @ 3.00GHz

15

步进

9

16

CPU MHz

2748.422

17

CPU 最大 MHz

3500.0000

18

CPU 最小 MHz

800.0000

19

BogoMIPS

6000.00

20

虚拟化

VT-x

21

L1d 缓存

32K

22

L1i 缓存

32K

23

L2 缓存

256K

24

L3 缓存

6144K

25

NUMA 节点0 CPU

0-3

# 添加i386架构
sudo dpkg --add-architecture i386
# 安装64位wine
sudo apt install wine64
# 添加wineHQ签名密钥
wget -qO- https://dl.winehq.org/wine-builds/Release.key | sudo apt-key add -
# 添加存储库
sudo apt-add-repository 'deb http://dl.winehq.org/wine-builds/ubuntu/ artful main'

2 “安装”MDK

(1)将Win下安装的MDK文件,打包压缩,传送到Ubuntn;

(2)安装Pack,将MDK文件夹Pack中的.Download下载的pack文件离线安装;

(3)Ubuntu显示隐藏文件Ctrl+H;

(4)μVision⇒ Project⇒ Manage⇒ Pack Installer⇒ File⇒ Import⇒ Keil.STM32F1xx_DFP.1.0.5.pdsc;

(5)重启μVision即可新建工程;

3 问题

--- Error: failed to execute '\home\xdq\install\MD\Kmdk514\core\ARM\ARMCC\Bin\ArmCC'

没有指定ARMCC

依次打开:

Project-->Manage-->Compoments,Books-->Folders/Extensions

图3.1 设置路径

【Ubuntu源文件修改】

error You are building kernel with non-retpoline compiler, please update your compiler


make -C /lib/modules/4.15.0-50-generic/build  M=/home/xdq/install/Drivers/CH341SER_LINUX
make[1]: 进入目录“/usr/src/linux-headers-4.15.0-50-generic”
arch/x86/Makefile:252: *** 分隔符缺失 (你大概想用 TAB,而不是八个空格)。 停止。
make[1]: 离开目录“/usr/src/linux-headers-4.15.0-50-generic”
Makefile:5: recipe for target 'default' failed
make: *** [default] Error 2

【进入】

/usr/src/$(uname -r)/arch/x86

【打补丁】

diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index f5d7f41..75ef499 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -220,9 +220,6 @@ KBUILD_CFLAGS += -fno-asynchronous-unwind-tables

 # Avoid indirect branches in kernel to deal with Spectre
 ifdef CONFIG_RETPOLINE
-ifeq ($(RETPOLINE_CFLAGS),)
-  $(error You are building kernel with non-retpoline compiler, please update your compiler.)
-endif
   KBUILD_CFLAGS += $(RETPOLINE_CFLAGS)
 endif

@@ -307,6 +304,13 @@ ifndef CC_HAVE_ASM_GOTO
     @echo Compiler lacks asm-goto support.
     @exit 1
 endif
+ifdef CONFIG_RETPOLINE
+ifeq ($(RETPOLINE_CFLAGS),)
+    @echo "You are building kernel with non-retpoline compiler." >&2
+    @echo "Please update your compiler." >&2
+    @false
+endif
+endif

【下载文件修改】

make -C /lib/modules/4.15.0-50-generic/build  M=/home/xdq/install/Drivers/CH341SER_LINUX
make[1]: 进入目录“/usr/src/linux-headers-4.15.0-50-generic”
  CC [M]  /home/xdq/install/Drivers/CH341SER_LINUX/ch34x.o
/home/xdq/install/Drivers/CH341SER_LINUX/ch34x.c: 在函数‘ch34x_close’中:
/home/xdq/install/Drivers/CH341SER_LINUX/ch34x.c:591:2: 错误:未知的类型名‘wait_queue_t’
  wait_queue_t wait;
  ^~~~~~~~~~~~
/home/xdq/install/Drivers/CH341SER_LINUX/ch34x.c:591:15: 警告:未使用的变量‘wait’ [-Wunused-variable]
  wait_queue_t wait;
               ^~~~
/home/xdq/install/Drivers/CH341SER_LINUX/ch34x.c:590:7: 警告:未使用的变量‘timeout’ [-Wunused-variable]
  long timeout;
       ^~~~~~~
/home/xdq/install/Drivers/CH341SER_LINUX/ch34x.c:589:6: 警告:未使用的变量‘bps’ [-Wunused-variable]
  int bps;
      ^~~
/home/xdq/install/Drivers/CH341SER_LINUX/ch34x.c: 在函数‘wait_modem_info’中:
/home/xdq/install/Drivers/CH341SER_LINUX/ch34x.c:797:7: 错误:隐式声明函数‘signal_pending’ [-Werror=implicit-function-declaration]
   if( signal_pending(current) )
       ^~~~~~~~~~~~~~
cc1:有些警告被当作是错误
scripts/Makefile.build:337: recipe for target '/home/xdq/install/Drivers/CH341SER_LINUX/ch34x.o' failed
make[2]: *** [/home/xdq/install/Drivers/CH341SER_LINUX/ch34x.o] Error 1
Makefile:1552: recipe for target '_module_/home/xdq/install/Drivers/CH341SER_LINUX' failed
make[1]: *** [_module_/home/xdq/install/Drivers/CH341SER_LINUX] Error 2
make[1]: 离开目录“/usr/src/linux-headers-4.15.0-50-generic”
Makefile:5: recipe for target 'default' failed
make: *** [default] Error 2

注释或删除:wait_queue_t,long timeout,int bps

添加头文件: #include