awtk/docs/porting_common.md
2018-06-22 06:49:41 +08:00

2.8 KiB
Raw Blame History

嵌入式平台移植注意事项

一、几个常用的宏

  • 1.WITH_BITMAP_FONT 如果需要使用位图字体请定义该宏。

  • 2.WITH_STB_FONT 如果需要使用truetype字体请定义该宏(请确保stack不小于16KB)。一般WITH_STB_FONT和WITH_BITMAP_FONT任选一个。

  • 3.WITH_STB_IMAGE 如果需要使用png/jpg图片请定义该宏(请确保stack不小于16KB)。由于解码图片需要较大内存,所以在内存较 少的情况下我们直接把png/jpg转换成位图数据当作常量编译到代码中此时不需要定义该宏。

  • 4.WITH_FS_RES 如果支持从文件系统中加载资源请定义该宏。需要有兼容POSIX标准的FS接口如果没有则需要自己实现src/base/fs.c中的函数。

  • 5.USE_GUI_MAIN 嵌入式系统有自己的main函数时请定义该宏。

  • 6.WITH_WCSXXX 如果出现wcsxxx之类的函数没有定义时请定义该宏。

  • 7.HAS_FAST_MEMCPY 如果有高效的memcpy函数请定义该宏。

  • 8.WITH_BITMAP_RGB565 如果支持rgb565格式请定义该宏。除了使用nanovg渲染一般情况都可以定义该宏。

  • 9.WITH_BITMAP_BGRA 缺省图片加载之后的格式为RGBA但有的硬件加速需要使用BGRA格式(如stm32 dma2d),此时需要定义该宏。

  • 10.WITH_LOW_RES 资源有限时请定义该宏。

  • 11.WITH_DYNAMIC_TR 如果需要动态翻译字符串时请定义该宏。

系统内存小余8M时推荐定义WITH_BITMAP_FONT,USE_GUI_MAIN,HAS_FAST_MEMCPY,WITH_BITMAP_RGB565,WITH_LOW_RES 系统内存超过8M时推荐定义WITH_STB_FONT,WITH_STB_IMAGE,USE_GUI_MAIN,HAS_FAST_MEMCPY,WITH_BITMAP_RGB565,WITH_DYNAMIC_TR

二、include路径

  • 1.基本路径
awtk
awtk\src
awtk\3rd
  • 2.picasso的路径(如果启用)
awtk\3rd\picasso\src
awtk\3rd\picasso\src\gfx
awtk\3rd\picasso\include
awtk\3rd\picasso\src\include
awtk\3rd\picasso\build
  • 3.agg的路径(如果启用)
3rd/agg/include

三、要加入到工程的文件

  • src/base 全部加入。
  • src/font 全部加入。
  • src/main_loop/main_loop_simple.*
  • src/window_animators/ 如果需要窗口动画而且支持framebuffer加入window_animator_fb.c否则加入window_animator_null.c。
  • src/image_loader 全部加入。
  • src/platforms/raw/mutex.c 加入本文件或者自己实现mutex。
  • src/ui_loader 全部加入。
  • src/window_animators 全部加入。
  • src/blend 使用framebuffer时全部加入。
  • src/lcd 根据LCD类型选择相应的文件。
  • src/tk.c
  • src/tk.h
  • src/vgcanvas/vgcanvas_null.c 如果不使用vgcanvas请加入本文件。
  • src/xml 可选。
  • 3rd/picasso 可选。
  • 3rd/agg 可选。

四、其它

使用keil编译时请在C/C++ -> Misc Controls中加上**--gnu**标志。