女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

linux驅動通過uboot的變量實現掉電記憶

大膽11 ? 2023-07-04 19:17 ? 次閱讀

起因

今天項目有個新需求就是讓屏幕亮度在上電以后保持上次最后設置的值

我們的項目屏幕的初始化是在kernel里而不是uboot,kernel的驅動的加載是在根文件系統之前,所以我們無法從配置文件中讀取亮度。

首先大家能想到的就是讓讓他存儲到內核能讀取到的rom中去,到底哪里合適的,方便讀寫

經過查資料,發現uboot的環境變量的更改是直接保存到rom中,區別于kernel的環境變量保存到rom中。而且我們知道kernel啟動后會讀取uboot傳入的bootargs,那說明kernel就有對應的函數去讀。

接下來就說明下接口的調用

使用

首先是對bootargs的一些操作

我是在bootargs添加一個backlight,他的屬性值等于另外一個參數,這樣做的話就可以減少bootargs的變動

backlight=20
#set kernel cmdline if boot.img or recovery.img has no cmdline we will use this
setargs_nand=setenv bootargs console=${console} root=${nand_root} rootwait init=${init} rdinit=${rdinit} loglevel=${loglevel}  earlyprintk=${earlyprintk} initcall_debug=${initcall_debug}  loglevel=${loglevel} partitions=${partitions} cma=${cma} gpt=1 backlight=${backlight}
setargs_mmc=setenv bootargs console=${console} root=${mmc_root} rootwait init=${init} rdinit=${rdinit} loglevel=${loglevel} earlyprintk=${earlyprintk} initcall_debug=${initcall_debug} loglevel=${loglevel} partitions=${partitions} cma=${cma} gpt=1 backlight=${backlight}

在驅動中使用的函數是__setup(str, fn)?

__setup宏在定義如下:

/*
 * Only for really core code.  See moduleparam.h for the normal way.
 *
 * Force the alignment so the compiler doesn't space elements of the
 * obs_kernel_param "array" too far apart in .init.setup.
 */
#define __setup_param(str, unique_id, fn, early)			
	static const char __setup_str_##unique_id[] __initconst		
		__aligned(1) = str; 					
	static struct obs_kernel_param __setup_##unique_id		
		__used __section(.init.setup)				
		__attribute__((aligned((sizeof(long)))))		
		= { __setup_str_##unique_id, fn, early }

#define __setup(str, fn)						
	__setup_param(str, fn, fn, 0)

第一個參數是bootargs的屬性,第二個參數是要把屬性值作為參數的函數的指針,說白了就是函數

函數的要求是 static int __init?類型,下面是我使用的時候的一個demo

kstrtoint是用于將讀取到的值從字符數字轉換成數值

kstrtoint和標準的c庫有些去別,請注意看!!!

第一個參數是要被轉化的字符串,第二個參數是保存的進制,第三個參數才是int類型的數據的地址

static int __init get_env_backlight(char * backlight)
{

	kstrtoint(backlight, 10, &backlight_value);
	// printk("%s:num:%dn",__FUNCTION__,backlight_value);
	return 0;
}

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11457

    瀏覽量

    212761
  • Linux系統
    +關注

    關注

    4

    文章

    603

    瀏覽量

    28297
  • Uboot
    +關注

    關注

    4

    文章

    126

    瀏覽量

    28877
  • Linux驅動
    +關注

    關注

    0

    文章

    43

    瀏覽量

    10171
  • 掉電記憶
    +關注

    關注

    0

    文章

    3

    瀏覽量

    2129
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    linux驅動開發_文件系統本地掛載

    介紹Linux開發根文件系統掛載、NFS文件系統配置,UBOOT環境變量配置,完成文件系統啟動。
    的頭像 發表于 09-17 15:52 ?1760次閱讀
    <b class='flag-5'>linux</b><b class='flag-5'>驅動</b>開發_文件系統本地掛載

    請問linuxuboot怎么實現u***下載?

    linuxuboot怎么實現u***下載,u***下載命令有哪些?編譯UBOOT需要修改哪些配置?
    發表于 10-31 05:20

    zynq arm移植ubootLinux,使用setenv設置環境變量,顯示無這個指令

    最近在學習zynq的Linux開發,在移植ubootLinux內核設置環境變量時報的錯誤,沒有這個指令,網上搜了很多都沒有解決辦法,有沒有人知道啊,求教。
    發表于 08-29 22:29

    uboot lds 文件說明

    linuxuboot lds 文件說明
    發表于 11-02 11:02 ?0次下載

    基于HL開發板的密碼鎖掉電記憶密碼

    掉電記憶功能是:數碼設備突然非正常關機后,再開機時數碼設備可以從關機前正在運行的程序處接著運行。不用從頭開始。
    發表于 09-01 14:06 ?2次下載
    基于HL開發板的密碼鎖<b class='flag-5'>掉電</b><b class='flag-5'>記憶</b>密碼

    Linux運行期間升級Linux系 統Uboot+kernel+Rootfs

    Linux運行期間升級Linux系 統Uboot+kernel+Rootfs
    發表于 10-30 08:43 ?5次下載
    在<b class='flag-5'>Linux</b>運行期間升級<b class='flag-5'>Linux</b>系 統<b class='flag-5'>Uboot</b>+kernel+Rootfs

    UBOOT命令總結

    分享到: 很好的UBOOT命令總結,起步時就是看的這篇東西,熟悉了以后就用?看自帶幫助就行:) Printenv 打印環境變量Uboot》 printenv baudrate=115200
    發表于 11-08 10:24 ?18次下載

    基于ARM9和NANDFlash對ubootLinux內核進行修改

    本文針對嵌入式Linux操作系統提出了一種新的更新機制,并且基于ARM9微處理器和NANDFlash存儲器,對ubootLinux內核進行修改,實現了對嵌入式
    發表于 04-07 11:00 ?2974次閱讀
    基于ARM9和NANDFlash對<b class='flag-5'>uboot</b>和<b class='flag-5'>Linux</b>內核進行修改

    你了解Embeded linux中的Uboot參數與內核?

    uboot環境變量:bootdelay、bootcmd、bootargs等參數,鍵與值用0x3d,即“=”隔開,兩參數之間用0x00,即\0隔開
    發表于 05-15 14:16 ?1845次閱讀
    你了解Embeded <b class='flag-5'>linux</b>中的<b class='flag-5'>Uboot</b>參數與內核?

    linux內核中percpu變量實現

    不會相互影響,所以也就不會有各種多線程問題。 正確的使用thread local變量,能極大的簡化多線程開發。所以不管是c/c++/rust,還是java/c#等,都內置了對thread local變量的支持。 但你知道嗎,不僅是在編程語言中,在
    的頭像 發表于 01-04 13:39 ?2174次閱讀

    嵌入式Linux環境變量分區制作

    嵌入式Linux環境變量分區制作嵌入式環境變量分區準備一個存放環境變量的文本文件制作環境變量的工具制作環境
    發表于 11-02 10:35 ?8次下載
    嵌入式<b class='flag-5'>Linux</b>環境<b class='flag-5'>變量</b>分區制作

    嵌入式linux學習 Day1 uboot基礎

    嵌入式linux學習 Day1 uboot基礎
    發表于 12-05 20:51 ?7次下載
    嵌入式<b class='flag-5'>linux</b>學習 Day1 <b class='flag-5'>uboot</b>基礎

    LINUX環境變量總結

    Linux是一個多用戶的操作系統。多用戶意味著每個用戶登錄系統后,都有自己專用的運行環境。而這個環境是由一組變量所定義,這組變量被稱為環境變量。用戶可以對自己的環境
    發表于 01-29 10:55 ?535次閱讀

    基于51單片機的密碼鎖(掉電記憶密碼)例程源代碼

    基于51單片機的密碼鎖(掉電記憶密碼)例程源代碼
    發表于 05-16 11:13 ?28次下載

    Linux環境變量配置方法

    Linux上環境變量配置分為設置永久變量和臨時變量兩種。環境變量設置方法同時要考慮環境Shell類型,不同類型的SHELL設置臨時
    的頭像 發表于 10-23 13:39 ?560次閱讀