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;也可以编译通过