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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
7 ?5 Z" N% H6 Z" Y7 ^#include <linux/init.h>) j; n$ c6 r8 b
#include <linux/module.h>
7 l9 d2 z" x' @: c, j#include <linux/kernel.h>" ?' r& _3 j9 _
#include <linux/types.h>
$ v: Q1 E$ M. U$ q! P9 w; A#include <linux/gpio.h>% h8 q; W4 i0 C1 T- O
#include <linux/leds.h>
. Q2 y+ j+ M. H; p0 J& `#include <linux/platform_device.h>
: F: ^6 F$ G% a1 P2 H# K1 a- |# R  D1 m# m
#include <asm/mach-types.h>$ I) N9 r0 B! B1 U
#include <asm/mach/arch.h>; b  m" H& q" O
#include <mach/da8xx.h>- C& t1 P' ?; q7 o7 g! Y9 @, m( o
#include <mach/mux.h>
/ h. n" e* ?$ f0 y8 e
6 z. P+ ~5 f" j/ S( G& z#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
0 }" u* _" b+ q#define DA850_USER_LED1        GPIO_TO_PIN(0, 5). q: W: E$ X: ?, o/ u
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
- C/ ^' z9 i# C2 ^#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)7 o8 \% L. o% E

% S; m6 a% _( s% L& g! K6 p5 ~/* assign the tl som board LED-GPIOs*/
+ H2 r& Y$ D4 M8 c! @. Lstatic const short da850_evm_tl_user_led_pins[] = {& W; J! z8 i# x( K. Q) o
        /* These pins are definition at <mach/mux.h> file */7 ^2 L) u4 c; x, n, \* l* ?" n
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,& q/ q7 X7 S, Y' V4 @
        -1+ [; |& c; I8 F  p! e8 R
};
8 B8 ]# B. M; m( K) i: h! n- e
  j# Y  Q  A- M1 o9 l" Gstatic struct gpio_led da850_evm_tl_leds[] = {$ v% @( M& W* X7 h  k' i9 A5 ]
        {5 |, y( ^9 f/ s* `* g% [- \1 Z
                .active_low = 0,
( s, j4 y, D/ T/ K& S9 m                .gpio = DA850_USER_LED0,
. T3 {1 |5 E5 L0 [/ ]3 c+ I% N3 \                .name = "user_led0",9 m- H( Y/ H7 {) W" J9 j' g& k
                .default_trigger = "default-on",. s# y4 i/ x0 E
        }," y( s6 d: l0 y
        {) c, J$ M* V3 s1 P
                .active_low = 0,$ I6 i% l  T+ n5 o$ V6 n* `( _
                .gpio = DA850_USER_LED1,
4 o7 V3 C3 Z$ ~) B( E7 R+ y# t                .name = "user_led1",0 j1 z% l& u1 Q/ K4 o
                .default_trigger = "default-on",2 G4 t0 s8 Z) q/ p/ H4 Y
        },
- I( P" o) @; H! k        {
$ b' n5 U% U3 ]& W' \6 O! w( E                .active_low = 0,
0 P6 N) K4 I$ r* n1 w  Q                .gpio = DA850_USER_LED2,
* W6 H/ J; D/ W; D                .name = "user_led2",
( X# Q& i  K% g$ `+ a5 v& v                .default_trigger = "default-on",
3 l" U2 W+ v% A        },
6 l1 f1 k0 |9 Q* y$ B: y        {
& r. _- v. W* ^4 d( i- I1 |* M                .active_low = 0,
: o, d8 t& X( Q8 m6 h% D                .gpio = DA850_USER_LED3,
: _$ t: |1 n. r* Q' j. j                .name = "user_led3",
' f2 t- F# v1 D4 y! w/ t5 }                .default_trigger = "default-on",
) k# b2 Y  M0 o2 |# d        },
! u4 u! t' b( @# l};( p2 Q9 E0 a& W& y2 r1 L. p
7 c/ g1 l' B9 {. i- K+ h: j: H
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
0 g1 E" K# ~1 ]1 N        .leds = da850_evm_tl_leds,8 X$ s2 T3 b8 K4 o; }
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
0 S& o; _) x# R" a4 z};! S  v% m) @* Z& f  Z

3 V" M2 G5 S! c; ~static void led_dev_release(struct device *dev)9 W* i1 A, W7 K# z
{7 v( d* m7 R& Z/ [9 g
};
5 I- l! r& F  U+ h0 x' r. X
' {, ?1 L- S, G: G1 k! Q4 G. lstatic struct platform_device da850_evm_tl_leds_device = {
1 n: U( o$ y6 D: l: u% g1 ], p        .name                = "leds-gpio",; }9 W  f- ?' r0 S
        .id                = 1,; b. H3 I) n6 O# C& v. p
        .dev = {7 m8 ^8 L. p& \5 i  K  o# U8 S
                .platform_data = &da850_evm_tl_leds_pdata,
7 {( b- ~2 w6 Q6 q& W8 k                .release = led_dev_release,
% _9 T4 i2 X, L% R5 d# v, k        }6 I$ V; w4 b% B+ b" P! U9 d
};
( _- ?" ?: P- b! r' j) i) Z  i& M1 G$ B+ E
static int __init led_platform_init(void)& D* T8 [5 @, }4 D; X
{
4 k8 [% Y) I3 W0 l7 R- y$ w        int ret;+ R' r# k# V; y% V! _7 m' C$ q
#if 0
8 w% B3 w+ ^5 \, T$ W6 v        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
  j+ Q* k  K7 o3 X        if (ret)( z( O, v, \" b! b2 ?
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"3 @" `# D2 q. f: R: Y! ^+ {9 |
                                "%d\n", ret);
2 {: o8 @& n' q# s4 ]( n' Y* \: l#endif! G  t6 H% e( f( o- m
        ret = platform_device_register(&da850_evm_tl_leds_device);
2 ~& h: p  n0 Y; o        if (ret)4 e( }5 x, f: W& i8 q5 X  n" m
                pr_warning("Could not register som GPIO expander LEDS");
# a& t8 I! |) u" q6 f        else; T/ }3 }8 s; n. s# s0 _+ ]
                printk(KERN_INFO "LED register sucessful!\n");
$ n, B7 F5 I& Y9 w& ^
: A1 [- O$ O8 P5 I2 I        return ret;1 L! g! c4 p. o, h* a" O
}9 O, G( p# s$ q' P' p

( q8 w: j7 A7 Q. \  l/ q7 z( Wstatic void __exit led_platform_exit(void)% Q. z3 }$ J& s/ z
{. d; I6 R0 ]) l5 e* K' [2 a3 c7 z
        platform_device_unregister(&da850_evm_tl_leds_device);
7 h. f; O3 Q8 K7 e) o
. \: {  t5 w3 h* V& g& S' D4 O        printk(KERN_INFO "LED unregister!\n");$ r; \5 i5 A. f1 _6 ?0 W( O
}0 J' t/ a& Q- f# J# F

/ L1 K. a5 K, N* ~3 X( umodule_init(led_platform_init);
( j# g5 p) [7 G2 s5 w! \module_exit(led_platform_exit);4 @4 Q3 G+ m0 q! B2 [6 a6 X

& C5 S, {/ r1 F5 ^1 [3 _MODULE_DESCRIPTION("Led platform driver");  E( ^/ [; F7 U7 |0 q
MODULE_AUTHOR("Tronlong");
4 V: @; S1 s1 ]9 U, }MODULE_LICENSE("GPL");
7 i0 K; ^: a( _* H
( [( ]% u; y! c7 T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-9 23:01 , Processed in 0.037320 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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