程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
( u: i" W" A$ m0 b#include <linux/init.h>5 y# j8 d, B, @# n2 I; V
#include <linux/module.h>0 ?( }# X8 r4 ?: `. p: ^. E! N
#include <linux/kernel.h>
% H# U  S# C2 B, E+ s: Z2 ^#include <linux/types.h>; E8 d4 z7 n6 |8 N3 o9 C
#include <linux/gpio.h>5 m/ a* H: ~; n4 L
#include <linux/leds.h>
8 b" }# M5 K8 {: i# Y( o#include <linux/platform_device.h>) z. G5 l; ?/ W( k# W2 b

* r- M% u! `* M/ i; }' G3 G* z8 h#include <asm/mach-types.h>
5 K  V. u% x$ O- G/ x. i4 g#include <asm/mach/arch.h># W; F$ H7 c) Y5 K1 n
#include <mach/da8xx.h>
3 `% j! L" @0 D0 a& b#include <mach/mux.h>
9 r- R1 G+ d8 X& T5 c# P
) U8 z' X% `- O#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
$ d1 O3 ~/ v  U8 l#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
& [2 P6 Y& m& K#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
% s3 \2 y$ u* G4 R3 P. m#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
/ ^( R6 ?( A5 B$ p2 j
; P8 R1 ?4 {7 M+ z+ u( |0 R/* assign the tl som board LED-GPIOs*/
2 @4 C7 @1 H. x7 j- A( j8 W6 {3 fstatic const short da850_evm_tl_user_led_pins[] = {# G) n' @: J: n6 L" V+ x
        /* These pins are definition at <mach/mux.h> file */7 A6 d2 Y- O) X
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,5 q  i# k7 }# ?7 B+ }6 q: b
        -1
' ]/ h+ c6 }0 {; {) M};
) e1 _( y- v- T. W- ?
! H% X3 a. G( E2 Q, X- }  [static struct gpio_led da850_evm_tl_leds[] = {
# T5 y. q8 ~) G# O! ~. w$ C        {" R  h7 c) T) v, p' b8 x" R3 v
                .active_low = 0,6 }7 u; ~# S2 w/ b  e
                .gpio = DA850_USER_LED0,% ?, H) d! r( j/ n8 N
                .name = "user_led0",. x& w- i) M) `
                .default_trigger = "default-on",6 P& E" y( |& \1 O
        },
# ^5 I/ ]; ?5 X, N( D        {
7 Y5 T, H" j9 w, N7 Y) y" o/ j                .active_low = 0,
  v9 C3 z0 j; b' ^+ O/ Y0 o                .gpio = DA850_USER_LED1,4 b" `; W" Z& g6 l* T
                .name = "user_led1",
; p( O, z1 [( s8 {9 w                .default_trigger = "default-on",
8 u0 q* L# \8 p! A& g, |( B2 G; f        },5 _" K: u* w2 O8 V3 A7 `
        {% n7 A$ q" A0 G
                .active_low = 0,; j# L& a5 k6 N3 r# c3 w
                .gpio = DA850_USER_LED2,. @( b' P" H' L  m, ~- N
                .name = "user_led2",
2 a5 p. R+ c. |/ O                .default_trigger = "default-on",' x& A  h! h5 A7 ^; e2 `1 ]
        },: I8 n9 E6 P( Y. {7 v2 d9 F
        {
. W% A3 ?5 L/ ?- ^" l4 X+ H+ Y                .active_low = 0,
# L, O6 c" K& `* O9 j' x) d; k; H/ b                .gpio = DA850_USER_LED3,
; r4 W/ h( h5 B/ L) E                .name = "user_led3",
4 }% V0 V1 y' f9 y3 S$ M                .default_trigger = "default-on",  v1 ]' o% Y1 G+ G, F% L: M5 N
        },6 m5 k- v3 G8 G4 X) y
};# j# ]& k* t1 ~; u" {
) a/ z7 I* W5 F5 R
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
4 L9 r4 |: _6 H6 N  i        .leds = da850_evm_tl_leds,
4 Q# ]% n2 V! V        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 V% O# C+ o, J& r; G};- [* L( L+ G# C
3 ^& h- f( S; w3 f0 M3 l
static void led_dev_release(struct device *dev)1 E/ q/ ?# T: Q8 [
{+ i$ {. \# m4 B$ C
};  G% c" I. ~# ]- N

4 g7 v$ w  S. W# W9 Fstatic struct platform_device da850_evm_tl_leds_device = {6 z1 `# N; S, Q5 k8 e
        .name                = "leds-gpio",
" }: o% C! H" Y& A4 \% `: ~- K4 ]$ v        .id                = 1,
; w: B9 L/ L- \# x        .dev = {' u) W! r! \  {( W1 @, n3 g
                .platform_data = &da850_evm_tl_leds_pdata,8 ~+ M/ i5 M' u5 I- x& s
                .release = led_dev_release,+ [1 ^# |# N7 {# X! s- [
        }
2 K! e; i2 a! ~2 t% m; e};
/ [- N, W2 [, t5 ]6 E8 a
1 ]' u0 g5 N7 nstatic int __init led_platform_init(void)7 W& [, j+ H/ S: H& T# r
{6 @- e/ o/ x/ I; R5 G- X+ |' ^
        int ret;
9 u% }8 ^8 d! R; ^% Y* D#if 0, x3 m5 m* B5 w; y
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
9 g2 W% X* I9 {! m        if (ret)
: c& s$ K  F! k, N+ C4 h                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"* T- E( i! F! w$ K  ]
                                "%d\n", ret);  m! I3 i# q6 a- B. z: Y
#endif
/ ?( K; U; C8 Q# R9 d        ret = platform_device_register(&da850_evm_tl_leds_device);
& F, |) h3 T) T( U" u7 Z1 ^7 m) Y        if (ret)
7 w2 l3 a7 `: q2 X/ f                pr_warning("Could not register som GPIO expander LEDS");
  ^6 w( ^( |- W4 J+ n( ~, M        else
  I1 g! D4 r) o! a! L$ K* J% @                printk(KERN_INFO "LED register sucessful!\n");
8 L( L: q' M) ]  M$ K+ s& H5 M1 |  t7 W& e
        return ret;
+ Y% E$ c  V* g) M4 Z3 M8 `4 d}9 D* \# c) Q7 B( ]
+ P6 {5 @# y  x8 d. |
static void __exit led_platform_exit(void)
+ J8 W% t5 b& R2 ~! Y{
% o& C6 U6 z1 l7 l        platform_device_unregister(&da850_evm_tl_leds_device);
5 q. N. U6 G" S5 _; P. ?8 R; _+ {3 Y
        printk(KERN_INFO "LED unregister!\n");* ~$ n- J/ t/ s
}
' T% F* [$ j% Y) E# F! i
: B; Y$ f- s& \6 y( B, Kmodule_init(led_platform_init);% z4 Q7 ?2 O3 a/ s, V' ]2 ?* m
module_exit(led_platform_exit);
6 F2 Q8 Z8 ^$ r& q" y
% Y2 l3 v; A8 \  Q* r  CMODULE_DESCRIPTION("Led platform driver");% r0 D  [5 \  i% c
MODULE_AUTHOR("Tronlong");
$ x) }, Y/ ?. v4 _; b( C; Q' ]MODULE_LICENSE("GPL");5 O: F! u8 ~  _+ I

" u- W# R8 g0 L- p" A8 f, E' I
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-9-3 00:00 , Processed in 0.064245 second(s), 33 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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