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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。2 p4 C& w8 b4 ]
#include <linux/init.h>
6 H9 F$ ?9 I$ G#include <linux/module.h>
  M$ y% n! A* E: G! @0 |#include <linux/kernel.h>
( B- X$ G% D6 w/ H& B8 \1 e#include <linux/types.h>% G4 Y5 {4 I5 [& \. }; s6 C1 @$ x
#include <linux/gpio.h>
( a+ K1 |+ C3 E, }! F: n9 a#include <linux/leds.h>
- o' y, c( Q+ c- Y/ C#include <linux/platform_device.h>: h2 I6 A# [5 Q( n

3 I* [/ J3 S8 {6 N9 B) f1 e* a#include <asm/mach-types.h>+ `) H! V8 M' o( A
#include <asm/mach/arch.h>
: Z* v- |, [8 S. o- _#include <mach/da8xx.h>
8 l/ S7 V5 |) s' z4 |( }: ]  T#include <mach/mux.h>
- ~( B& Z% ^! P1 a& S; M5 W7 v0 X7 H" z( m
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)6 p: O% ]3 L9 _
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)( L' ~: c) M+ k7 n9 n# n. l0 M
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1); K6 z; r. O/ g# w
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)0 q: g4 H9 G& e- C# _' o
$ q! |6 t+ m. c& y- a1 V  }
/* assign the tl som board LED-GPIOs*/) w, z9 I" J+ R
static const short da850_evm_tl_user_led_pins[] = {
/ \+ J$ {7 e5 N( I; q        /* These pins are definition at <mach/mux.h> file */) l* I# [& I. w& l) Y/ \# r& q
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
7 y# Z/ I) o5 f$ x        -12 U  \3 R! `  X( L0 c
};) z6 f: o) `$ b+ X. E
1 m  h4 \/ ]1 w: ~
static struct gpio_led da850_evm_tl_leds[] = {! ^, o/ a0 y! q: G  k
        {: G9 _& U" ?& g" [) {7 E& O+ T
                .active_low = 0,& t( z- s+ n+ r- S5 U6 A; T
                .gpio = DA850_USER_LED0,( Y& v/ O! h/ A
                .name = "user_led0",
9 v: q' J5 F/ A. p/ Q                .default_trigger = "default-on",
& f6 _0 W8 ~3 A9 l4 G        },; @7 g6 d1 Y* o5 H0 i
        {
/ Q5 `" I7 G# `5 @8 p                .active_low = 0,0 Z- a: P8 |* h: {) f3 B$ F6 r* G
                .gpio = DA850_USER_LED1,
1 ]5 z/ c: F: t. _                .name = "user_led1",- `; q: }3 U% }7 Z5 H
                .default_trigger = "default-on",$ {# I' b7 V) V
        },+ k% t! r, w5 x) q1 E+ H2 Z- ^6 P- t
        {
9 Y7 P! L8 a7 U& \4 w/ j( s                .active_low = 0,) v/ j+ ]" T5 V, W) N
                .gpio = DA850_USER_LED2,( u4 z9 ^0 i$ Q# j* r! o7 X  ^
                .name = "user_led2",
' M4 A: \1 ?% E8 {                .default_trigger = "default-on",
& o4 i! L+ |/ ?9 r        },; H* n+ m0 T  T  m: t
        {
" m, }/ z4 }" L( s6 h/ N& [7 s' u                .active_low = 0,5 c  q8 k+ e3 L
                .gpio = DA850_USER_LED3,2 l; x  ^3 ]% t3 h) m
                .name = "user_led3",
) _) o! X7 g) V# y                .default_trigger = "default-on",; X+ U0 {# {) M( \4 L
        },
7 z, ^& {& T3 h, P' {};( x6 l, ?2 C- m6 @0 B$ N: ?

" T( I1 O, J+ o! H( |static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
2 S+ v& \, X$ d+ t7 ?        .leds = da850_evm_tl_leds,
" B0 n9 k% N: n, {" I        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
& N+ O1 D/ Y, t( V. M  w2 L};
% l4 T$ z) }1 Y) L* Y
, q) c) T- ?; n% x4 d6 @/ Hstatic void led_dev_release(struct device *dev)
) W8 y( y# O6 Q% O{$ W3 [; w; S( w* H
};# y1 @( _2 l% [

: v6 k& [8 c/ a2 g. Vstatic struct platform_device da850_evm_tl_leds_device = {
/ ]& u$ h+ m/ q) S. A1 y! d        .name                = "leds-gpio",3 @8 ~7 A/ n  F- o1 f
        .id                = 1,
4 s+ j6 B4 y" P        .dev = {9 ~1 h9 l5 ]3 S! e) A0 ]
                .platform_data = &da850_evm_tl_leds_pdata,) K$ g6 w+ L& p4 P' C8 I% p2 O
                .release = led_dev_release,
$ @% R- |  e3 M$ E' W( H' d        }
1 ~4 k7 Y4 H2 U8 C2 U  Y0 ]};
& @6 I, c4 z: q0 |3 n: a3 a+ r, x2 [. D4 j: Q# m0 |
static int __init led_platform_init(void), b4 `$ M( D, O7 j% `& p3 z
{
) h1 q0 w# X) R+ f! [* v        int ret;
' v- I( J1 y" M4 X2 T/ S; N#if 0* N( |$ r" X# w" L6 p/ I' f
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);8 ?7 `4 M: y9 d3 p. v. |
        if (ret)
2 O" r; d7 x! S7 X6 L. S9 t. f                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% p5 r7 G: f1 p  N3 x# a( r                                "%d\n", ret);
& R- D: L$ ]  g& y#endif! l( l4 R* G/ H( J# `0 i& b
        ret = platform_device_register(&da850_evm_tl_leds_device);0 n- f4 P, w' U  M" @
        if (ret)
  d, [, q% n, t3 V9 R% ?                pr_warning("Could not register som GPIO expander LEDS");  z5 Q- q8 V' r3 D) n( Q) c5 [' l5 u
        else
0 l4 P2 p% N8 \4 S. A# K                printk(KERN_INFO "LED register sucessful!\n");( ]3 L  ^7 A! _! |) J
! a4 S4 a, b5 `
        return ret;3 U/ z4 ?" x( {, Z4 T3 m' s
}
, w4 n) G+ H0 ^/ @7 ~: p1 E& {
+ [/ i9 i- h( n4 _static void __exit led_platform_exit(void)
' y4 q) S. o. \# Q  x! k7 u{
6 S6 |; L4 s& j# Y( @: }        platform_device_unregister(&da850_evm_tl_leds_device);
% z) {( d- E8 N; ~* [' c$ @. E' d" b3 ?' ^# i6 j5 j
        printk(KERN_INFO "LED unregister!\n");6 r  T. [. R# t9 F9 d- J
}) [# {4 y2 R5 L1 R' F" s' `
( q% Y5 X, G2 ]" a. q4 K9 N
module_init(led_platform_init);, e, Y& d$ Q7 C
module_exit(led_platform_exit);
" z! `0 U$ R  _  i/ ?. h/ p) M- {$ C% e7 `8 P
MODULE_DESCRIPTION("Led platform driver");
" ]& K2 m2 M0 r7 t+ e! ~MODULE_AUTHOR("Tronlong");: i- }5 e) e0 L& f$ @
MODULE_LICENSE("GPL");
3 D- Z2 b( P5 N6 B' F
2 ?  S7 G7 C/ w- F6 k9 s
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-17 15:09 , Processed in 0.039159 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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