关注下micropython1.4.5的pendsv.C以及如何提高编译速度

来源:互联网 发布:淘宝人工 编辑:程序博客网 时间:2024/05/17 02:26

micropython1.4.5用makefile编译通过,但是用编译1.4版本无法通过。

显示:

LINK build-PYBV10/firmware.elf
build-PYBV10/pendsv.o: In function `pendsv_object_ptr':
pendsv.c:(.text.pendsv_isr_handler+0xc): undefined reference to `pendsv_object'
Makefile:272: recipe for target 'build-PYBV10/firmware.elf' failed
mingw32-make: *** [build-PYBV10/firmware.elf] Error 1



于是把1.4版本的pendsv.C的

static void *pendsv_object; 改为void *pendsv_object;

就是说去掉了static就可以编译通过了。

显示:

LINK build-PYBV10/firmware.elf
   text    data     bss     dec     hex filename
 266308      96   28552  294956   4802c build-PYBV10/firmware.elf
Create build-PYBV10/firmware.dfu
Create build-PYBV10/firmware.hex


又试了下V1.3.2版本用static void *pendsv_object; 改为void *pendsv_object;也可以编译通过,用mingw32-make.EXE编译时间为2分22秒61。

编译主要是build-PYBV10这个文件里面多了很多.O文件等,我们知道.O文件是被gitignore的。

所以想多个对比编译时间速度的实验。就删除这个文件夹build-PYBV10,当然会多删除了.C文件不过不要紧  git reset到过去的版本就可以了。

用指令mingw32-make.exe  -J4     编译时间为1分21秒。

那么如何查找自己的电脑是几核的CPU呢?打开资源管理器,看性能里面的CPU有几个栏,就是几个核了。

好现在再用mingw32-make.EXE编译时间为2分41秒

好现在再用mingw32-make.EXE  -J4 编译时间为1分19秒。

所以多核指令是可以提高编译速度的


注意上面的正确写法是mingw32-make.exe  -j4   就是都是小写的。大写的可不可以没试验过。

又试了下V1.1版本用static void *pendsv_object; 改为void *pendsv_object;也可以编译通过

又试了下V1.0版本用static void *pendsv_object; 改为void *pendsv_object;也可以编译通过





原创粉丝点击