转 MTK编译过程

OpenWrt增加usb转串口支持 环境 硬件:HLK_MTK7628n 系统:官方Openwrt 分支:master 硬件连接 usb转串口芯片直连MTK7628的原生USB接口,比如 CH340 PL2303 CP2012 操作步骤 进入 make menuconfig 1.usb转串口支持 修改配置 选择 usb支持 及 usb转串口相关选项 ,见截图 2.usb工具 退出保存,编译、烧录固件 测试 进入系统,执行 lsusb 插入 cp2012 usb转串口线,控制台显示 再次执行lsusb 成功识别。 minico 阅读详情

导读:
  Comp.mak 完成模块编译连接,生成bin
  Gsm2.mak 主编译文件,完成clean,remake,new等工作
  XXX_GPRS.mak 客户私有的配置,根据客户的不同,而设定不同的配置文件
  Option.mak 工程中的基本配置及宏定义文件
  Verno_XXX.bld 版本文件
  Custom.bld 要保证在客户版本中都使用相同的配置的地方要写在这里,这个里面的一些文件不能被改变
  第一步:
  1.Make.bat命令首先调用ChgFileMode.bat,将编译过程中需要用到的文件的只读属性修改为可读写,再调用make2.pl。
  2.Make2.pl的主要工作就是匹配gsm2.mak的参数,然后通过命令
  system("${makeCmd} -f${makeFolder}${myMF} -r -R CUSTOMER=$custom PROJECT=$project $action");来调用gsm2.mak。
  具体解析出来就是
  make -f make/gsm2.mak -r –R CUSTOMER=工程名 PROJECT=gprs new|update|remake
  第二步:整个过程如图
  Gsm2.mak
  Option.mak
  XXX_GPRS.mak
  REL_CR_MMI_GPRS.mak
  USER_SPECIFIC.mak
  
  1.在Gsm2.mak文件的开始处调用了option.mak文件。
  2.Option.mak又将make/$(strip $(CUSTOMER))_$(strip$(PROJECT)).mak文件包含进来,这个模式匹配结果为:make目录下,工程名称_GPRS.mak,如K500GSD_GPRS.mak。
  3.在$(strip $(CUSTOMER))_$(strip$(PROJECT)).mak文件中又调用了REL_CR_MMI_$(strip$(PROJECT)).mak文件,这个文件模式具体被解析为make目录下的REL_CR_MMI_GPRS.mak文件。
  REL_CR_MMI_GPRS.mak这个文件定义了哪些文件需要加入到编译目录中。
  其中定义了MMI部分的编译目录为MMIDIR = plutommi。
  在变量CUS_REL_BASE_COMP中定义了资源的编译目录:
  CUS_REL_BASE_COMP += $(strip $(MMIDIR))/mmi $(strip $(MMIDIR))/mtkapp $(strip$(MMIDIR))/tool $(MMIDIR)/WIN32FS
  CUS_REL_BASE_COMP += $(strip$(MMIDIR))/Customer/CustomerInc /
  $(strip $(MMIDIR))/Customer/Customize /
  $(strip $(MMIDIR))/Customer/CustResource/$(strip $(MMI_VERSION))/
  $(strip $(MMIDIR))/Customer/debug /
  $(strip $(MMIDIR))/Customer/Images/GameImages /
  $(strip $(MMIDIR))/Customer/Images/decoder /
  $(strip $(MMIDIR))/Customer/Res_MMI /
  $(strip $(MMIDIR))/Customer/ResGenerator /
  $(strip $(MMIDIR))/Customer/ResourceDLL /
  $(strip $(MMIDIR))/Customer/Resources /
  $(strip $(MMIDIR))/Customer/Audio
  客户的资源需要编译如下文件:CUS_REL_SRC_COMP += mmiresource mtkapp gdi_arm plutommi vendorapp
  图片名称为:CUS_REL_BASE_COMP += $(strip$(MMIDIR))/Customer/Images/$(strip $(MMI_PROJ))$(strip$(MAIN_LCD_SIZE)),可解析为如:
  plutommi/customer/images/K500GSD176X220
  
  REL_CR_MMI_$(strip $(PROJECT)).mak
  其中CUS_REL_OBJ_LIST这个变量存储了连接过程中所需要的文件名称
  
  4.make/$(strip $(CUSTOMER))_$(strip$(PROJECT)).mak文件的功能。
  CUSTOM_OPTION定义了所有需要编译进去的功能模块的宏。
  COMPLIST变量的功能:
  ifeq ($(strip $(RTOS)),NUCLEUS)
  COMPLIST = nucleus nucleus_int nucleus_ctrl_code nucleus_critical_data
  Endif
  如果操作系统为NUCLEUS,那么COMPLIST为后面的值,COMPLIST为所要编译的文件列表,里面存放了很多*.inc文件,展开后就变为
  config/include
  stacklib/include
  adaptation/include
  kal/include等等
  
  5. option.mak文件的在后面调用了make/USER_SPECIFIC.mak
  如果使用CPU为ARM,则编译工具目录为如下定义
  ifeq ($(strip $(COMPILER)),ADS)
  DIR_ARM = c:/progra~1/arm/adsv1_2
  DIR_ARM := $(strip $(DIR_ARM))
  DIR_TOOL = $(DIR_ARM)/bin
  DIR_ARMLIB = $(DIR_ARM)/lib
  DIR_ARMINC = $(DIR_ARM)/include
  Endif
  连接打包工具等为如下几个:
  DIR_TOOL := $(strip $(DIR_TOOL))
  LINK = $(DIR_TOOL)/armlink.exe # Linker
  ASM = $(DIR_TOOL)/armasm.exe # ARM assembler
  LIB = $(DIR_TOOL)/armar.exe # Library tool
  BIN_CREATE = $(DIR_TOOL)/fromelf.exe # Binary tool
  下面这段代码告诉我们需要用什么编译工具来编译
  ifeq ($(strip $(COMPILER)),ADS)
  ifeq ($(strip $(COMPILE_MODE)),INST16)
  CC = $(DIR_TOOL)/tcc.exe # Thumb Mode(16bits), use tcc
  CC32 = $(DIR_TOOL)/armcc.exe # ARM Mode(32bits), use armcc
  CPPC = $(DIR_TOOL)/tcpp.exe # Thumb Mode(16bits), use tcc
  CPPC32 = $(DIR_TOOL)/armcpp.exe # ARM Mode(32bits), use armcc
  else
  ifeq ($(strip $(COMPILE_MODE)),INST32)
  CC = $(DIR_TOOL)/armcc.exe # ARM Mode(32bits), use armcc
  CPPC = $(DIR_TOOL)/armcpp.exe # ARM Mode(32bits), use armcc
  else
  CC = $(DIR_TOOL)/tcc.exe # Default tcc
  CC32 = $(DIR_TOOL)/armcc.exe # ARM Mode(32bits), use armcc
  CPPC = $(DIR_TOOL)/tcpp.exe # Thumb Mode(16bits), use tcc
  CPPC32 = $(DIR_TOOL)/armcpp.exe # ARM Mode(32bits), use armcc
  endif
  endif
  endif
  
  ifeq ($(strip $(PLATFORM)),MT6223P)
  AFLAGS := -g -littleend -cpu ARM7EJ-S
  Endif
  
  COMMINCDIRS变量在先包含了基本功能模块的inc目录后再包含如下文件
  COMMINCDIRS += $(DIR_ARMINC) $(CUSTOM_COMMINC),
  
  6.Option.mak中定义了一些附加功能模块的编译模式(是否被编译,被编译成什么样的结果),比如说蓝牙,UART3,WIFI,USB,WAP等等,还有一些编译器的设置。
  我们的版本号和Scat文件被定义在这个变量中:5056L
  SCATTERFILE = custom/system/$(strip$(BOARD_VER))/scat$(strip $(PLATFORM)).txt
  VERNOFILE = make/Verno_$(CUSTOMER).bld
  .bin文件的名称设置在这个变量TARGNAME = $(CUSTOMER)_$(strip$(SUB_BOARD_VER))_$(PROJECT)_$(strip $(PLATFORM))_$(strip$(CHIP_VER))
  TST_DB := $(strip $(TSTDIR))/database_classb
  然后被包含到Option.mak文件中来,include $(strip$(VERNOFILE))。
  
  7.Gsm2.mak文件中new执行的指令
  new : cleanall cmmgen mmi_feature_check asngen codegen asnregen operator_check_lite update
  
  update所执行的指令
  update : cleanlog cleanbin mcddll_update codegen resgen cksysdrv remake
  
  remake所执行的指令
  remake : mcp_check cleanlog cleanbin genverno libs $(BIN_FILE) done
  
  resgen用来编译资源文件:Res_XXX.c
  
  (echo CUSTOM_OPTION = $(foreach def,$(BOARD_VER) $(PLATFORM) $(LCD_MODULE) $(EXT_CAM_MODULE)$(CMOS_SENSOR),-D "$(def)") />$(MMIDIR)/customer/resGenerator/custom_option.txt)
  首先将CUSTOM_OPTION重定向到custom_option.txt中
  
  (type make/~cus_opt.tmp >>$(MMIDIR)/customer/resGenerator/custom_option.txt)
  使用tools/strcmpex.exe生成~cus_opt.tmp, ~tgt_opt.tmp,~inc.tmp三个文件
  将~cus_opt.tmp 重定向到custom_option.txt中
  
  (@del $(MMIDIR)/mmi/TargetOption.txt) &/
  (copy /Y make/~tgt_opt.tmp $(MMIDIR)/MMI/TargetOption.txt)
  再将TargetOption.txt更新一下,将~tgt_opt.tmp重定向到TargetOption.txt中
  
  (type make/~inc.tmp >$(MMIDIR)/customer/resGenerator/custom_include.tmp)
  再将~inc.tmp重定向到custom_include.tmp中,
  
  执行replace_project_name.pl文件,编译Res_XXX.c
  再执行ResGenerator_HW.bat,编译资源文件。
  
  8.Remake中的编译过程是在libs中完成的
  目标依赖:libs: cleanlib startbuildlibs $(COMPLIBLIST)
  Cleanlib在这个依赖中做的动作是清掉上次生成的.bin,.elf,.lis等文件,接着清掉需要重新来生成的.lib文件。$(COMPLIBLIST)这个依赖就是我们需要重新生成的.lib文件。
  .lib文件的依赖关系:%.lib:
  在这个依赖关系中所做的动作是设置编译器,链接器以及这个过程的参数等其他信息,然后将这些信息输出到:~compbld.tmp临时文件中。
  
  (tools/make.exe -fmake/comp.mak -k -r -R $(strip $(CMD_ARGU)) COMPONENT=$* >$(strip $(COMPLOGDIR))/$*.log) /
  调用了make命令来执行comp.mak文件,并且可以看到> $(strip$(COMPLOGDIR))/$*.log
  该语句将执行comp.mak文件时产生的信息存放在当前编译部分的.log文件中,通常看编译信息的比如custom.log等就是该中类型的文件。
  
  依赖关系:update_lib: $(TARGLIB)
  $(TARGLIB) : $(COBJS) $(CPPOBJS) $(AOBJS) $(ARMOBJS)
  $(TARGLIB)依赖很多.c和.obj
  .c.obj:
  @echo Compiling $< ...
  @tools/strcmpex.exe $(ACTION) remake e $(*F).via $(CINTWORK) -c $(CFLAGS) $(CDEFS) $(CINCDIRS) -o $(COMPOBJS_DIR)/$@$<
  @tools/strcmpex.exe $(ACTION) remake n $(*F).via $(CINTWORK) -c $(CFLAGS) $(CDEFS) $(CINCDIRS) $(MD) -o$(COMPOBJS_DIR)/$@ $<
  @if exist $(*F).via tools/warp.exe $(*F).via
  @if exist $(*F).via $(CMPLR) $(VIA) $(*F).via
  @if not $(ACTION)==remake if exist $(FIXPATH)/$(*F).d perl./tools/pack_dep.pl $(FIXPATH)/$(*F).d >$(RULESDIR)/$(COMPONENT)_dep/$(*F).det
  @if not $(ACTION)==remake if exist $(FIXPATH)/$(*F).d del /f /q$(FIXPATH)/$(*F).d >nul
  @if exist $(*F).via del /f /q $(*F).via
  要生成.o依赖于.c文件,如果我的.c文件经过更新,那么该.o就需要重新生成,该.c就需要重新来编译。
  @tools/strcmpex.exe $(ACTION) remake e$(*F).via $(CINTWORK) -c $(CFLAGS) $(CDEFS)$(CINCDIRS) -o $(COMPOBJS_DIR)/$@ $<
  @tools/strcmpex.exe $(ACTION) remake n $(*F).via $(CINTWORK) -c $(CFLAGS) $(CDEFS) $(CINCDIRS) $(MD) -o$(COMPOBJS_DIR)/$@ $<
  有两个编译环节,针对不同的编译动作,两者的不同点在于中间有个$(MD)编译选项,在有该选项的时间编译的时候就会生成依赖关系文件.d。
  @if not $(ACTION)==remake if exist $(FIXPATH)/$(*F).d perl./tools/pack_dep.pl $(FIXPATH)/$(*F).d >$(RULESDIR)/$(COMPONENT)_dep/$(*F).det
  在这个的语句中有$(FIXPATH)/$(*F).d >$(RULESDIR)/$ (COMPONENT)_dep/$(*F).det该动作又将.d文件作为.pl文件的参数,执行该perl文件后将结果输出放在.det文件中。
  @if not $(ACTION)==remake if exist $(FIXPATH)/$(*F).d del /f /q$(FIXPATH)/$(*F).d >nul
  然后又执行这个语句,将.d文件删除。
  在make文件中可以看到-include$(RULESDIR)/$(COMPONENT).dep
  在查看各个.o的依赖关系的时间要查看该.dep文件来决定是否需要来重新编译生成该.o。
  如果新添加了.h文件又没有来更新.dep文件就可能导致该.o查找依赖时没有依赖该.h。不去更新该.o。
  @if exist $(FIXPATH)/$(CUS_MTK_LIB)/$(COMPONENT).lib /
  (copy /z $(FIXPATH)/$(CUS_MTK_LIB)/$(COMPONENT).lib $(subst/,/,$(TARGLIB))) &/
  ($(LIB) -r $(TARGLIB) $(COMPOBJS_DIR)/*.obj) /
  else /
  ($(LIB) -create $(TARGLIB) $(COMPOBJS_DIR)/*.obj)
  在生成了.o文件后在.lib的依赖中可以看到($(LIB) -r$(TARGLIB) $(COMPOBJS_DIR)/*.obj)
  该语句将生成的.o文件打包成.lib库文件。
  
  连接过程:$(BIN_FILE):
  最后完成编译:done:
  # -----------------------------
  # Clean temporary files in make directory
  # -----------------------------
  @echo Cleaning make/~*.tmp files ...
  @if exist make/~*.tmp /
  del make/~*.tmp
  @echo Done.
  @perl tools/time.pl -n
  清掉临时文件,打出done信息,最后打出时间标签。

本文转自
http://blog.sina.com.cn/s/blog_557e41a701009mcd.html

 

转自:

http://blog.youkuaiyun.com/renjwjx/archive/2008/09/05/2886178.aspx

MTK程序编译 1.   编写目的本文编写的目的主要是从整体上理解MTK的编译过程,以便较快的处理编译中遇到的问题,同时为以后可能的优化编译过程提供参考。2.   简介MTK的编译过程主要是在windows命令行下通过Makefile文件执行相应的perl脚本或c程序,将资源包生成c源程序,并与相应模块的c程序.o,.lib或.obj的中间代码,最终生成在手机上使用的.bin文件和在模拟器上使用的mmiresou 阅读详情

相关推荐

MTK Android 编译环境搭建总结

MTK Android 编译环境搭建总结 环境部署 基本环境需求: 硬盘: 大于200G 内存: 大于16G OS: ubuntu14.04, ubuntu16.04, ubuntu18.04 否则空间或内存不足,导致编译错误或编译时间太长。 测试平台: MTK P23 1、添加源/etc/apt/sources.list 14.04: deb http://archive.ubuntu.com...

marcosun_sw的博客 1629

[Android6.0][MTK6737] MTK 编译环境搭建

Hardware: MTK6737 Android: 6.0(API 23) Kernel: Linux 3.4.67 安装编译环境并编译 安装编译环境依赖包 bootloader 和 kernel 编译 Android 编译 打包 硬件参数 MTK6737 Check SDK Version 编译中碰到的问题 clang 问题 STATIC_LIBRARIES SH...

Younix凌乱的草稿本 8858

MTK SDK5020编译流程

1.搭建编译环境 1)sudo apt-get update进行更新,如若更新出错,请更新sudo gedit /etc/apt/souces.list更新ubuntu的软件源(我的ubuntu14.04版本,选择清华的软件源,如下,可自行百度) deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty main restricte

sy1257911124的博客 1807

高通 mtk 展讯等芯片机型读取 备份手机全字库分区 的一些操作解析

这个工具结合mtkclient对软件修改了多机型支持,支持 高通 mtk 展讯等芯片的字库备份等其他多功能选项 通过个人实测图示展现以下软件的几个功能 1---安卓各选项简单说明第一个安卓界面是读取手机参数。重启各模式选项和解锁bl等相关选项。各个模式读取当前机型参数信息adb界面重启到其他模式选fastboot模式重启到其他模式选项。fast模式刷写各项分区 包括刷写GSI等解锁bl选项。apk安装 檫除用户数据。恢复出厂等选项功能 2----mtk芯片的全字库读取左侧选择第二个mtk后也有很多功能。

小马哥的专栏 1万+

MTK手机驱动v2.0.1.032位64位

小编提供的MTK手机驱动,包含有适用于Win 32位和64位系统的两个版本驱动,您在安装时只要选对版本,就不会有错,安装完驱动,你的电脑就能正常识别MTK手机了 MTK手机驱动安装方法 1、根据自己所用的系统版本,选择相应的驱动安装,如:win7 32位(驱动——Win7——“dpinst.exe”) 2、因本驱动没有数字签名,文件在安装时,系统会弹出几次安全框,如下操作(始终安装此驱动

mtkclient:只是一些mtk工具

mtkclient 只是一些mtk工具

MTK的编译过程(转)

  MTK的编译过程(转) 收藏<br />导读: <br /><br /> Comp.mak        完成模块编译连接,生成bin <br /> Gsm2.mak        主编译文件,完成clean,remake,new等工作 <br /> XXX_GPRS.mak 客户私有的配置,根据客户的不同,而设定不同的配置文件 <br /> Option.mak      工程中的基本配置及宏定义文件 <br /> Verno_XXX.bld 版本文件 <br /

陈云峰技术博客 1001

mtkclient-1.52.zip

源码

MTK编译过程

MTK编译过程Comp.mak         完成模块编译连接,生成binGsm2.mak         主编译文件,完成clean,remake,new等工作XXX_GPRS.mak   客户私有的配置,根据客户的不同,而设定不同的配置文件Option.mak        工程中的基本配置及宏定义文件Verno_XXX.bld     版本文件Custom.bld 

将总结养成一种习惯 1484

避坑!瑞萨RZ/N2L用J-Link下载调试的那些‘坑’(从驱动版本到硬件架构选择)

本文详细解析了瑞萨RZ/N2L开发中使用J-Link调试时常见的兼容性问题与解决方案,包括驱动版本选择、SWD连接优化及e2 studio调试技巧。特别针对硬件架构与驱动版本的匹配问题提供了实用对照表,帮助开发者高效避开调试陷阱,提升开发效率。

weixin_30576827的博客 441

深入了解神经网络:构建人工智能的基石

这篇博客将为您解释神经网络的构造,让您能够理解这个令人着迷的领域的基本工作原理。神经网络是人工智能领域的关键技术,它们的构造基于神经元的灵感,并结合了数学、统计和机器学习的原理。输入可以类比为神经元的树突,而输出可以类比为神经元的轴突,计算则可以类比为细胞核。较好的方法就是预先设定几个可选值,通过切换这几个值来看整个模型的预测效果,选择效果最好的值作为最终选择。:这是神经网络的核心部分,包含多个层次的神经元。、神经网络结构图中的拓扑与箭头代表着预测过程时数据的流向,跟训练时的数据流有一定的区别;

AI_dataloads的博客 2万+

MTK软件编译过程

MTK软件编译过程 ==================== 编译工具和辅助工具: ADS1.2 ADS12_update_842.exe MSYS-1.0.10.exe MinGW-3.1.0-1.exe ImageMagick-6.2.5-5-Q16-windows-dll.exe 7z313.exe 开始编译: 切换到项目根目录,然后在命令行下面执行命令: make custom=proj ...

qq_34810707的博客 1489

从零玩转GD32单片机CAN总线:手把手实战配置与源码解析

本文提供了一份基于GD32单片机的CAN总线实战入门指南。从硬件连接(GD32F103C8T6与TJA1050收发器)到软件配置,详细解析了CAN初始化、波特率计算、过滤器设置及中断收发等核心源码。通过手把手的回环测试示例与常见问题排查,帮助开发者快速掌握CAN总线通信的关键配置与调试技巧。

g5h6i7j的博客 481

MTK的编译过程

      本文详解MTK的编译过程,并会根据我的理解来更新。阅读上文对本文的一些文件和术语会有很好的帮助。导读:  Comp.mak 完成模块编译连接,生成bin  Gsm2.mak 主编译文件,完成clean,remake,new等工作  XXX_GPRS.mak 客户私有的配置,根据客户的不同,而设定不同的配置文件  Option.mak 工程中的基本配置及宏定义文件  Verno_XX

攻城狮 630

WordPress MasterStudy LMS插件 SQL注入漏洞复现(CVE-2024-1512)

WordPress Plugin MasterStudy LMS 3.2.5 版本及之前版本存在安全漏洞,该漏洞源于对用户提供的参数转义不足,导致可以通过 /lms/stm-lms/order/items REST 路由的 user 参数进行基于联合的 SQL 注入。

0xSec 1437

基于STM32设计自动输液监测系统(241)

该系统集成了液位传感模块、光电传感器、电机模块、按键模块和OLED显示屏等多个功能模块,以实现全面的输液过程监控和控制。液位传感模块能够实时监测输液瓶中的液位,当液位到达限定值时,系统会自动控制步进电机夹紧输液管,并发出报警提醒,确保输液过程不会因液位过低而中断。

1343

MTK Modem编译

附上MTK FAQ: [DESCRIPTION] 有些客户反馈modem编译步骤比较复杂,这里对release note里的内容做了一些归纳。 编译modem可以先参考如下内容,更多细节可以参考release note。 [SOLUTION] Step 1: 配置环境 按照release note -->Build Environment Info, 配置编译环境。 注意:tool要使用要求的版本,其它版本MTK内部没有测试过,很可能会出现编译报错。 Step 2: 编译命令 ./m .

u010783226的专栏 3771

高分SCI讨论部分必学AI写作套路!仅需五步结合GPT‑5辅助,让你的SCI论文更有说服力(附实用AI提示词)

对于很多写SCI论文的学术人来说,其实“讨论部分”才是最致命的,网上虽然有大量的写作技巧和模板提供参考,但往往让人眼花缭乱,还是不知道如何下手。即便是下手了,也很难兼顾学术性与可读性,实际上讨论部分的难点并不在于写,而在于你能研究结果说清楚。今天七哥教你借助GPT-5,用五步法结合精心设计的AI提示词,让你能在科学逻辑与语言表达上一次性解决“讨论部分”的结构、内容、润色和翻译问题,轻松写出符合高分SCI期刊要求的讨论段落。

智能AI让学术科研更容易 1330

MTK程序编译(修订版)

MTK程序编译                                           徐亦朱1.   编写目的本文编写的目的主要是从整体上理解MTK的编译过程,以便较快的处理编译中遇到的问题,同时为以后可能的优化编译过程提供参考。 2.   简介MTK的编译过程主要是在windows命令行下通过Makefile文件执行相应的prel脚本或c程序,将资源包生成c

9013

AUTOSAE软件配置-项目标准配置 (PSC) 导入达芬奇( DaVinci Configurator)

文件是“可拆分的”,这意味着如果格式符合 AUTOSAR 拆分规则,则可以与其他。)是一个ARXML文件,主要由OEM提供,其中包含。)工件,可以作为输入文件导入到达芬奇配置器专业版。导入的参数将以只读方式处理。不允许在多个 ARXML 文件中导入一个。的已存在数据或从输入文件派生的数据。可以作为输入文件导入到另一个。文件会覆盖用户配置的基本。元素和诊断数据预配置。定义 [数据结构]。中,可以导出一个或多个。

m0_49148264的博客 1013

SAP Fiori Launchpad 自定义层文本翻译实战:精准修正 Tile、Catalog 与 Group 标题

SAP Fiori 项目中,入口层(tile/catalog/group)的翻译问题常被忽视,但其直接影响用户体验。与前端i18n不同,这些文本属于平台配置数据,需通过ABAP标准翻译流程(SE63)处理。关键步骤包括:使用/UI2/FLC定位Text ID和Configuration ID,根据前缀区分Main/Property WD Config Key,在SE63中锁定WDY_CONF_USERT2表对象进行翻译。操作时需注意使用系统源语言环境,翻译完成后可能需要清理缓存。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 171

MTK软件编译

<br /><br />打开dos编辑窗口(开始->运行->cmd),找到工程代码所在根目录,如/opt/MTK6217 输入编译批处理命令:<br />格式:make[custom="projectName"]"project" "action"["modules"]<br />Example:  make custom=mtk6217  gprs  new<br />给个MTK的make方法<br />后面的modules是nucleus之类的,可以不用写,中间的除了mtk6217工程名外可以照写,

crane 2567

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

上一篇: MTK使用系统timer
下一篇: 转 下拉菜单与编辑框的集成
吴遥
博客等级 码龄19年 90粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值