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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
8 q; f$ V! C" W# [; S#include <linux/init.h>
. t% C; Y- c# h7 M. b8 b; X#include <linux/module.h>) O2 y! l7 Z+ m
#include <linux/kernel.h>; N5 b5 ^! R$ z) v
#include <linux/types.h>
( Q7 m8 R9 h/ a* O. ?#include <linux/gpio.h>
/ R9 N, E" X: n* I1 Q#include <linux/leds.h>3 R# a! o& P# x8 g
#include <linux/platform_device.h>
4 x0 }5 {9 G: A0 n& m
5 o7 h* J( F% r- ~( D( ~$ _1 W#include <asm/mach-types.h>
, x$ ^% A8 U$ e4 ]#include <asm/mach/arch.h>
* ^* o0 S+ ~' [/ W#include <mach/da8xx.h>* N* a# k: i4 h& r$ v
#include <mach/mux.h>
; X& S2 O3 v* Y  M- {3 d  t- P
. j2 g2 w" P" J9 M& r1 N#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)+ c& `* b: \; z4 O
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)# \: @. e, O  g$ t- W
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
2 a; W" u: i( V; F7 ?, I4 l#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
( D3 C! N( S) Q4 {- G
; W. U5 K8 \( q* N) e1 l/* assign the tl som board LED-GPIOs*/+ B7 O4 |: L3 K! L6 j
static const short da850_evm_tl_user_led_pins[] = {5 b+ Q# u! v2 C
        /* These pins are definition at <mach/mux.h> file */# I5 `" I: F, |' l2 J# M
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
! ?; Q& E: i8 z9 g9 S% N/ s, o! B        -13 j4 B  N% \. _/ C
};
% G8 Q& I& C1 B; j! n
  C9 d: @% ~! j/ T, v8 J3 K& ?static struct gpio_led da850_evm_tl_leds[] = {+ G1 o; M8 a( t2 g
        {
' j7 n4 ]- D* ]# K/ C% B                .active_low = 0,
' i2 _7 N( C' X: a, M- m, k                .gpio = DA850_USER_LED0,% q$ n( N' y5 W/ u% _' t$ W
                .name = "user_led0",7 h: V4 i# A1 z# r& U+ K
                .default_trigger = "default-on",
" N/ R) ~; U. S        },; F1 ]/ S; u, A% S2 x4 Y' I
        {6 G; u# Y1 p$ a
                .active_low = 0,9 l9 r% G3 M+ f* y
                .gpio = DA850_USER_LED1,$ k0 W5 c: z4 K+ u3 u9 w; l
                .name = "user_led1",( c, z! F$ E/ G# W# @4 ~% ~& j/ v' \: k
                .default_trigger = "default-on",
0 L! l" Q; s9 p2 |6 }5 v6 l        },1 w4 |+ N2 h0 g% L3 m2 d4 C% W  C
        {
4 q3 k& v) r0 G$ c' c0 z0 R                .active_low = 0,+ m  b& A( {0 L2 v  t
                .gpio = DA850_USER_LED2,! `3 z) r/ O6 A2 R
                .name = "user_led2",
7 _  ]3 l1 o# N2 ^                .default_trigger = "default-on",
7 G! P/ ?% s, V        },
! b6 G1 a0 I& M% `3 X: {        {
* B4 M, W+ X$ ?" B" j- ^% u( T  B                .active_low = 0,
' H& C& K/ o0 o                .gpio = DA850_USER_LED3,
0 D" F; Y0 a8 v+ l                .name = "user_led3",
( _; a4 f- C5 \; ]$ T' K                .default_trigger = "default-on",5 Y! I# z' z# ~
        }," u) N5 M8 Z' L# K4 U- f/ k: v- X
};
4 C* ?3 f4 V4 \9 @" Q; w) }# X3 |6 X8 r4 A4 \  v9 ~( `
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
" x( J+ D" h% P: o( D0 H        .leds = da850_evm_tl_leds,( z$ M( N5 ]' U* N% }' O/ N
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),, |+ Y* o1 a. ?
};
9 Z6 U0 U! q: r/ h8 A# O
; b9 B) ?8 b: f9 M& Vstatic void led_dev_release(struct device *dev)7 D+ x1 \( Y, N, B( w
{
* y, w. d& T2 s! b$ G};
' F- T( X. q6 N  o9 h* v
+ q9 v; O3 S  {! u: u4 o/ Pstatic struct platform_device da850_evm_tl_leds_device = {
* a" a# j3 @( N  y9 U        .name                = "leds-gpio",
3 Y+ {9 }6 i7 y        .id                = 1,
( K6 \' c) k2 \7 H        .dev = {
; N- t! Z. Y+ c8 x9 \                .platform_data = &da850_evm_tl_leds_pdata,
' t1 {# t9 r; Z* ]$ T4 t                .release = led_dev_release,
0 ?  ~/ Z$ t# }        }. X% S" c/ r8 |1 g! n! V! B! G
};7 \  j+ e! I9 J2 x3 y( C6 Z
9 E* U; z5 q7 H: L
static int __init led_platform_init(void). N& W4 v- t& F( ?0 _8 b
{0 u( O4 l: @3 O- _, B6 }7 `
        int ret;
3 v( _- e( a3 F#if 06 P, \6 P; f: R
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);1 n; K( n% S4 |" @: f+ L% R
        if (ret)3 n. l+ q- D; t" N' @% L
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
( k! d  l! Q' }. j                                "%d\n", ret);# S9 D, e/ s; E" o( q
#endif' P- ]: i" J' S  ?. ]9 |& ]
        ret = platform_device_register(&da850_evm_tl_leds_device);2 Z. J8 K* O- g+ g; Z( E5 Z8 H
        if (ret)
) l- |% a5 _+ h7 S& J: y6 H$ x                pr_warning("Could not register som GPIO expander LEDS");" [: g9 K5 y' U& {1 f+ h6 c; V
        else( X) n3 E2 b' s6 h
                printk(KERN_INFO "LED register sucessful!\n");
7 f3 [  ]0 r- T6 V! n
" x/ m) o7 |; b( p3 f- I        return ret;% [" @! f( O0 d1 r' ^
}% ~% _: u6 g9 o- ?7 f  K( O" Q
3 |" r2 \' e/ _$ y  m4 ~* \* |7 @
static void __exit led_platform_exit(void)
6 T0 k* }" t: \) Y3 b& Y{
  j) T9 o8 [7 r! C7 x! H8 o0 ?  C) U        platform_device_unregister(&da850_evm_tl_leds_device);5 v* m  Z# d: Y. S
% W* n# j4 z, q% b' A5 H2 |/ ?3 n; `
        printk(KERN_INFO "LED unregister!\n");* q+ G' i9 {8 R0 V7 X  ]5 p
}% D1 [1 G% k+ q1 P1 M+ q- F- L4 W; }
1 ]2 [/ Q5 {8 A# }( i
module_init(led_platform_init);$ p8 A8 Z8 a. O% p/ h3 B: s) m
module_exit(led_platform_exit);
0 i- ~8 N" N5 z% o, `; J4 g' ?% T; _6 K
MODULE_DESCRIPTION("Led platform driver");
  Q) a( l) ?4 z1 C9 y; g. d4 QMODULE_AUTHOR("Tronlong");6 a* R8 s1 y- |5 r+ Q8 x
MODULE_LICENSE("GPL");
/ U4 `+ q2 K5 z5 y# }% D- j1 a! L9 L0 Q+ U2 Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-24 03:13 , Processed in 0.040721 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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