1. 程式人生 > >linux 核心時間列印

linux 核心時間列印

struct timespec ts;
ts = current_kernel_time();
printk(KERN_ALERT "i=%d, channel=%d, %ld %ld\n", i, channel, ts.tv_sec, ts.tv_nsec);

struct timeval tv;
/*獲取時間*/
do_gettimeofday(&tv);
printk(KERN_ALERT "now: %ld %ld\n", tv.tv_sec, tv.tv_usec);

/*設定時間, 時鐘調後5小時*/
ts.tv_sec = tv.tv_sec + 3600*5;
do_settimeofday(&ts);

報文除錯:

i=0, channel=0, 1523614738 199999523
now: 1523614738 207424
i=0, channel=1, 1523614738 199999523
now: 1523614738 223716
i=0, channel=2, 1523614738 219999522
now: 1523614738 273299
i=0, channel=3, 1523614738 269999520
now: 1523614738 280457
i=0, channel=4, 1523614738 289999519
now: 1523614738 299316
i=0, channel=5, 1523614738 289999519
now: 1523614738 313382
i=0, channel=6, 1523614738 309999519
now: 1523614738 319441
i=0, channel=7, 1523614738 309999519
now: 1523614738 343332
i=1, channel=0, 1523614738 359999517
now: 1523614738 366732
i=1, channel=1, 1523614738 359999517
now: 1523614738 374799
i=1, channel=2, 1523614738 369999516
now: 1523614738 380832
i=1, channel=3, 1523614738 379999516
now: 1523614738 387841
i=1, channel=4, 1523614738 379999516
now: 1523614738 423382
i=1, channel=5, 1523614738 419999514
now: 1523614738 429524
i=1, channel=6, 1523614738 419999514
now: 1523614738 473382
i=1, channel=7, 1523614738 469999512
now: 1523614738 479674
i=2, channel=0, 1523614738 469999512
now: 1523614738 503307
i=2, channel=1, 1523614738 499999511
now: 1523614738 509524
i=2, channel=2, 1523614738 499999511
now: 1523614738 533374
i=2, channel=3, 1523614738 529999510
now: 1523614738 539407
i=2, channel=4, 1523614738 539999510
now: 1523614738 548157
i=2, channel=5, 1523614738 539999510
now: 1523614738 555924
i=2, channel=6, 1523614738 549999509
now: 1523614738 562524
i=2, channel=7, 1523614738 589999508
now: 1523614738 597291
i=3, channel=0, 1523614738 589999508
now: 1523614738 605132

ADC5通道每次會取樣10次,耗時800ms,平均一次是80ms,由於電源監控晶片CAT809TBL在檢測到低電平時會存在最小140ms的延時,所以ADC取樣10次,去掉最大、最小值,然後取平均值,可以規避這個問題。

相關推薦

linux 核心時間列印

struct timespec ts; ts = current_kernel_time(); printk(KERN_ALERT "i=%d, channel=%d, %ld %ld\n", i, channel, ts.tv_sec, ts.tv_nsec); stru

linux核心時間操作

linux核心是通過定時器中斷來跟蹤時間流;使用"HZ"巨集表示1秒的時鐘中斷次數,並使用"jiffies"及"jiffies_64"變數來記錄時鐘中斷次數,在系統引導時計數器初始化為 0 1 核心時間比較api, 比較jiffies計數器#include <linu

Linux核心時間管理子系統——時鐘源

struct clocksource { /* * Hotpath data, fits in a single cache line when the * clocksource itself is cacheline aligned.

Linux核心時間管理相關的介面

在核心經常會碰到一些要定時排程的任務,可以用timer處理,下面來看看都有哪些介面, /*******************************************************************/ linux/param.h HZ;//巨集,每

[linux]linux核心時間管理基礎

一,linux時間管理基礎http://blog.csdn.net/droidphone/article/details/7975694http://blog.csdn.net/smilingjames/article/details/6205540 linux所有時間基礎

Linux核心時間管理和定時器

轉自:http://blog.csdn.net/zhenwenxian/article/details/7643742 時間管理在核心中佔有非常重要的地位。相對於事件驅動,核心中有大量的函式都是基於時間驅動的。核心必須管理系統的執行時間以及當前的日期和時間。 首先搞

【原創】解BUG-xenomai核心linux核心時間子系統之間存在漂移

版權宣告:本文為本文為博主原創文章,轉載請註明出處。如有問題,歡迎指正。部落格地址:https://www.cnblogs.com/wsg1100/ ## 一、問題起源 >何為漂移?舉個例子兩顆32.768kHz晶振$C_1$和$C_2$,由於製造工藝原因或者使用時溫度、輔助元件引數等影響,與他們的實際

Linux 核心中獲取時間分析基於do_gettimeofday()

Linux 核心中獲取時間分析基於do_gettimeofday() 核心程式碼能一直獲取一個當前時間的表示,通過檢視jifies的值。通常這個值只代表從最後一次啟動以來的時間,這個事實對驅動來說無關,因為它的生命週期受限於系統的uptime。 驅動可以使用jifie

移植linux核心到s3c6410(kernel 列印:Uncompressing Linux ... done , booting the kernel.後無響應問題的解決。)

轉載地址: https://blog.csdn.net/roadtoforest/article/details/6652280 U-boot網口問題解決後,uImage和ramdisk終於可以上傳到單板上去驗證了。指令碼為: MINI6410 # setenv serverip

linux核心初始化步驟(十)-----時間管理子系統初始化

參考博文:https://blog.csdn.net/DroidPhone/article/details/8051405 時間管理子系統: /* 核心用jiffies變數記錄系統啟動以來經過的時鐘滴答數*/ Jiffies.c (kernel\time):core_initcall(ini

linux核心列印級別

轉載地址:https://www.cnblogs.com/Caden-liu8888/p/5652168.html 1.printk()是一個核心的一個記錄日誌的機制,經常用來記錄資訊或者警告。printk可以指定輸出日誌的優先順序,在include/linux/kern_levels.h中有相

linux核心排程演算法(2)--CPU時間片如何分配

核心在微觀上,把CPU的執行時間分成許多分,然後安排給各個程序輪流執行,造成巨集觀上所有的程序彷彿同時在執行。雙核CPU,實際上最多隻能有兩個程序在同時執行,大家在top、vmstat命令裡看到的正在執行的程序,並不是真的在佔有著CPU哈。 所以,一些設計良好的高效能程序,比如nginx,都是實際上有幾顆C

linux初學核心列印訊息

  核心版本:Linux version 3.0.15(cat /proc/version)   剛開始接觸程式設計,從第一句打印出hello world一直用的是printf,直到接觸linux核心,這一使用方法開始改變!   printk()和printf()之間的一個

如何在Linux核心中將輸出列印到終端

#include <linux/kernel.h>#include <linux/module.h>#include <linux/init.h>#include <linux/sched.h>#include <linu

linux核心列印資料到串列埠控制檯,printk資料不列印問題

1、檢視當前控制檯的列印級別 cat /proc/sys/kernel/printk 4    4    1    7 其中第一個“4”表示核心列印函式printk的列印級別,只有級別比他高的資訊才能在控制檯上打印出來,既 0-3級別的資訊 2、修改列印 echo "新的列印級別  4    1   

Linux 核心啟動資訊的列印 --- dev_driver_string函式/dev_name函式

核心啟動時,常會打印出一些資訊:開頭是 "驅動模組的名字: + 具體的資訊"如:在執行的linux系統裝置上,插入滑鼠,就會打印出滑鼠的相關資訊;[ 402.134068] input: USB Optical Mouse as /devices/soc0/soc/2100

控制Linux核心啟動中的列印

如果正常配置了輸入輸出終端,則核心啟動過程中會將很多資訊輸出到控制檯上。這些資訊中有些表示嚴重錯誤,有些只是一般的提示資訊。 在平臺成熟後,繼續保留這些資訊既不美觀,也會影響啟動速度(串列埠的波特率很低)。因此要儘量遮蔽不重要的資訊。這需要對核心進行一些改造。

Linux核心列印函式printk的使用說明

printk函式        We used the printk function in earlier chapters with the simplifying assumption that it works like printf. Now it's time to introduce some 

Linux核心中獲取時間並轉換成本地時區時間

下面的函式get_time_str實現了在核心中獲取本地時間的功能。 他首先獲取utc時間,然後根據系統的時區timezone轉換成本地時間, 最後將時間以“2014-11-02 21:14:08”的

Linux核心啟動顯示時間資訊

在最開始移植Linux核心的時候,發現自己配置的核心編譯出來啟動資訊十分的雜亂無章。但是廠家提供的Linux映象檔案下載到開發板中,列印的資訊十分清晰。它在列印核心啟動資訊之前都會先列印一個時間資訊出來! 下面來看看怎麼配置Linux核心: 首先在Linux核心檔案下,執行