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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。1 M' ~, A7 U4 w) y3 Q7 D, k
#include <linux/init.h>
0 N: h0 z% A# j) j#include <linux/module.h>
7 S# G- H+ o' j8 X#include <linux/kernel.h>
2 p1 v( d2 L3 _3 B: f5 F( N* M) Q, ?- o#include <linux/types.h>/ b5 v2 p4 q" p8 x! @
#include <linux/gpio.h># K. c( ?! W9 d8 ~
#include <linux/leds.h>& u$ }7 M! l+ s) n  O& u
#include <linux/platform_device.h>- r: w0 P; h3 S" a+ E3 w
0 R  h0 }. q  `7 k% H% J
#include <asm/mach-types.h>
: h1 i4 m& l& E) h( I#include <asm/mach/arch.h>
  n- d) z# r; C6 `5 ?% o#include <mach/da8xx.h>
1 f  k( b& Y8 S$ _+ I/ G' Y#include <mach/mux.h>
( l5 X' A+ x" l
! L4 H* R- G+ I9 J$ y0 L. u( q4 g#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)+ b9 z4 w/ c. `% I; Q4 {
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)/ u3 t# s) c+ c& o
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)' N+ |! U7 s9 V: G" D
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)4 v' {7 U2 q+ H/ b' i  s. I: `
% M% s/ A3 A! g' C1 ]$ R" I9 {- \+ i
/* assign the tl som board LED-GPIOs*/7 U: h6 W9 h' Q: U- U% D8 M2 Y5 I5 g
static const short da850_evm_tl_user_led_pins[] = {
6 X" ?" o. x6 ~1 S        /* These pins are definition at <mach/mux.h> file */
/ o1 Y' j5 A. x. @7 Z        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,- Y: ]3 e' j6 u8 O8 p* d" p0 x
        -1
7 A! ~" `2 _* U! r( D& O0 l0 a};4 [7 I9 T- b: z' U/ G
4 C4 A* c9 P/ ^6 x5 q" M1 m' z4 ?
static struct gpio_led da850_evm_tl_leds[] = {
+ N/ u7 {5 ^- J- n+ z' |6 @        {$ W* ?/ ?9 x% J  e0 Y
                .active_low = 0,
! y1 u. e0 G: k! r( W, |                .gpio = DA850_USER_LED0,7 M) J2 L1 v( u5 e) B2 A7 }; o4 @1 X
                .name = "user_led0",
& \: F; t# B" J( o  A3 I- U                .default_trigger = "default-on",
; V) Q* |5 ^4 c+ L# m        },
* l( I- I8 x/ }* O; J3 F        {* A6 h# ^5 M: i/ S
                .active_low = 0,
. w6 {3 T. e' ?& H  f2 F( f                .gpio = DA850_USER_LED1,
  Q/ [; Y# m4 g/ z% ]; ~                .name = "user_led1"," D9 c* V) s) T
                .default_trigger = "default-on",
1 [$ E5 k8 n* g        },9 t3 A/ C+ D. w- y, |9 r
        {; H3 i. N  U/ ^
                .active_low = 0,9 i" y0 x; J7 O- N/ m
                .gpio = DA850_USER_LED2,
! V' @# p; R& i; I                .name = "user_led2",
- D( U) r3 J4 _$ V" o" y                .default_trigger = "default-on",! D9 O1 {- I! s6 s( b
        }," M2 @3 T7 U7 O* ]% r  z
        {
5 H; n2 x, `' y% j/ X                .active_low = 0,6 }1 q3 a2 _  d; k# a8 R
                .gpio = DA850_USER_LED3,
# m7 ]8 r1 S! N; o% u$ L                .name = "user_led3",* V# W, I4 H5 N* v! w
                .default_trigger = "default-on",1 e6 O" b% G) q3 n$ T* p4 h
        },% K/ n# V2 f# U. a/ W4 U
};
* z. ~4 B' A/ H
' r& S9 F3 P2 Y* s( {static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {  V4 L7 ], @. h1 D  Y* Z
        .leds = da850_evm_tl_leds,
3 N$ I4 y; O* `        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),6 P! d4 z/ T: g! X
};
+ p2 D7 t9 _4 V1 ?
9 D3 }+ e3 e" g6 J7 }2 G% A7 q& C/ [- e" ystatic void led_dev_release(struct device *dev)1 z+ k  v/ C" l  J$ M9 o
{& F5 e+ G9 p6 A
};
# l+ J) Q( D, k" P: n- H6 v! l
% x- u, [* y& m8 y# kstatic struct platform_device da850_evm_tl_leds_device = {
; ?; C! }4 O( ~1 r% a# u5 Y        .name                = "leds-gpio",
1 p# {+ g0 F4 s8 f. T        .id                = 1,  H9 \, `. `* F5 x3 Y6 _7 J! F
        .dev = {
9 d( l& a5 W, }( {! t6 a  K                .platform_data = &da850_evm_tl_leds_pdata,3 N# o4 F  M/ J  o: y; u/ J) ?% K
                .release = led_dev_release,
7 `' J# [& b1 e        }
' A' L3 i; [. J+ |& H8 d6 Y};9 w+ `( k7 g* d* d+ H* w
, e: Z0 M9 q5 l  l7 e
static int __init led_platform_init(void)
0 |9 T% w& ]' F3 U1 t2 n{3 x9 n% M1 N( E3 u
        int ret;
$ o2 M9 T" Y5 Y/ d/ b#if 0& j0 q( K3 M( q3 e$ M* G
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);4 y0 g/ i9 b( l8 Q% I* k
        if (ret)
5 E0 }: f( Q5 C, c- \. O9 p( ^5 e                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"7 K7 V! n2 f) h! K) q& C1 u
                                "%d\n", ret);) n( U7 P9 W2 {; H) I" K
#endif. a. k9 N+ d- |1 ?( s
        ret = platform_device_register(&da850_evm_tl_leds_device);
+ F* j4 X/ z4 z* _, c5 ^" Y  ?        if (ret)1 h9 W* H/ t. K& g' V& p1 c2 O- l
                pr_warning("Could not register som GPIO expander LEDS");
, A  Q- Y( n8 Q7 W6 I        else
# j9 z" P* {( S+ A) P% b" s2 |                printk(KERN_INFO "LED register sucessful!\n");3 z; a6 ], p0 E6 S0 D4 w

' O% a7 ]* D7 Q+ V        return ret;9 d2 U0 l3 v; B) w- I" J3 f
}/ T' x0 c; P7 O- g  s' j
: Z! {5 P2 B+ C# ~& X
static void __exit led_platform_exit(void)
6 Q$ ^  H1 V4 A3 k9 W' R- f6 W{
* t0 x6 N' P# V. z9 S. w        platform_device_unregister(&da850_evm_tl_leds_device);
9 a1 z6 X3 i6 r3 D7 W
. L% V- w% G6 D0 v. ]- Q' L        printk(KERN_INFO "LED unregister!\n");
5 T7 Q7 `& m7 z1 x}2 f! e; q% I4 T

( ?. z$ J/ N7 u4 Gmodule_init(led_platform_init);& ]4 o3 F8 _% n; @
module_exit(led_platform_exit);
0 `) s* N. V: P" q
; k; a% A1 a, |1 DMODULE_DESCRIPTION("Led platform driver");+ B3 A/ F4 w9 [* W" m% R* ^0 }
MODULE_AUTHOR("Tronlong");
" j: v0 Q: L( r' RMODULE_LICENSE("GPL");
1 p: y- Q1 m+ x$ |, S1 f1 e$ r! M% E, ~( [/ c, E3 L7 ~" Q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-11 23:24 , Processed in 0.040998 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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