发 帖  
[问答]

omapl138的ARM端linux操作系统下能操作uPP接口么?

2491
2018-6-21 00:35:33   1 评论 分享淘帖 邀请回答 举报
1 条评论
  • 2019-4-1 17:01

    我近期也在学习linux操作系统下,在ARM端使用upp(编写一个upp功能模块),能触发接收中断,但是数据全是零,能否将你的源码发我学习下,谢谢。下面是我的初始化函数:
    static int __init omapl138_upp_init(VOID)
    {
        volatile unsigned long *p_Temp = NULL;
        UINT32 Delay_U32 = 2000U;

        printk("Load upp module function!\n");
        printk("Current Version is V%d.0\n",UPP_VERSION);
        printk("Author:Ben Date:2019-04-01\n");
       
        //register_chrdev(GPIO_LED_MAJOR,"omapl138gpio",&leds_drv_file_operation);
        major = register_chrdev(0,"omapl138upp",&upp_drv_file_operation);/*Alloc Major Num auto*/
       
        io_mem = request_region(SOC_SYSCFG_0_REGS, 0x100, "io");
        if (io_mem == NULL)
        {
          printk("failed to get memory region\n");
        }


        /*Set upp gpio mux*/
        p_Temp = ioremap(SOC_SYSCFG_0_REGS, 0x100);
        if(NULL == p_Temp)
        {   
            release_resource(io_mem);
            kfree(io_mem);
            printk("ioremap1 fail\n");
            return -1;
        }
       
        *(p_Temp + 13) &= 0x0000FFFF;
        *(p_Temp + 13) |= 0x44440000;/*GPIO6[8]~GPIO6[11]*/

        *(p_Temp + 14) &= 0x000000FF;
        *(p_Temp + 14) |= 0x44444400;/*UPP_D10~UPP_D15*/

        *(p_Temp + 15) = 0x44444444;
        *(p_Temp + 16) = 0x44444444;
        *(p_Temp + 17) = 0x44444444;

        *(p_Temp + 18) &= 0xFF000000;
        *(p_Temp + 18) |= 0x00444444;
        iounmap(p_Temp);

        /* 使能upp时钟 */
        //davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN, 1,
        //                19, 1);
        /* 映射io寄存器 */
        p_Reg =  ioremap(UPP_BASE_REGS, 0x100);
        if(NULL == p_Reg)
        {   
            printk("ioremap2 fail\n");
            return -1;
        }   

        p_Reg->Ctrl_U32 &= ~UPP_UPPCR_EN;
        while((p_Reg->Ctrl_U32 & UPP_UPPCR_DB) != 0U)
        {
        }
        p_Reg->Ctrl_U32 |= UPP_UPPCR_SWRST;

        while(Delay_U32 > 0U)
        {
            Delay_U32 --;
        }

        p_Reg->Ctrl_U32 &= ~UPP_UPPCR_SWRST;
        p_Reg->Ctrl_U32 |= UPP_UPPCR_SOFT | UPP_UPPCR_RTEMU;

        p_Reg->CHCtrl_U32 = 0x02020007U;
        p_Reg->DLB_U32 &= ~0x1000U;
        //p_Reg->DLB_U32 |= 0x1000U;
        p_Reg->ICfg_U32 = 0x00180F18U;
        p_Reg->IVR_U32 = 0x00000000U;
        p_Reg->ThCfg_U32 = 0x000000U;
        p_Reg->IntEnClr_U32 = 0x0001F1FU;
        p_Reg->IntEnSet_U32 = 0x0001000U;   
        p_Reg->Ctrl_U32 |= UPP_UPPCR_EN;

        bsp_upp_InitRecv();

        upp_class = class_create(THIS_MODULE,"upp class");
        if(!upp_class)
        {
             if(IS_ERR(upp_class))
             {
                return PTR_ERR(upp_class);
             }
        }   

        upp_dev = device_create(upp_class,NULL,MKDEV(major,0),NULL,"upp");
        if(!upp_dev)
        {
             if(IS_ERR(upp_dev))
             {
                return PTR_ERR(upp_dev);
             }
        }

        return 0;
    }

2个回答
2018-6-21 00:51:21 评论

举报

2019-4-1 16:57:22 评论

举报

只有小组成员才能发言,加入小组>>

3150个成员聚集在这个小组

加入小组

创建小组步骤

快速回复 返回顶部 返回列表
关注微信公众号

电子发烧友网

电子发烧友论坛

社区合作
刘勇
联系电话:15994832713
邮箱地址:liuyong@huaqiu.com
社区管理
elecfans短短
微信:elecfans_666
邮箱:users@huaqiu.com
关闭

站长推荐 上一条 /9 下一条

快速回复 返回顶部 返回列表
-

厂商专区

飞凌嵌入式

瑞萨单片机论坛

米尔电子

Aigtek安泰电子

斯丹麦德电子

芯佰微电子

其利天下技术小组

道生物联技术社区

视美泰

FCom富士晶振

大大通

合众恒跃

进迭时空

RT-Thread论坛

EASY-EAI灵眸科技

-

技术社区

张飞电子技术社区

KaihongOS技术社区

FPGA开发者技术社区

RISC-V MCU技术社区

HarmonyOS技术社区

-

OpenHarmony开源社区

OpenHarmony开源社区

-

嵌入式论坛

ARM技术论坛

STM32/STM8技术论坛

嵌入式技术论坛

单片机/MCU论坛

RISC-V技术论坛

瑞芯微Rockchip开发者社区

FPGA|CPLD|ASIC论坛

DSP论坛

-

电路图及DIY

电路设计论坛

DIY及创意

电子元器件论坛

专家问答

-

电源技术论坛

电源技术论坛

无线充电技术

-

综合技术与应用

机器人论坛

USB论坛

电机控制

模拟技术

音视频技术

综合技术交流

上位机软件(C/Python/Java等)

-

无线通信论坛

WIFI技术

蓝牙技术

天线|RF射频|微波|雷达技术

-

EDA设计论坛

PCB设计论坛

DigiPCBA论坛

Protel|AD|DXP论坛

PADS技术论坛

Allegro论坛

multisim论坛

proteus论坛|仿真论坛

KiCad EDA 中文论坛

DFM|可制造性设计论坛

-

测试测量论坛

LabVIEW论坛

Matlab论坛

测试测量技术

传感技术

-

招聘/交友/外包/交易/杂谈

项目外包

供需及二手交易

工程师杂谈|交友

招聘|求职|工程师职场

-

官方社区

发烧友官方/活动

华秋商城

华秋电路

+

元器件搜索引擎

元器件搜索引擎