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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。( C2 f4 Y* H! o6 @7 W2 n8 A8 e
#include <linux/init.h>* F- @  v: M( D; Q+ W/ [
#include <linux/module.h>
( a' U. O8 i& u$ Q/ O5 I4 K0 f#include <linux/kernel.h>
8 q# n+ A( R/ n6 [7 p#include <linux/types.h>4 n( c! a) [, {9 G) S) E
#include <linux/gpio.h>
+ W8 y+ y7 c; F& P#include <linux/leds.h>" X4 I  m/ ]# v* M5 @$ r. F
#include <linux/platform_device.h>; a0 b: W7 @0 l" R* {& j: x$ s
  P5 m3 p! x$ H
#include <asm/mach-types.h>% N1 U! g4 Y# \8 S& C# @) l/ ]. C
#include <asm/mach/arch.h>
, A# ?1 v* i9 z3 a# i6 j7 [#include <mach/da8xx.h>
4 {" g- F  a1 x, x. }) y#include <mach/mux.h>
, C4 m/ S; g0 v' ]2 R$ s- N  f- X- G4 W( A
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)2 o2 w% b0 }8 ?
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5). s2 m9 w; b+ v
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
2 k8 o) _2 g/ a- d7 e#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)8 V4 d3 k; }9 N- c# `

* u) F1 S0 t  X/* assign the tl som board LED-GPIOs*/2 v; u2 a6 Q% j/ Z) |8 I( f
static const short da850_evm_tl_user_led_pins[] = {
! M3 l+ }3 p: n+ }9 b( p! a: Z        /* These pins are definition at <mach/mux.h> file */4 D; U7 A9 @$ E0 E, ]7 G- ~$ [
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,$ p8 a) t& U3 }* v7 W4 o
        -1
2 g1 b+ n- I( s' W8 M* K};
2 O) r' \+ e, u" d
" F5 _2 Y# r' N) S5 }$ ]$ B7 Xstatic struct gpio_led da850_evm_tl_leds[] = {4 G( j$ r3 f; V) b  H
        {* X, T9 k. }6 p/ s
                .active_low = 0,3 B4 n; x8 R* p' d' t! p' n% t
                .gpio = DA850_USER_LED0,! H' R5 G! l) R2 B# u9 m. n5 g' d
                .name = "user_led0",
) x! p+ w7 A  q1 U: x; c                .default_trigger = "default-on",
9 q& i( o8 Y4 v9 f! O$ z. {( Q7 F        },: }5 t+ U6 ?/ z& X) z* M! @' w* K; `
        {
  k3 R7 E1 f/ z% [8 g8 g% v4 e. i                .active_low = 0,
2 O( S4 Q3 u/ P1 b& V2 g9 I                .gpio = DA850_USER_LED1,4 o% X8 g" |! l- ~0 R
                .name = "user_led1",
+ q( c; i0 I, I, M1 e; B                .default_trigger = "default-on",
- O8 [* }1 P8 S6 `9 f        },7 n0 {) m) t& ?' V, Z, L
        {
+ X$ P: s0 w. ]* w                .active_low = 0,
$ d! U' O/ l( j, l( H: z+ G) C                .gpio = DA850_USER_LED2,
1 ?; o! g6 |! H! _                .name = "user_led2",
8 @+ u5 c& C( s9 W8 r' Y                .default_trigger = "default-on",
) s- e; A2 x* Y4 T" E        },7 g$ v6 W! Q7 @; l9 J- {: D$ n
        {+ _0 _0 G0 R* t/ h% M  X
                .active_low = 0,
- W- D' f" J; k9 [, \5 d                .gpio = DA850_USER_LED3,
# {, d1 e, C4 k( R, k# m3 M* f                .name = "user_led3",' j+ Y) P3 P7 j6 K# ]
                .default_trigger = "default-on",1 H! J2 i/ C! e4 X
        }," {% ~, U8 L/ E7 Q8 y! @# J% u' ~
};
: _; F* g  h9 h8 P! M3 t; z/ b1 f9 C# i
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
9 x# `7 K# H) `* X        .leds = da850_evm_tl_leds,0 P/ [' x4 i$ l/ h  }# n9 y( F9 j5 u
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
& h# D$ M) C! H- w};% A8 z2 M2 \8 ^3 Y" Q7 Y

8 v* t, [+ {1 X0 V& ?' y, {& Astatic void led_dev_release(struct device *dev)2 e$ u+ p/ b2 H5 o; V0 W* @+ A
{& I2 |, K% r8 g6 Z+ D
};
. M" r! s6 v5 m
- k/ \- |" ~$ tstatic struct platform_device da850_evm_tl_leds_device = {
/ J5 G1 j6 [: e        .name                = "leds-gpio",  `! W3 n: H) I, Q9 V4 o9 f+ D6 q
        .id                = 1,& D0 G' f- e1 `- `. k
        .dev = {
% d$ {7 a0 n$ T% L) r  o1 M) n                .platform_data = &da850_evm_tl_leds_pdata,1 ^0 I& j' e0 Z  H' Q
                .release = led_dev_release,9 u" W, S) W5 }) E6 T* D
        }
6 Z5 T( c; {" j- @0 d' g  I};
% ~8 F; G* E9 ^+ t/ j! h9 Q# E6 U7 W, _: k) ]- `
static int __init led_platform_init(void)
8 u# I4 _7 n$ |& N{' E8 ^2 ~8 o/ N( A5 D, S; |
        int ret;: ~$ V( y' z6 Q  y
#if 0
2 I# H& J! O5 A! _        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);" K( ]4 L6 O: N& a
        if (ret)2 R) U; R2 f& N# a- A! r! d/ [
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"/ \. J: L7 O6 f/ w
                                "%d\n", ret);$ h6 Y- F, r, q' ]7 y- d
#endif
7 e0 U" A  f) E) I9 W1 x: x        ret = platform_device_register(&da850_evm_tl_leds_device);
  Q" A0 j6 ?; C3 e        if (ret), N, T+ V, ]2 x" o
                pr_warning("Could not register som GPIO expander LEDS");
7 Q) y# `4 B" M3 N& Z. ~( {  X7 _( n        else
% J& {# c# t& @                printk(KERN_INFO "LED register sucessful!\n");4 O! z" b& F$ _  r( t  \

. S. V5 X9 j# c  Y9 _" Q2 O        return ret;5 V4 ?# @- g1 q( x4 Z0 C7 U
}
4 @$ }7 m7 x& L# [% |( f- y. [7 d$ s6 c
static void __exit led_platform_exit(void)& M' h1 B" h; q+ F& R
{2 U' O, n+ l# Y1 o8 k  T
        platform_device_unregister(&da850_evm_tl_leds_device);
& X6 l3 [. p1 ?2 O( C1 G; u$ Q4 \& s; A( C1 W! J! C3 m5 Q
        printk(KERN_INFO "LED unregister!\n");2 d  T3 m/ Z, T7 m* b; e8 E4 O9 P0 k6 w
}1 @4 U/ N. j5 x# V! U& J( i8 N7 S

* p" Z$ ^3 K4 C' X$ e4 o! bmodule_init(led_platform_init);
- S% J. w) r3 g) }+ ^' [& Pmodule_exit(led_platform_exit);: c2 z3 {8 I! y7 E* q

  l3 `9 k$ j$ I, z. X% f4 XMODULE_DESCRIPTION("Led platform driver");* N: ^1 \$ u( b0 ~
MODULE_AUTHOR("Tronlong");
7 Z% A4 v! f/ uMODULE_LICENSE("GPL");- E) N, w3 a# Z2 V' p3 N0 X; }
8 K! ?0 g( Y2 z5 `# @) R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-26 06:41 , Processed in 0.040729 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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