本帖最后由 vsfopen 于 2018-8-30 23:07 编辑
目前,vsflinux虽然已经开源,但是还没公开linux头文件的生成方法,我先尝试几种方法,最终确定下最简单的。
目前尝试的方法:
win10的wsl(windows subsystem for linux):
1. 在win10的powershell管理员模式下,运行lxrun /install
2. 安装完成后,可以运行bash on ubuntu on windows
安装完后,建议更新一下。
3. 安装linux头文件,不过这里只能使用x86-64的只要安装GCC后,头文件就位于/usr/include里,把include目录,全部复制到vsf/component/port/linux下
4. 删除include目录里,和IAR冲突的头文件
比如:setjmp.h, stdio.h, string.h等等
5. 修改feature.h
#undef ......
#undef __KERNEL_STRICT_NAMES
#define __USE_VSF
#ifdef __USE_VSF
# define _POSIX_SOURCE 1
# define _POSIX_C_SOURCE 1
# define __USE_POSIX199309 1
# define __USE_MISC 1
// to avoid types.h to define stdint types
# define __int8_t_defined
#endif
在开头的一大段#undef后,增加上面的代码
6. 修改pthread相关的头文件,主要修改数据结构:typedef struct vsfsm_crit_t pthread_mutex_t;
typedef union
{
#ifdef __USE_VSF
struct vsfsm_t *pending_next;
#else
struct
{
int __lock;
unsigned int __futex;
__extension__ unsigned long long int __total_seq;
__extension__ unsigned long long int __wakeup_seq;
__extension__ unsigned long long int __woken_seq;
void *__mutex;
unsigned int __nwaiters;
unsigned int __broadcast_seq;
} __data;
char __size[__SIZEOF_PTHREAD_COND_T];
__extension__ long long int __align;
#endif
} pthread_cond_t;
第二种,最简单的方法:
1. 加QQ群:736714326
2. 群文件里下载include_wsl_fixed.zip
|