in newt/pkg/bsp_package.go [138:216]
func (bsp *BspPackage) Reload(settings *cfgv.Settings) error {
var ypkg *LocalPackage
var ycfg *ycfg.YCfg
var err error
if settings == nil {
settings = cfgv.NewSettings(nil)
}
settings.Set(strings.ToUpper(runtime.GOOS), "1")
bsp.BspV, err = config.ReadFile(bsp.BspYamlPath())
if err != nil {
return err
}
bsp.AddCfgFilename(bsp.BspYamlPath())
ypkg, ycfg = bsp.selectKey("bsp.compiler")
bsp.CompilerNamePkg = ypkg
bsp.CompilerName, err = ycfg.GetValString("bsp.compiler", settings)
util.OneTimeWarningError(err)
bsp.Arch, err = bsp.BspV.GetValString("bsp.arch", settings)
util.OneTimeWarningError(err)
_, ycfg = bsp.selectKey("bsp.image_offset")
bsp.ImageOffset, err = ycfg.GetValInt("bsp.image_offset", settings)
util.OneTimeWarningError(err)
_, ycfg = bsp.selectKey("bsp.image_pad")
bsp.ImagePad, err = ycfg.GetValInt("bsp.image_pad", settings)
util.OneTimeWarningError(err)
bsp.LinkerScripts, err = bsp.resolveLinkerScriptSetting(settings, "bsp.linkerscript")
if err != nil {
return err
}
bsp.Part2LinkerScripts, err = bsp.resolveLinkerScriptSetting(settings, "bsp.part2linkerscript")
if err != nil {
return err
}
bsp.DownloadScript, err = bsp.resolvePathSetting(
settings, "bsp.downloadscript")
if err != nil {
return err
}
bsp.DebugScript, err = bsp.resolvePathSetting(
settings, "bsp.debugscript")
if err != nil {
return err
}
/* Optional Target Checker Script, not an err if not found */
bsp.OptChkScript, err = bsp.resolvePathSetting(
settings, "bsp.optionalcheckscript")
if bsp.CompilerName == "" {
return util.NewNewtError("BSP does not specify a compiler " +
"(bsp.compiler)")
}
if bsp.Arch == "" {
return util.NewNewtError("BSP does not specify an architecture " +
"(bsp.arch)")
}
ypkg, ycfg = bsp.selectKey("bsp.flash_map")
ymlFlashMap, err := ycfg.GetValStringMap("bsp.flash_map", settings)
util.OneTimeWarningError(err)
if ymlFlashMap == nil {
return util.NewNewtError("BSP does not specify a flash map " +
"(bsp.flash_map)")
}
bsp.FlashMap, err = flashmap.Read(ymlFlashMap, ypkg.FullName())
if err != nil {
return err
}
return nil
}