日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于i.MX6ULL的掉電檢測設(shè)計(jì)與軟件測試

武漢萬象奧科 ? 2023-11-09 10:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

基于i.MX6ULL的掉電檢測設(shè)計(jì)與軟件測試

基于i.MX6ULL平臺設(shè)計(jì)實(shí)現(xiàn)掉電檢測功能,首先選擇一路IO,利用IO電平變化觸發(fā)中斷,在編寫驅(qū)動(dòng)時(shí)捕獲該路GPIO的中斷,然后在中斷響應(yīng)函數(shù)中發(fā)送信號通知應(yīng)用程序掉電發(fā)生了。

wKgaomVMRH6ABtVLAABTQ_BeDQs250.png

圖 1.1掉電信號IO

驅(qū)動(dòng)代碼:

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define power_MAJOR 200

static struct class *my_class;

static struct fasync_struct *fasync_queue; //異步通知隊(duì)列

#define GPIO_NUM 1 //中斷引腳為:GPIO1_1

static unsigned int irq_num;

/*打開 */

int power_open(struct inode *inode,struct file *filp){

return 0;

}

/*關(guān)閉 */

int power_release(struct inode *inode,struct file *filp){

return 0;

}

ssize_t power_read(struct file *filp,char __user *buf,size_t count,loff_t *f_pos){

return count;

}

ssize_t power_write(struct file *file,const char __user *buf,size_t count,loff_t *f_pos){

return count;

}

static int my_fasync(int fd, struct file * filp, int on)

{

int retval;

retval=fasync_helper(fd,filp,on,&fasync_queue);

/*將該設(shè)備登記到fasync_queue隊(duì)列中去*/

if(retval<0)

return retval;

return 0;

}

static const struct file_operations simple_fops={

.owner=THIS_MODULE,

.open=power_open,

.release=power_release,

.read=power_read,

.write=power_write,

.fasync=my_fasync,

};

/*在中斷服務(wù)函數(shù)中向應(yīng)用層發(fā)送消息-異步通知 */

static irqreturn_t irq_callback (int irqno, void *dev_id){

printk("irq power-detect working !\n");

if (fasync_queue) {

kill_fasync(&fasync_queue, SIGIO, POLL_IN);

}

return IRQ_HANDLED;

}

int power_init_module(void){

int rtn;

int ret;

/*注冊設(shè)備驅(qū)動(dòng) */

ret = register_chrdev(power_MAJOR,"power-detect-test",&simple_fops);

if(ret<0){

printk("Unable to register character device %d!/n",ret);

return ret;

}

/*自動(dòng)創(chuàng)建設(shè)備節(jié)點(diǎn) */

my_class = class_create(THIS_MODULE, "my_class");

device_create(my_class, NULL, MKDEV(power_MAJOR, 0), NULL,"powerdetect");

/*gpio申請*/

rtn = gpio_request(GPIO_NUM, "my_irq");

if(rtn!=0){

printk("my_irq irq pin request io failed.\n");

}

rtn = gpio_direction_input(GPIO_NUM);

if(rtn<0){

printk("gpio_direction_input() failed !\n");

}

/*獲取gpio中斷號*/

irq_num = gpio_to_irq(GPIO_NUM);

/*GPIO中斷服務(wù)函數(shù)注冊,*/ /*下降沿觸發(fā)*/

rtn = request_irq(irq_num, irq_callback,IRQF_TRIGGER_FALLING,"my_irq", NULL);

if (rtn<0) {

printk("my_irq request irq false\n");

} else {

printk("my_irq request irq success: %d\n",irq_num);

}

printk("module_init sucessful!!!\n");

return 0;

}

/*卸載 */

void power_cleanup_module(void){

/*卸載相應(yīng)的設(shè)備驅(qū)動(dòng) */

unregister_chrdev(power_MAJOR,"power-detect-test");

device_destroy(my_class,MKDEV(power_MAJOR, 0));

class_destroy(my_class);

/*釋放GPIO*/

gpio_free(GPIO_NUM);

printk("module_exit sucessful!!!\n");

}

/*宏實(shí)現(xiàn) */

module_init(power_init_module);

module_exit(power_cleanup_module);

/*開源許可聲明 */

MODULE_LICENSE("GPL");

MODULE_AUTHOR("Zou");

應(yīng)用代碼:

#include

#include

#include

#include

#include

#include

static int fd;

/*內(nèi)核產(chǎn)生異步通知,調(diào)用該應(yīng)用層函數(shù)處理 */

void sigterm_handler(int signo)

{

printf("app irq work !!!\n");

}

int main(void)

{

int oflags;

fd=open("/dev/powerdetect",O_RDWR); //打開設(shè)備文件

/*啟動(dòng)異步通知信號驅(qū)動(dòng)機(jī)制 */

signal(SIGIO, sigterm_handler);

fcntl(fd, F_SETOWN, getpid());

oflags = fcntl(fd, F_GETFL);

fcntl(fd, F_SETFL, oflags | FASYNC);

/*建立一個(gè)死循環(huán),防止程序結(jié)束 */

while(1)

{

printf("sleep\n");

usleep(200000); //2ms

}

close(fd);

return 0;

}

將驅(qū)動(dòng)編譯成模塊,上電加載并執(zhí)行應(yīng)用程序后,將電壓緩慢下調(diào)至掉電臨界點(diǎn)。觸發(fā)GPIO下降沿中斷,并提供應(yīng)用程序掉電信號。

wKgZomVMRI-AUhYrAABRAjOFBuU101.png

圖1..2掉電檢測

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 驅(qū)動(dòng)
    +關(guān)注

    關(guān)注

    12

    文章

    1994

    瀏覽量

    88727
  • 軟件測試
    +關(guān)注

    關(guān)注

    2

    文章

    255

    瀏覽量

    20408
  • 掉電檢測
    +關(guān)注

    關(guān)注

    0

    文章

    8

    瀏覽量

    3076
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    i.MX6ULL能否接受來自外部振蕩器的直接50 MHz輸入?

    我們正在將 LAN8710A-EZK PHY 與 RMII 模式下的 i.MX6ULL 集成,需要澄清有關(guān) 50 MHz 參考時(shí)鐘的信息。 由于RMII需要50 MHz時(shí)鐘,i.MX6ULL能否接受
    發(fā)表于 04-17 06:05

    開發(fā)一個(gè)基于運(yùn)行 Yocto 的 i.MX6ULL 的定制板,如何減少啟動(dòng)時(shí)間?

    我正在開發(fā)一個(gè)基于運(yùn)行 Yocto 的 i.MX6ULL 的定制板,我想盡可能減少啟動(dòng)時(shí)間。 到目前為止,我已經(jīng): 禁用內(nèi)核中所有不必要的選項(xiàng) (menuconfig) 將 Yocto 圖像減少到
    發(fā)表于 04-16 08:26

    深入解析i.MX 6Solo/6DualLite應(yīng)用處理器:特性、參數(shù)與設(shè)計(jì)要點(diǎn)

    深入解析i.MX 6Solo/6DualLite應(yīng)用處理器:特性、參數(shù)與設(shè)計(jì)要點(diǎn) 引言 在當(dāng)今的電子設(shè)備領(lǐng)域,高性能、低功耗的應(yīng)用處理器需求日益增長。Freescale Semiconductor
    的頭像 發(fā)表于 04-10 09:20 ?499次閱讀

    i.MX 6ULL之后:2026年入門工控平臺,TI AM62x與STM32MP1誰主沉???

    做一個(gè)帶 7 寸屏的工業(yè)儀器、充電樁顯示屏或簡易網(wǎng)關(guān),NXP i.MX 6ULL 是閉眼選的標(biāo)準(zhǔn)答案。
    的頭像 發(fā)表于 01-27 15:15 ?684次閱讀

    電纜帶電檢測操作方法的選擇

    電纜帶電檢測是保障電力系統(tǒng)安全穩(wěn)定運(yùn)行的關(guān)鍵技術(shù),在實(shí)際應(yīng)用中,這種檢測方法是在電力系統(tǒng)運(yùn)行狀態(tài)下(不中斷電纜供電),利用傳感器、檢測儀器或智能算法,對電纜的絕緣性能、導(dǎo)電性能、機(jī)械結(jié)構(gòu)及運(yùn)行環(huán)境
    的頭像 發(fā)表于 11-28 10:10 ?573次閱讀
    電纜帶<b class='flag-5'>電檢測</b>操作方法的選擇

    【飛凌OK-T153 開發(fā)板試用】實(shí)時(shí)性測試

    I.MX6ULL(1 X A7@792M)的對比 從測試結(jié)果可以看出T153實(shí)時(shí)性要明顯高于I.MX6ULL 另外需要注意上述測試無論是T153還是
    發(fā)表于 11-22 05:29

    一種簡單的電源掉電檢測電路設(shè)計(jì)

    需求:由于目前產(chǎn)品對于電源上電與掉電時(shí)序要求較高,在產(chǎn)品運(yùn)行過程中,如果突然掉電,沒有及時(shí)關(guān)閉運(yùn)行的產(chǎn)品。會導(dǎo)致?lián)p壞產(chǎn)品內(nèi)部的器件。因此電路上需要對掉電進(jìn)行檢測,然后再控制器上關(guān)閉產(chǎn)品
    的頭像 發(fā)表于 11-20 14:40 ?3228次閱讀
    一種簡單的電源<b class='flag-5'>掉電檢測</b>電路設(shè)計(jì)

    瑞芯微RK3506 vs NXP i.MX6ULL

    NXPi.MX6ULL核心板進(jìn)行多方面對比。性能與能效對比性能優(yōu)勢對比:RK3506在接口方面比i.MX6ULL少2個(gè)UART,其他性能方面,RK3506以三核A7(1.
    的頭像 發(fā)表于 06-19 16:26 ?1577次閱讀
    瑞芯微RK3506 vs NXP <b class='flag-5'>i.MX6ULL</b>

    618盛夏狂歡,米爾電子攜手恩智浦開啟年度技術(shù)盛宴!

    即日起-2025.06.30,米爾恩智浦多系列開發(fā)板限時(shí)折扣!米爾基于i.MX91、i.MX93、i.MX8MPlus、i.MX6UL/i.MX6U
    的頭像 發(fā)表于 06-13 08:03 ?1039次閱讀
    618盛夏狂歡,米爾電子攜手恩智浦開啟年度技術(shù)盛宴!

    飛凌嵌入式ElfBoard ELF 1板卡-LCD-IOMUX修改

    LCD數(shù)據(jù)引腳,做以下更改: 由于我們的LCD_PWREN是使用IO擴(kuò)展芯片SN74HC595D: 而不是i.MX6ULL芯片的原生GPIO所以我們注釋掉LCD_RST引腳: 當(dāng)然也要將擴(kuò)展
    發(fā)表于 06-07 10:58

    重磅新品登場!第二代高性能分布式IO模塊、i.MX6ULL核心板、NXP工業(yè)級單板機(jī)

    重磅新品登場!第二代高性能分布式IOi.MX6ULL核心板以及配套工業(yè)級單板機(jī)分布式IO與核心板部分型號參與送樣文末了解詳情↓↓↓M31-U系列高性能分布式遠(yuǎn)程IOM31-U系列高性能分布式IO主機(jī)
    的頭像 發(fā)表于 05-29 19:33 ?1305次閱讀
    重磅新品登場!第二代高性能分布式IO模塊、<b class='flag-5'>i.MX6ULL</b>核心板、NXP工業(yè)級單板機(jī)

    技術(shù)分享 | 儲能整機(jī)掉電檢測方案

    。傳統(tǒng)電路的斷電檢測都需要協(xié)處理器去邏輯控制,增加成本的同時(shí)也增加了設(shè)計(jì)的復(fù)雜性。我司通過硬件的配置的方式,定制了一顆延時(shí)觸發(fā)芯片,內(nèi)部型號為QY003,可直接設(shè)
    的頭像 發(fā)表于 05-28 17:32 ?855次閱讀
    技術(shù)分享 | 儲能整機(jī)<b class='flag-5'>掉電檢測</b>方案

    飛凌嵌入式ElfBoard ELF 1板卡-uboot配置詳解

    都是uboot可以支持的不同平臺的配置文件。我們只關(guān)心跟i.MX6ULL相關(guān)的_defconfig,輸入命令:elf@ubuntu:~/work
    發(fā)表于 05-22 11:14

    飛凌嵌入式ElfBoard ELF 1板卡-Uboot

    /SourceCode下載。不過我們目前使用的uboot源碼不是在這個(gè)網(wǎng)站下載的,而是由NXP公司提供的。NXP公司在推廣i.MX6ULL芯片時(shí),會開發(fā)出一套i.MX6ULL EVK評估板給客戶進(jìn)行評估,同時(shí)也有
    發(fā)表于 05-22 10:44

    「2025恩智浦創(chuàng)新技術(shù)峰會」飛凌嵌入式亮相上海首站

    ,展示其在低成本人工智能、工業(yè)物聯(lián)網(wǎng)等領(lǐng)域的創(chuàng)新成果。此次峰會,飛凌嵌入式帶來了基于恩智浦i.MX95xx、i.MX9352、i.MX8MPlus和i.MX6ULL
    的頭像 發(fā)表于 05-15 13:38 ?1648次閱讀
    「2025恩智浦創(chuàng)新技術(shù)峰會」飛凌嵌入式亮相上海首站
    福州市| 讷河市| 东宁县| 通道| 顺昌县| 巴青县| 河北区| 香港 | 菏泽市| 铁岭市| 尤溪县| 随州市| 大庆市| 开化县| 佛坪县| 淮南市| 枞阳县| 镇坪县| 白朗县| 依兰县| 苗栗县| 淄博市| 深州市| SHOW| 泸州市| 临西县| 克山县| 仙游县| 巴南区| 万山特区| 辰溪县| 大城县| 新源县| 汉阴县| 新平| 仪陇县| 清水河县| 大理市| 九龙城区| 玛沁县| 湖南省|