1 环境部署

  • [x] Ubuntu 18.04
  • [x] Wine 3.0.4

1.0 查看CPU信息

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

1.2 Wine环境

# 添加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 问题

3.1 不能编译

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

没有指定ARMCC

依次打开:

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

图3.1 设置路径

3.2 编译错误

【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 <linux/sched/signal.h>


[参考文献]

1 https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/commit/?id=25896d073d8a0403b07e6dec56f58e6c33678207

2 https://blog.csdn.net/nuttiny/article/details/79842900

3 https://blog.csdn.net/jazzsoldier/article/details/70170466

4 http://www.wch.cn/download/CH341SER_LINUX_ZIP.html

Ubuntu安装MDK的更多相关文章

  1. Mac OS、Ubuntu 安装及使用 Consul

    Consul 概念(摘录): Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置.与其他分布式服务注册与发现的方案,比如 Airbnb 的 SmartStac ...

  2. ubuntu安装mysql

    好记性不如烂笔头,记录一下,ubuntu安装mysql的指令. 安装MySQL: sudo apt-get install mysql-server sudo apt-get install mysq ...

  3. ubuntu安装vim时提示 没有可用的软件包 vim,但是它被其它的软件包引用了 解决办法

    ubuntu安装vim时提示 没有可用的软件包 vim-gtk3,但是它被其它的软件包引用了 解决办法 本人在ubuntu系统安装vim  输入 sudo apt-get install vim 提示 ...

  4. docker 1.8+之后ubuntu安装指定版本docker-engine

    这边记录ubuntu安装过程,首先是官网文档 If you haven’t already done so, log into your Ubuntu instance. Open a termina ...

  5. debian/ubuntu安装桌面环境

    apt-get install xorg apt-get install gnome 然后startx ubuntu 安装Gnome桌面 1.安装全部桌面环境,其实Ubuntu系列桌面实际上有几种桌面 ...

  6. 一个ubuntu phper的自我修养(ubuntu安装)

    ubuntu安装篇 一.ubuntu下载 到ubuntu官网下载适合自己电脑配置的系统版本,此处不做展开. 二.制作USB启动盘 在windows下制作USB启动盘,工具是universal usb ...

  7. ubuntu 安装JAVA jdk的两种方法:

    ubuntu 安装jdk 的两种方式: 1:通过ppa(源) 方式安装. 2:通过官网下载安装包安装. 这里推荐第1种,因为可以通过 apt-get upgrade 方式方便获得jdk的升级 使用pp ...

  8. [其他]Ubuntu安装genymotion后unable to load VirtualBox engine

    问题: Ubuntu安装genymotion后unable to load VirtualBox engine 解决办法: 如果没有安装VirtualBox,要先安装VirtualBox. 安装Vir ...

  9. Ubuntu安装出现左上角光标一直闪解决方式

    Ubuntu安装出现左上角光标一直闪解决方式: 01下载ubunu http://cn.ubuntu.com/download/ 02.软碟通 http://pan.baidu.com/s/1qY8O ...

随机推荐

  1. 3. Vue - 指令系统

    一.vue指令 (1) v-if // 条件判断 如果条件成立就在页面上生成一个标签并显示出来 (2) v-show //DOM中都存在只是显示与否 (3) v-for //注意 v-bind:key ...

  2. Windows环境下搭建Redis集群(Redis-x64-3.2.100)

    一 .前期准备Redis.Ruby语言运行环境.Redis的Ruby驱动redis-xxxx.gem.创建Redis集群的工具redis-trib.rb 二.安装配置redisredis下载地址 ht ...

  3. Python str & repr

    Python str & repr repr 更多是用来配合 eval 的 (<- 点击查看),str 更多是用来转换成字符串格式的 str() & repr() str() 和 ...

  4. Python进阶-XVIII 封装、(属性、静态方法、类方法)语法糖、反射

    1.封装 类中的私有化:属性的私有化和方法的私有化 会用到私有的这个概念de场景 1.隐藏起一个属性 不想让类的外部调用 2.我想保护这个属性,不想让属性随意被改变 3.我想保护这个属性,不被子类继承 ...

  5. Luogu P4585 [FJOI2015]火星商店问题

    颓文化课作业到很晚写篇博客清醒一下 首先我们仔细阅读并猜测了题意之后,就会想到一个暴力的线段树套可持久化0/1Trie的做法,但是它显然是过不去的 由于最近再做线段树分治的题,我们可以想到用线段树分治 ...

  6. 第四组 团队Git现场编程实战

    组员职责分工 组员 分工 林涛(组长) 分配任务.整理数据.写博客 童圣滔 UI界面制作 林红莲 UI界面制作 潘雨佳 测评出福州最受欢迎的商圈 于瀚翔 测评出福州最受欢迎的商圈 覃鸿浩 测评出福州人 ...

  7. Nor Flash的理论性能

    简介 为了评估Nor性能优化空间,我需要根据Spec计算出极限情况下,Nor Flash的性能理论值. 在全志的R**相关项目中分别支持ESMT.MXIC.Winbond.GD这4个厂家的Nor Fl ...

  8. Chrome保存整个网页为图片

    打开需要保存为图片的网页 然后按F12,接着按Ctrl+Shift+P 在红框内输入full 点击下面的“Capture full size screenshot”就可以保存整个网页为图片了 原文出处 ...

  9. JWT签名与验签

    签名Token生产 using System; using System.Collections.Generic; using System.IdentityModel.Tokens.Jwt; usi ...

  10. Map映射如何使用迭代器?

    迭代器只针对集合类型的数据,因此map类型的必须先转换成集合类型才能使用迭代器去获取元素. 1.在map中虽然不能直接实例化迭代器,但map集合提供了keySet()方法和value()方法,可以通过 ...