/// <summary>链接静态库</summary> /// <returns></returns> protected override String OnBuild(String name) { /* * --cpu Cortex-M3 *.o --library_type=microlib --strict --scatter ".\Obj\SmartOSF1_Debug.sct" * --summary_stderr --info summarysizes --map --xref --callgraph --symbols * --info sizes --info totals --info unused --info veneers * --list ".\Lis\SmartOSF1_Debug.map" * -o .\Obj\SmartOSF1_Debug.axf * * --cpu Cortex-M0 *.o --library_type=microlib --diag_suppress 6803 --strict --scatter ".\Obj\Smart130.sct" * --summary_stderr --info summarysizes --map --xref --callgraph --symbols * --info sizes --info totals --info unused --info veneers * --list ".\Lis\Smart130.map" * -o .\Obj\Smart130.axf */ var lstName = GetListPath(name); var objName = GetObjPath(name); var sb = new StringBuilder(); sb.AppendFormat("--cpu {0} --library_type=microlib --strict", CPU); if (!Scatter.IsNullOrEmpty() && File.Exists(Scatter.GetFullPath())) { sb.AppendFormat(" --scatter \"{0}\"", Scatter); //Console.WriteLine("使用分散加载文件"); } else { sb.AppendFormat(" --ro-base 0x08000000 --rw-base 0x20000000 --first __Vectors"); //Console.WriteLine("未使用分散加载文件"); //Console.WriteLine("--ro-base 0x08000000 --rw-base 0x20000000 --first __Vectors"); } //sb.Append(" --summary_stderr --info summarysizes --map --xref --callgraph --symbols"); //sb.Append(" --info sizes --info totals --info unused --info veneers"); sb.Append(" --summary_stderr --info summarysizes --map --xref --callgraph --symbols"); sb.Append(" --info sizes --info totals --info veneers --diag_suppress L6803 --diag_suppress L6314"); var axf = objName.EnsureEnd(".axf"); sb.AppendFormat(" --list \"{0}.map\" -o \"{1}\"", lstName, axf); return(sb.ToString()); }