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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。$ P' P! x/ S! T7 m* l. F! Y
#include <linux/init.h>
9 {$ ~; X: b9 v$ d& b; Y#include <linux/module.h>6 k/ e3 R. I1 R' q; Q
#include <linux/kernel.h>$ ^) H6 A, |& ~, l$ M) s
#include <linux/types.h>
) |1 t. h& a% @+ D( i" ~6 r4 h6 w#include <linux/gpio.h>: O% F! q  T- K* T/ w
#include <linux/leds.h>
' q; {8 H- m( H+ k% y. @4 R" L, V#include <linux/platform_device.h>
8 m( p; G  L6 \
9 d3 p5 M8 x) [+ n: p: u8 C* ~#include <asm/mach-types.h>
* M( |& E, p, j$ h9 e7 `#include <asm/mach/arch.h>" y) n- J7 @, |1 W5 h0 Q5 J! M$ t
#include <mach/da8xx.h>
% \. L& s" F7 z#include <mach/mux.h>9 g) A% [, D1 z+ k$ Y

; g2 p& c6 V  M5 U& s0 Q1 [; _% c#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
! P/ r9 X0 ]1 R& Z1 w: j#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
. U$ @, s6 v! Y, F. A+ P- e#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
; n& p+ r6 y3 E#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 z$ {. _" Z0 Q
, X( \9 S. u) Q: Y- ?. T; o# L/* assign the tl som board LED-GPIOs*/
* J* a3 @, ?, Z3 g9 Q+ Q8 p/ ostatic const short da850_evm_tl_user_led_pins[] = {/ l/ E% c: S% d6 j8 D" E: c4 w
        /* These pins are definition at <mach/mux.h> file */8 z2 D5 j0 E3 Q2 k' @9 a8 m7 X
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
& p  x$ \. q  t6 x7 Z' Q# C  _8 ]        -1& _* J3 j0 d6 p& ^
};
1 r0 J; y6 W7 y' g' e4 \% m  h  W' z8 U* f$ k% I% b
static struct gpio_led da850_evm_tl_leds[] = {
0 @' P0 g4 v; A9 Y2 k. {7 f& i* ?; |        {* V& k4 f3 w+ X7 [+ i6 q
                .active_low = 0,# T# t3 g& q/ q! a
                .gpio = DA850_USER_LED0,
- `' B; v; r; \5 J2 M* r3 z0 b                .name = "user_led0",; B9 H. W0 H0 Y! I9 F3 `! O3 k
                .default_trigger = "default-on",
1 Z8 M+ ^- G( R        },
& S- v2 R0 m" ]4 K# v        {
5 M- f9 Y$ B! Q8 k( W# f- c5 i                .active_low = 0,# T+ y' b, A+ ?  y# ]
                .gpio = DA850_USER_LED1,
3 S; q8 [/ Q2 r                .name = "user_led1",
$ L( q+ M, U  M$ B                .default_trigger = "default-on",
9 {  q* p% T: }  u        },
  |0 C+ e  h1 Q6 p% V. ]        {
: ]* H% f( \# O& b  @: m% e                .active_low = 0,0 U% `, Q( w9 U
                .gpio = DA850_USER_LED2,
, {. W4 W+ `% `2 J& ~  d# U                .name = "user_led2",
  Z6 z- Q: ^, Z                .default_trigger = "default-on",7 Y( H* I4 F$ b6 a$ [( i. n0 j
        },/ P  H- A" H  r; H6 e0 I2 m% C
        {# a! p, T+ H) C8 q; z# ~
                .active_low = 0,7 L1 e5 O% _# E6 j0 ^
                .gpio = DA850_USER_LED3,
( w/ E1 C" \- `6 \  H* a                .name = "user_led3",
7 P' j! n; d4 {9 P                .default_trigger = "default-on",
! x5 }! M! _. J" M' v7 j        },
: E0 d# D. L8 W! P7 m& K3 l};/ h% S  I# d- X3 A* m( S- J
8 t# E" o0 n! J7 S: F
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {. X5 j- W1 O% n" p3 c2 o- ~
        .leds = da850_evm_tl_leds,2 \- K% o5 y% p7 F
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),  x9 R3 \% _! L4 o6 Z5 W
};0 b  X* U1 ?6 C1 V

- R7 N9 n. x6 L% R( Cstatic void led_dev_release(struct device *dev)
8 h3 x4 a; z# N. l0 |! K{
6 M! v/ t: C+ {" U& q};
. ~2 V9 I9 S5 O
4 b8 [) A! d0 Z8 s. _3 l* _static struct platform_device da850_evm_tl_leds_device = {
3 r* m+ G0 A. Y: C* F        .name                = "leds-gpio",$ l, v- p- R- ~! j5 n; U
        .id                = 1,' o0 L4 ]- c% I5 W  p/ C
        .dev = {& C& F( K8 [8 ~1 J9 f
                .platform_data = &da850_evm_tl_leds_pdata,9 n: F- r) f# r% [
                .release = led_dev_release,$ @: }8 r& Q8 T3 Q/ }0 {7 |% _0 w# I
        }
! G6 o) H  y( T  K};7 [5 P! G9 m, A1 b) u# {0 P

  e( D8 _' Z5 s' Astatic int __init led_platform_init(void)7 {/ e% W4 U% h/ i5 Y9 y
{4 G: ]" u+ U% M& [+ U+ @2 q
        int ret;/ D  E/ J" [2 k2 F: ]  Q
#if 04 M) p% q1 }& ?1 J& p+ v: S7 a
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);( b' e: I7 a$ J# Z# i
        if (ret). K0 G, c  F; |+ X2 K( o' n
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
7 u8 G# V* k# [2 ]( ]6 K* h/ ?                                "%d\n", ret);
. }3 Y4 f# T% i; b& }; e#endif
6 l1 A+ Z' d) u! a        ret = platform_device_register(&da850_evm_tl_leds_device);- R4 p  r; F" b+ c$ h' i8 G
        if (ret)3 {* q" B' m! i$ {
                pr_warning("Could not register som GPIO expander LEDS");" d- P3 [/ G  A- K  G4 k
        else
1 \( a$ R1 O9 \1 w: w                printk(KERN_INFO "LED register sucessful!\n");
* @, v* e# C: z* k  m2 A
. E8 F/ Z& t1 r8 [8 G' i        return ret;
8 ^: o, T- t) |2 B3 ], h. y- j}  E, C9 n/ X- B/ C
2 `( X) T& `% o, Z! R
static void __exit led_platform_exit(void)
! O- X7 e8 f- k8 v" N8 Y; \9 M{
; g1 W7 k( D; x        platform_device_unregister(&da850_evm_tl_leds_device);; i: u0 a* z5 B  C

+ B+ z1 R. t( }6 I8 }7 o6 j; }9 V5 H        printk(KERN_INFO "LED unregister!\n");
9 N# B8 A  G3 Q$ ]7 V0 Q7 f5 h}' J% `' `% @( X2 ~" U
: L. O/ G' s! ?9 Z0 i1 j  e( @4 f
module_init(led_platform_init);6 {: N' O2 ?7 d6 {" u
module_exit(led_platform_exit);$ h1 a2 G; m. Y

7 h9 D2 w4 W4 {+ v( _MODULE_DESCRIPTION("Led platform driver");3 u  z9 u" q- H( |
MODULE_AUTHOR("Tronlong");. G$ F- }9 w8 w) U; f: Y
MODULE_LICENSE("GPL");+ F5 ]  c( e4 J& m8 l  t6 L2 ^
' p2 w# m# Z* F7 b% A' R" b7 U
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-12 10:08 , Processed in 0.038001 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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