2014-06-20 57 views
0
  1. OpenWrt可以在裸机上运行
  2. 在uboot/barebox上是否有可移植的应用程序框架?所以我的源代码是独立于低级硬件的。

回答

1
  1. 绝对有可能。我一直在使用barebox作为imx25 SoC的主要引导程序。尽管(我从来没有遇到过)公共软件包中没有光秃盒,但是您可以构建自己的“bootloader-barebox”软件包。 只要按照这些链接: https://vivekian2.wordpress.com/2007/03/28/building-your-own-package-for-openwrt/ http://prplfoundation.org/wiki/Creating_an_OpenWrt_package_for_a_web_page

  2. 我不知道有关的框架,但你可能知道,你可以创建一个应用程序。 http://www.denx.de/wiki/view/DULG/UBootStandalone

这里是barebox生成文件的一个例子:

# 
# Copyright (C) 2013 OpenWrt.org 
# 
# This is free software, licensed under the GNU General Public License v2. 
# See /LICENSE for more information. 
# 

include $(TOPDIR)/rules.mk 
include $(INCLUDE_DIR)/kernel.mk 

PKG_NAME:=barebox 
PKG_VERSION:=0.1 
PKG_RELEASE:=0 

PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME) 
PKG_SOURCE:=$(PKG_NAME).tar.bz2 
PKG_SOURCE_PROTO:=git 
PKG_SOURCE_URL:=GIT-URL 
PKG_SOURCE_VERSION:=93aeafd04365cdd5dcb958cc6982c672163154ee 
PKG_SOURCE_SUBDIR:=$(PKG_NAME) 
PKG_MD5SUM:= 
PKG_TARGETS:=bin 

include $(INCLUDE_DIR)/package.mk 

define barebox/Default 
    TITLE:= 
    CONFIG:= 
    IMAGE:= 
endef 

define Package/barebox/template 
define Package/barebox-$(1) 
    SECTION:=boot 
    CATEGORY:=Boot Loaders 
    TITLE:=$(2) 
    DEPENDS:[email protected]_$(1) 
    URL:=http://localhost/ 
    DEFAULT:=y if (TARGET_$(1)_Default) 
    VARIANT:=$(1) 
endef 
endef 

define BuildBareboxPackage 
    $(eval $(barebox/Default)) 
    $(eval $(barebox/$(1))) 
    $(call Package/barebox/template,$(1),$(TITLE)) 
endef 

define barebox/imx 
    TITLE:=Barebox for the imx. 
endef 

BAREBOXS:=imx 


ifdef BUILD_VARIANT 
    $(eval $(call barebox/$(BUILD_VARIANT))) 
    BAREBOX_CONFIG:=$(if $(CONFIG),$(CONFIG),$(BUILD_VARIANT)) 
    BAREBOX_IMAGE:=$(if $(IMAGE),$(IMAGE),openwrt-$(BOARD)-$(BUILD_VARIANT)-barebox.bin) 
endif 

define Build/Prepare 
    $(call Build/Prepare/Default) 
endef 

define Build/Configure 
    $(CP) ./barebox-config $(PKG_BUILD_DIR)/.config 
endef 

define Build/Compile 
    $(MAKE) -C $(PKG_BUILD_DIR) \ 
     CROSS_COMPILE=$(TARGET_CROSS) ARCH=arm 
endef 

define Package/barebox/install/template 
define Package/barebox-$(1)/install 
    $(CP) $(PKG_BUILD_DIR)/barebox.bin $(BIN_DIR)/$(2) 
endef 
endef 

$(foreach u,$(BAREBOXS), \ 
    $(eval $(call Package/barebox/install/template,$(u),openwrt-$(BOARD)-$(u)-barebox.bin)) \ 
) 

$(foreach u,$(BAREBOXS), \ 
    $(eval $(call BuildBareboxPackage,$(u))) \ 
    $(eval $(call BuildPackage,barebox-$(u))) \ 
)