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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
. j& l& R0 t( ]4 R# f* }9 i2 l#include <linux/init.h>0 j1 C( \) g8 ?# }: y" B; {
#include <linux/module.h>+ r. e8 Q3 [. _) h, I
#include <linux/kernel.h>
4 H' h- ]  ^) V/ z/ ]  F. r0 a#include <linux/types.h>
+ o9 b$ K- u3 w( h, C/ V#include <linux/gpio.h>
1 Q4 U# t6 V; R! F#include <linux/leds.h>- w; u  D5 P  k2 ?! H  `& z
#include <linux/platform_device.h>" e8 d5 f: Y8 c9 x8 V5 R) F# S
& S  ^/ Y/ D7 [' _3 U& X# e
#include <asm/mach-types.h>
  c. X4 g1 h) u# F: `#include <asm/mach/arch.h>' @6 N- o; Y4 E. T
#include <mach/da8xx.h>( D/ K, j: c1 i- E  c3 j
#include <mach/mux.h>+ n6 O- N- z; Y( V+ n
# K% ~' r* J! N
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
- S# A; |/ o$ v* _, _7 a#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)& @/ o8 i) D! m; h" F6 t3 L
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)( [) _3 z) g$ ~, y+ _! b
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2). j9 {# @4 g$ @$ d1 `+ U
6 V% ^7 I. _, N5 q; h' B
/* assign the tl som board LED-GPIOs*/
* W% o4 U# e9 D/ z7 z" estatic const short da850_evm_tl_user_led_pins[] = {
# K" z! [/ ?5 |1 Z        /* These pins are definition at <mach/mux.h> file */% A1 i. S. Z: |; \# S2 m
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,' [" a4 F: i' ^# e: v8 S
        -18 t# |+ B( q1 N. l+ Z
};3 O; D; Y. Q; M, V  G; E

% N5 a8 c2 X7 H$ X/ n& W" a' Zstatic struct gpio_led da850_evm_tl_leds[] = {
- W# h" ~( z4 i) F. b, y        {7 p! N* V7 N2 v1 D& T
                .active_low = 0,
/ p/ \* [  O9 [$ p1 E# N                .gpio = DA850_USER_LED0,/ g5 x/ l: [& H7 B
                .name = "user_led0",. }' W" [( m" A" c" \. }2 J5 t% B
                .default_trigger = "default-on",6 O: W' w1 M1 X( i
        },; r2 x: Z8 h" O9 F
        {
8 W" i% T8 P0 U) G% i0 Z                .active_low = 0,9 I7 S: I/ w' {5 N9 ^
                .gpio = DA850_USER_LED1,
1 x0 K7 X/ b) X9 f; r4 q                .name = "user_led1"," Q8 V% u, c( H0 Q
                .default_trigger = "default-on",
+ E8 \9 \4 P' u        },! j7 \9 Q2 S. p/ @0 B4 h
        {
" L5 H5 j) |* w* ]' R                .active_low = 0,; y) z, V% o* {
                .gpio = DA850_USER_LED2,, m8 Y7 r5 _/ R4 {8 |
                .name = "user_led2",
: ]- i- ?7 q' z. I                .default_trigger = "default-on",
! g2 L4 R+ X0 O+ U( ^' C" @9 Z        },4 D7 i& m$ D0 g% _: T) d% k( Q
        {# G# B  ^+ c9 x3 I
                .active_low = 0,8 o$ e6 D4 z' b8 ~" p' w
                .gpio = DA850_USER_LED3,! C8 v" X# J% d$ ~; b$ d# K
                .name = "user_led3",7 z, R' g. m8 v! D0 k1 J
                .default_trigger = "default-on",
. [: O4 a! l4 ]. D8 H        },
% c% H* T* z5 K) n/ y6 R3 _, p};/ \; C5 I# D7 [5 a+ C

1 Y3 Q, T  w4 s% F5 K$ ]static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
# P- N0 m; k, r; n$ }% {2 |0 G        .leds = da850_evm_tl_leds,0 h2 W) \' v- F; g0 r1 J- Y
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),9 c8 ~1 F1 u0 ?# @# I/ O6 z
};3 G" }- K9 ?8 |" o5 [9 U; z
) v; K6 p. r4 V3 e" o. Z0 p
static void led_dev_release(struct device *dev)
, B4 w6 G) I( Y{4 L2 p2 N3 r. {/ A0 {7 W
};: v+ ?# z; X" g' o
% V. l% ^+ S# r/ b
static struct platform_device da850_evm_tl_leds_device = {! t7 c5 F, q& b( Y: h9 a8 U3 m1 d  {
        .name                = "leds-gpio",6 B4 e; I7 k$ ~2 d
        .id                = 1,
8 F1 M& @" _& I        .dev = {
. Y2 @, Q# E( x* ], Z( T7 ^9 G                .platform_data = &da850_evm_tl_leds_pdata," W$ h) C6 N! e0 D! Q
                .release = led_dev_release,7 L( j+ o3 z1 A  d* o2 x
        }8 K8 U" M& q& Y0 T6 L( j
};8 c  b) r6 |9 w$ X  w
5 Z3 q' b( k; n6 L( @
static int __init led_platform_init(void)0 t' \' n. c/ t3 _! X& L
{
  @% M1 [1 o  W        int ret;
8 P2 p& ~7 ]9 j7 D5 w$ \#if 08 K2 F  G2 X# [2 l
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);! I0 q# O" j  N9 m5 u. x
        if (ret)( \6 B4 \( H, h7 p% u+ w
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"0 ~* u# ]- o8 _4 ^0 |6 l3 X# z
                                "%d\n", ret);
& C( r0 X- e& k" ?! m5 s#endif4 ]3 l& \4 y) W- e
        ret = platform_device_register(&da850_evm_tl_leds_device);5 ~4 u* M4 o; v: F! r0 j
        if (ret)
% r) g  C0 J* z3 p" N2 F6 n                pr_warning("Could not register som GPIO expander LEDS");
) {2 B7 D# M- i" z        else/ d7 H) N, r/ r% f( C' K
                printk(KERN_INFO "LED register sucessful!\n");
4 p! D# [/ o. V0 L8 O4 W8 R7 |& M" z* a6 k- G
        return ret;
0 C% D9 [; |6 v. J7 D}
0 n4 ^: I( |+ R: R$ ~
: V+ f! k4 |2 n1 Gstatic void __exit led_platform_exit(void)
& o2 A# q3 d9 X  \6 d- F8 z3 M6 n{. a$ c4 i8 @# P" e9 B
        platform_device_unregister(&da850_evm_tl_leds_device);
. ]5 `5 A. W0 \  ?% U3 ], g' F1 X$ H  i  \
        printk(KERN_INFO "LED unregister!\n");
, S# H# m! b0 A& A; R8 K& H3 I9 _}
& Z2 r3 [/ {$ h( F8 z! h* a- }! u1 A3 a0 ^% T
module_init(led_platform_init);" {" X7 U) D0 W9 Z  {
module_exit(led_platform_exit);  @( @3 B3 Y8 M' K, |" e

9 X( R- a: Q; w/ e* SMODULE_DESCRIPTION("Led platform driver");8 ^, M/ Y, H: J3 ^% H) i3 D8 p
MODULE_AUTHOR("Tronlong");( s( C  N& \2 @. D7 W
MODULE_LICENSE("GPL");1 z' j& J/ g% @0 h- y% G2 z

) j; f- s3 N3 R$ F1 X' Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-15 06:03 , Processed in 0.044164 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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