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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。$ i+ |0 G! D/ z. d
#include <linux/init.h>
8 i$ @2 L- {2 J$ r' g#include <linux/module.h>% y! b$ k8 ]+ q' ~- ]
#include <linux/kernel.h>
3 a, i2 p  Q7 z! E; s8 E5 G) a) b#include <linux/types.h>
2 A: D0 S; I) j$ X! d#include <linux/gpio.h>
" x8 X. \( d, r2 s& e#include <linux/leds.h>
' s" y+ A# T5 O) [& J8 A#include <linux/platform_device.h>* {# }; o( s2 `0 @2 e1 J
/ j  w# t. D4 L
#include <asm/mach-types.h>/ V3 U# ^0 t( V8 O* N
#include <asm/mach/arch.h>
4 D& V/ O# T# Q6 N- m# f#include <mach/da8xx.h>; H1 D8 x# C( K, Q# ]8 a; r
#include <mach/mux.h>
- ^* P1 a/ L: Q: b( r; J2 u/ V/ ]7 E$ T$ X4 ?' h: C2 [
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)- L7 k1 c' a- ~- t% K4 C
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
* A! m5 r* N# L4 D# q( u#define DA850_USER_LED2        GPIO_TO_PIN(0, 1), h' l1 k6 ?+ m" V4 r
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
! G" r' t& [7 L2 u6 F2 E
0 G6 j$ F, w# U/ G/* assign the tl som board LED-GPIOs*/7 k+ K* @) O1 j
static const short da850_evm_tl_user_led_pins[] = {1 K: Y$ F/ b0 g# U
        /* These pins are definition at <mach/mux.h> file */# w5 X* y, A) @
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
8 o( ~8 e* \' \" Z+ u2 a4 E        -1
5 N2 @6 n& Z& ^8 G' P& I! |};
" B- _# D6 K; x0 G8 N% w6 g- [) n# j" ?+ {* M
static struct gpio_led da850_evm_tl_leds[] = {6 }  S1 n. {7 U4 j! f+ @
        {) {: y' h, @( n2 V- h- a/ A+ \
                .active_low = 0,: s9 Y+ l% j7 d- I) Q
                .gpio = DA850_USER_LED0,
) ]' t! j, t" Y                .name = "user_led0",! M0 B6 I- f/ G0 u
                .default_trigger = "default-on"," k& e9 \: q" D" M1 u
        },
8 h/ z' W+ G) e- o. W' l        {2 a' s& A0 B2 l2 e
                .active_low = 0,
- A9 g- ?6 S+ A6 Y( ^9 }                .gpio = DA850_USER_LED1," P' v( z* l6 I& H7 F2 k- {& t
                .name = "user_led1",9 Y4 A0 p7 m% u  E: l
                .default_trigger = "default-on",
9 l! v* i8 O) [2 o        },4 D, W- D( R) H9 s9 P/ z7 ?
        {; S1 _. j1 |( I/ E# i
                .active_low = 0," M1 ]4 |0 p$ B1 [8 |( b3 \" v' \
                .gpio = DA850_USER_LED2,
+ S2 P% E0 r7 L2 i9 W                .name = "user_led2",
6 k& n- u& Z1 {; h8 E                .default_trigger = "default-on",6 l5 T' [& k. O* P! S' d/ D
        },
5 [4 [! v2 U- a) m$ ^        {
! B8 V0 m5 Y( C& v9 Y8 q9 O                .active_low = 0,+ u* z1 u* n8 G" A$ D3 m& d; I
                .gpio = DA850_USER_LED3,1 i: U2 k% O! _" F( B
                .name = "user_led3",, F2 p2 P* h5 ?( s
                .default_trigger = "default-on",
. R( X6 `6 a  r, v4 S        },
; B' P7 n& }5 z, P1 i+ r" P};4 i, O1 W4 k$ l) O' h3 _4 m
6 t; d: O+ ]- m% F! ~5 D
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
) B% Z) K" }5 N& }1 t7 K        .leds = da850_evm_tl_leds,
: P+ z  K. Z- t- f        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),5 P. h* o2 d' D' r, I" h
};( w/ p- w8 Y- i0 N: G
* u. R' l1 u/ s
static void led_dev_release(struct device *dev)
1 |! K5 f" Y8 a0 ~8 y" T! r{
  r% _! G! V, ~! V};
) S) k; r& I: x& X- J6 f1 [
7 o5 l, E  I, u9 E& m: Gstatic struct platform_device da850_evm_tl_leds_device = {
+ h( V: i( |2 }, Y3 v; D* k: j) `. u: s        .name                = "leds-gpio",* l% D9 K' H+ n; i5 ]8 U$ f& Z0 L
        .id                = 1,
$ y, ?+ ^0 x" ], G6 ~9 O6 t, ~+ ^        .dev = {' u6 c, C3 I) K# g8 l
                .platform_data = &da850_evm_tl_leds_pdata,/ \6 `* p/ K5 `, ]
                .release = led_dev_release,
2 o  Q; U+ q8 [% q, u' V& \3 k        }& ?/ c+ K* C2 V  J% a4 b* j
};
  J8 O& n7 }: f% p; ^$ N* t/ \- h! d* f1 a4 z
static int __init led_platform_init(void)
# _" B0 j1 g: R8 D8 O, x/ ?) C% h{! p" s: C  E$ {7 s9 {8 g+ P
        int ret;
: u1 ?5 [$ ]  O0 `( n0 `+ }#if 01 U# D7 E1 @! s5 Q1 b1 }  X; Q
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
7 w$ e* \( X3 ^; f' U" Z        if (ret)
0 g, C/ ]3 k! W7 g% N                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
# M( c  J- Y* b( T, x6 l  w# Z6 G% x                                "%d\n", ret);/ D0 b) F* p+ N- o( M% G
#endif
3 g2 |) A/ s0 O- K7 D        ret = platform_device_register(&da850_evm_tl_leds_device);
( `" O0 ~# w2 Z- \; x; ?- O        if (ret)
% M# W* r( j5 h8 ]5 d- Q$ G2 L; `; B                pr_warning("Could not register som GPIO expander LEDS");
7 p) E4 O5 I9 W2 q- T7 {7 Y, u4 H        else
2 j( e1 b8 n3 ?  H+ v; l5 V                printk(KERN_INFO "LED register sucessful!\n");
: D0 X; R% a0 Z# _: r4 R8 h  K  ^" f
        return ret;9 y. E+ Y0 c, v, Z  Y; _
}; M' G* L( Z7 H7 r, z5 b

+ L9 {! e+ E' Estatic void __exit led_platform_exit(void)
, T$ u' z  S* |& G4 g{& n+ c) |2 D- W
        platform_device_unregister(&da850_evm_tl_leds_device);
' d. M; [. S3 e1 d4 A
3 g0 B+ Y4 f: d% F        printk(KERN_INFO "LED unregister!\n");
. \8 _$ _. l# u7 V" r; }" T}* n5 \& V3 E$ |( N0 Q

% f2 d$ R( V7 d1 z8 z4 E. bmodule_init(led_platform_init);
% f' }* c% n5 M; Emodule_exit(led_platform_exit);
8 p) R! i0 d5 T; Q
3 ]8 ~: _( p  H! H; J: UMODULE_DESCRIPTION("Led platform driver");
9 k5 i2 a0 t" bMODULE_AUTHOR("Tronlong");9 Z( N$ o" F6 B& G* U3 D
MODULE_LICENSE("GPL");
8 S, @" q  |- _. ?% A2 B
& s- E" W$ \: ?" d; _4 Z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-23 09:36 , Processed in 0.037856 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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