mpy进展from 20190824

三世轮回 提交于 2020-08-15 02:44:19

20190823之前

(1)编译在ubantu下进行

(2)选择1.9.4版本。这应该是最新的release版本,并且dcexpert 分享的帖子[分享] 在MicroPython中添加外部C模块的方法里面的链接:https://github.com/micropython/micropython/blob/master/docs/develop/cmodules.rst,这个文档的例子应该可以在1.9.4里面跑起来,但是在1.4.5版本是无法跑起来的,因为例子中的变量类型我在1.4.5里面找不到。

(3)昨晚搞定了KEIL下编译运行bare的例子。就是把1.4.5的KEIl里面的mpy版本内容由1.4.5换成1.9.4,竟然能编译通过了。(事实上并没有成功。)

2019.08.24

(4)折腾大概一个小时,终于1.9.4的KEIL可以编译了,但是无法正确输出。那么先看看1.4.5的KEIL都改了什么东西吧。

所有个更改记录如下:
john@DESKTOP-AT0PVKR MINGW64 ~/Desktop/新建文件夹/last/micropython (master)
$ git log --pretty=oneline
fbcc16c47e4bc06bdedb4ecc9d552adc1f9378bd (HEAD -> master) okok
515b4089a501dc994a5aaa4aaf5358059057a9f9 vxxx
9d5a0cddd550eef5b8fc2651c9daf225fc0dd9ee tt
afd7f54ab41727d31adecf3aefed203477ee5218 v2
c1c82c416d1647596cbd6a14ddf04e145811f6a2 v1






 

看看每一个修改了什么?

---------------------------------------------------------------------------------------

(1)mpconfigport.h,添加

#define __LITTLE_ENDIAN__  (1)
        
#define MICROPY_NLR_SETJMP (1)
   


(2) 屏蔽如下:

//void *malloc(size_t n) {return NULL;}
//void *calloc(size_t nmemb, size_t size) {return NULL;}
//void *realloc(void *ptr, size_t size) {return NULL;}
//void free(void *p) {}
//int printf(const char *m, ...) {return 0;}
//void *memcpy(void *dest, const void *src, size_t n) {return NULL;}
//int memcmp(const void *s1, const void *s2, size_t n) {return 0;}
//void *memmove(void *dest, const void *src, size_t n) {return NULL;}
//void *memset(void *s, int c, size_t n) {return NULL;}
//int strcmp(const char *s1, const char* s2) {return 0;}
//int strncmp(const char *s1, const char* s2, size_t n) {return 0;}
//size_t strlen(const char *s) {return 0;}
//char *strcat(char *dest, const char *src) {return NULL;}
//char *strchr(const char *dest, int c) {return NULL;}
//#include <stdarg.h>
//int vprintf(const char *format, va_list ap) {return 0;}
//int vsnprintf(char *str,  size_t  size,  const  char  *format, va_list ap) {return 0;}















//#undef putchar
//int putchar(int c) {return 0;}
//int puts(const char *s) {return 0;}

//void _start(void) {main(0, NULL);}
(3)修改堆栈

 

 

--

 

 

 

 

 

 

 

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!