程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7293|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。2 K, C6 D% F0 p7 s
#include <linux/init.h>
: L  C/ }/ i7 O! S3 d( N#include <linux/module.h>( [$ j2 }+ u" y: l+ j+ G
#include <linux/kernel.h>
& M# K6 X# R9 T: \7 f0 e0 o+ K#include <linux/types.h>' C3 [  a$ M0 V" T9 [9 F" c" j
#include <linux/gpio.h>
( b# ]1 t' V5 n9 G) G! L$ E#include <linux/leds.h>
  K( y* l3 ~. {#include <linux/platform_device.h>/ `/ Z2 W8 \5 A

; O3 M# X$ u8 v9 V& f6 F#include <asm/mach-types.h>
4 e# l( X% @2 x#include <asm/mach/arch.h>
: w& j, l5 F) S/ D* N2 [. o8 c#include <mach/da8xx.h>
3 w; x* h+ H# U: o3 i: a, q#include <mach/mux.h>* k" A5 r7 I8 r. }/ p9 `% A
8 b7 b5 `: c" a# p
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
- Z2 y8 K3 K( {3 J; @, b#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
0 b  J' I( O" q" l3 M; S, q#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
3 @% w- J- j* j5 ], R+ i" N#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)3 n- \' ~6 L3 k. ?0 L

! w# g" l3 U! G0 s! V/* assign the tl som board LED-GPIOs*/! x/ E; ], w, W( B' \0 k3 O
static const short da850_evm_tl_user_led_pins[] = {' g4 c6 N- D& ?; O( u- \
        /* These pins are definition at <mach/mux.h> file */: W; H; }# k4 [. l6 O1 B
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
, U5 V* L  [% U        -18 Y4 R4 G4 h6 M( C9 X) x) c% H4 Q" _
};
% w5 x; t, Q1 a: x$ T
9 R; R7 y0 P1 ~1 c% \0 fstatic struct gpio_led da850_evm_tl_leds[] = {
# w  A6 V  M7 C8 u2 c) a        {) l" k3 u0 N6 y5 o" |
                .active_low = 0,! c# V9 A4 K  |; m$ Q
                .gpio = DA850_USER_LED0,1 u# Z+ g2 P& {# m
                .name = "user_led0",. p6 j) c; A3 w9 X- r& _
                .default_trigger = "default-on",
( C4 K! o; t  N$ F; X        }," m6 h$ D, e  l$ S7 [0 u& H
        {
' U% q* k7 |; x$ G: S3 q) d# R                .active_low = 0,& J. O1 O, c5 ^! h
                .gpio = DA850_USER_LED1,$ k/ w! r- x5 J6 d
                .name = "user_led1",; F; P: f, V3 I1 H% ]5 v
                .default_trigger = "default-on",
7 v4 `: b9 w; |6 u        },
- U, n6 \2 P% F9 I9 J  L3 C        {( k' y3 W( p2 t& X5 G  |: m' i
                .active_low = 0,
" [0 m- H" ^% V% y  V8 N3 ?+ [3 R                .gpio = DA850_USER_LED2,' `# j% y- u$ G5 w# K% e# Z! B1 d
                .name = "user_led2",
8 E4 Z! K! n: f; l                .default_trigger = "default-on",. ~5 Y! f% ]  E6 y
        },
' X# D$ @- a2 g% {9 a+ p        {
7 Z/ `3 b' N& o                .active_low = 0,
3 q* p* c  _+ V" v! A" b% V                .gpio = DA850_USER_LED3,
  `, h! M4 [& [0 w1 p                .name = "user_led3"," _- F* F) e5 a" S( j( Q
                .default_trigger = "default-on",
5 X1 G1 a% b# [5 z2 }        }," X: C: N' k, C6 G8 S- D5 b2 T) G
};- J9 L7 `5 Q; N3 U8 o

+ s+ B4 U5 M2 O+ _! ystatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
4 P4 ?  H" m$ F. q" o        .leds = da850_evm_tl_leds,. P4 U* }( f; v9 N6 D
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),, a& y4 [1 g! \6 M
};
" @3 b" T* F9 H0 [5 o$ Q+ h6 T- {& D! g
static void led_dev_release(struct device *dev)
! Z% O  O  e! M{6 v4 r0 i1 v8 ]- g- H
};: _: X/ ^$ k- J/ ?
# M% I, m. y) C8 y/ w! H: K
static struct platform_device da850_evm_tl_leds_device = {
, x. Y5 y) [( Q' \        .name                = "leds-gpio",/ a' f, s9 h! D. k# C8 D% s- K0 ]
        .id                = 1,3 J% x9 H4 ^7 W8 E! n
        .dev = {" r5 i: l& i# i% s+ w
                .platform_data = &da850_evm_tl_leds_pdata,6 Z% r% Z5 t# _
                .release = led_dev_release,
4 k: K) p5 y" i/ O- _        }
$ x& x4 E! m2 b& q& H* q};
1 I7 Q2 i! k8 Z- b, p  q0 A
  w$ W- H, p& a  t& r& M$ jstatic int __init led_platform_init(void)
" U: Z! o, y3 \/ d: H{2 C' r5 i* M! P3 K7 I. K
        int ret;
0 f: z6 O( E2 R3 X9 V#if 0
1 ]+ g- l9 g% K2 L        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
; W: i  R/ y9 j4 X  q        if (ret)
; ~' c: g$ I" j- T5 W                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"& U- A, C* `; J5 d( B( h. a
                                "%d\n", ret);
% Y- H# ^6 q. T1 z#endif
% r# W+ B: }+ d9 d# v4 W( h        ret = platform_device_register(&da850_evm_tl_leds_device);8 a, \7 x& J5 x
        if (ret)
7 E7 T( \: W, o" X0 _* Q, B- g                pr_warning("Could not register som GPIO expander LEDS");6 A) Y2 X1 e. a3 U4 g+ U$ x+ @, o
        else2 P7 K4 c" Y/ T; A
                printk(KERN_INFO "LED register sucessful!\n");
; {- k  L8 v1 |, J4 _# _
3 w' d! L5 y& z8 [8 ^* q% s        return ret;
6 ~/ F' i3 G6 D. g1 ^}
! z* U! W/ Y/ u8 j% I
# j: L' _7 y+ L! G! i6 Z- _static void __exit led_platform_exit(void), @0 W" I  k( C/ H' G
{
9 U4 k8 M4 z! o; H% f        platform_device_unregister(&da850_evm_tl_leds_device);4 m5 R! ^0 r! x1 a; u# h6 r

- f' |# G; I" ]3 |& W1 p: v        printk(KERN_INFO "LED unregister!\n");
' ~) k  [" p% S+ J}
; H: C8 e3 Q3 Y
) D$ k8 k! o- q! mmodule_init(led_platform_init);
( l4 s3 Z  V2 I% S# p: ]7 e5 xmodule_exit(led_platform_exit);- ]5 T* V7 N$ n+ H3 n/ \3 Q4 |% Z
( i- ]& f: W# |/ H: g
MODULE_DESCRIPTION("Led platform driver");
# N1 {; D- ~# b% a" HMODULE_AUTHOR("Tronlong");8 r7 ~$ P) t9 n- d* u. _8 v
MODULE_LICENSE("GPL");/ c/ p: t; l/ G. {( P+ O, q

+ P# H: `# o# _3 [: U' }% ~- {7 `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2025-12-15 11:52 , Processed in 0.039995 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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