1. 程式人生 > >在U-BOOT中實現讀取電池電量

在U-BOOT中實現讀取電池電量

platform: s3c2440 + u-boot 1.1.4 + linux 2.6.18
 
    為了防止低電開機啟動到一半的時候系統down掉,所以有必要在 u-boot 中加入電池電量的偵測。
偵測電池電量只需讀 AN0 口上的 AD 值就可以了,當電量少於 576 的時候就不讓系統開機。
 
在 lib_arm/board.c 中加入 battery_probe() 函式:


  static int battery_probe(void)
  {
      S3C2410_ADC * const adc = S3C2410_GetBase_ADC();   
      S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO();


      unsigned int val, res, ret, powerflag;
      int i;


      // use AN0;

      val = (1<<14) | (9<<6) | (0<<3);
      adc->ADCCON = val;
   
      val = adc->ADCCON;
      val |= (1<<0);
      adc->ADCCON = val;

      for(i=0;i<5;i++)

     {
            // start ADC

            while(res&0x1)

            {
                  res = adc->ADCCON;
            }


            res = 0;


            // end ADC

           while(!(res&0x8000))

           {
                res = adc->ADCCON;
           }


           // read data

           ret = adc->ADCDAT0;
           ret = ret & 0x3ff;


           if(ret<576)
               powerflag = 1;

          else
               powerflag = 0;
    }


    if(powerflag)

   {
        printf("The battery too low./n/n");
        gpio->GPBDAT &= ~(1<<5); // power off.

    }


    return 0;

}

然後在 int print_cpuinfo() 中加入:

 display_dram_config,

+battery_probe,

 NULL,

------------------------------

這樣就可以在u-boot 中實現電池電量的偵測了。

相關推薦

U-BOOT實現讀取電池電量

platform: s3c2440 + u-boot 1.1.4 + linux 2.6.18       為了防止低電開機啟動到一半的時候系統down掉,所以有必要在 u-boot 中加入電池電量的偵測。 偵測電池電量只需讀 AN0 口上的 AD 值就可以了,當電量少於 5

spring boot實現響應圖片的方法以及改進

spring-bootController響應,噴出圖片,是一個很常見的功能,代碼如下@RequestMapping(value = { "/img/{filename:.+}" }, method = RequestMethod.GET, produces = { MediaType.I

Spring Boot實現logback多環境日誌配置

cati feature gprof 配置 color app config 現在 ng- 在Spring Boot中,可以在logback.xml中的springProfile標簽中定義多個環境logback.xml: <springProfile name=

u-bootnand相關命令使用---- ubi, ubifsls, ubifsmount, ubifsumount

轉載地址:https://blog.csdn.net/voice_shen/article/details/8425763  [Version: 2013-01-rc2] [Author: Bo Shen <[email protected]>] 1. &

Spring Boot實現logback多環境日誌配置(日誌輸出)

  Spring Boot中實現logback多環境日誌配置 - EasonJim - 部落格園 https://www.cnblogs.com/EasonJim/p/7801549.html   Spring Boot中實現logback多環境日誌配置 方法

u-boot 增加自定義命令hjlcmd2------(新增檔案來定義)

1,在 "[email protected]:/home/hjl/Downloads/uboot/common#" 目錄中新增檔案 cmd_hjl.c ,加上標頭檔案     #include <common.h>    &nbs

u-boot 增加自定義命令hjlcmd1

在uboot/common資料夾下找到command.c檔案,進入編輯: 對照隨便一個命令,如: do_version (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) { extern char version_strin

u-boot新增mtdparts支援以及Linux的分割槽設定

閱讀目錄(Content) 簡介 作者:彭東林 u-boot版本:u-boot-2015.04 Linux版本:Linux-3.14 硬體平臺:tq2440, 記憶體:64M   NandFlash: 256MB 下面我們分兩部分,u-boot和k

U-boot新增乙太網驅動

版權宣告:本文為博主原創文章,未經博主允許不得轉載。    https://blog.csdn.net/mao0514/article/details/17523803 當定義CONFIG_CMD_NET和CONFIG_CMD_PING,編譯之後執行ping命令,告警沒有

u-boot:rm:無法刪除 "asm":是一個目錄

轉自:http://blog.163.com/zhangyingxin_/blog/static/218307222201331291755998/ uboot移植編譯小問題 ———rm:無法刪除 "asm":是一個目錄 我之前所做的uboot移植工作都快要完成了,想要拷貝

u-boot分析 七 (新增u-boot命令,學習u-boot命令實現原理)

u-boot分析 七 (新增u-boot命令,學習u-boot命令實現原理) 本文目標: 理解u-boot命令的實現原理。 上一篇文章分析了u-boot是如何啟動kernel的,其中就涉及到bootm命令,考慮到文章主題需要,當時並沒有對bo

U-boot新增Cubieboard(全志A10)乙太網驅動

當定義CONFIG_CMD_NET和CONFIG_CMD_PING,編譯之後執行ping命令,告警沒有找到乙太網。 因此,需要開啟U-boot的網路功能, u-boot-sunxi-sunxi中沒有找到明顯的網路驅動程式碼,或許有通用的驅動,但可以獲得資料的途徑有限,再說我

CC2541讀取電池電量並且廣播出去

                                                                                                   

u-bootmkimage工具的具體使用

通常,u-boot為kernel提供一些kernel無法知道的資訊,比如ramdisk在RAM中的地址。Kernel也必須為U-boot提供必要的資訊,如通過mkimage這個工具(在u-boot程式碼的tools目錄中)可以給zImage新增一個header,也就是使得通常

u-bootmakefile的執行步驟

本文分析的uboot版本是2013.04.主要目的是通過分析uboot頂目錄下的makefile檔案,瞭解uboot的大致執行步驟和順序。 簡而言之就是先讀取makefile檔案;然後讀取include包含的檔案;重建已讀取makefile檔案的規則;展開變數和函式等。

U-BootMAC地址設定及往核心傳遞

一、核心引數的傳遞 U-Boot向Linux驅動傳遞引數的方式有兩種,一為在系統啟動的時候由bootloader傳入,還有一種是將驅動編譯成模組,將引數作為模組載入的引數傳入。 核心通過setup介面接受Bootloader傳入的引數。方式如下: st

u-bootfdt命令的使用

[u-boot: v2012.10] [Author: Bo Shen <[email protected]>] 依linux community的要求,從linux-3.5後,新提交的code必須對device tree進行支援。下面介紹如何使u-

U-boot通過ENV設定顯示裝置(如LCD)引數的方法與格式

對於一個移植比較完善的U-boot來說,顯示裝置一般也是可以使用的。在嵌入式中的LCD液晶屏一般由晶片的內建的LCD控制器或者VPSS(視訊處理子系統)來控制。在U-boot中已經實現了類似framebuffer的機制,只要在移植的時候完成對LCD控制等顯示裝置的初始化,並

u-bootmmc命令使用

[u-boot: v2013.01] [Author: Bo Shen <[email protected]>] mmc命令的幫助資訊如下: U-Boot> mmc      mmc - MMC sub system Usage: mmc

在linux系統通過fw_printenv檢視和設定u-boot的環境變數

uboot下可以通過命令訪問和修改環境變數,但是如果需要在Linux系統下訪問這些資料該怎麼辦呢?其實uboot早就幫我們想好了。      1、編譯fw_printenv工具     在你使用的uboot程式碼中用以下編譯指令:     make env     這樣就可