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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
" b  B, ]3 G, n4 h: Z4 B#include <linux/init.h>( O# Q' ^1 d' m
#include <linux/module.h>; ?6 `% j; K. [& ]
#include <linux/kernel.h>
- L) h9 R1 Z5 M* x0 P#include <linux/types.h>
. A# v! v3 i$ Y" p4 a) Z- Y; u#include <linux/gpio.h>
2 W2 X3 g/ F- h+ K#include <linux/leds.h>2 k6 y8 w4 Q$ A( W+ v; Q
#include <linux/platform_device.h>' b. ^( [- E7 C6 S) o9 y2 {

: w" S( g1 U! M! K7 i0 {  p#include <asm/mach-types.h>3 ~2 g" X+ i. `+ `- m
#include <asm/mach/arch.h>7 H; \- Z, [# H9 Z" d# ^, f& q
#include <mach/da8xx.h>3 h( b/ j* w4 R. n: m
#include <mach/mux.h>( Y( N& l* O3 e  {; s* g

7 j2 P% O3 t% F' f#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)/ D9 d! C9 E& t0 ]' Q
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
& {% h* l  s% l& B#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
- ?& m- l# T# ~: C' H9 o: R9 e8 p#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
5 _% y6 c, B9 G) w5 A
9 p* h0 \: _0 f, Q5 ?/* assign the tl som board LED-GPIOs*/
; x* J- x: T* S" @  J- Ystatic const short da850_evm_tl_user_led_pins[] = {, z) G9 T) W) u" @$ l
        /* These pins are definition at <mach/mux.h> file */
/ H# ]" V5 f9 }) ]+ H        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,$ ^& R1 ~5 l1 C" D1 O4 z
        -1& V, A2 k8 A# F8 f' r" f
};
+ m& c* E* C5 e& p! l" z5 W# ?8 I6 x& U
static struct gpio_led da850_evm_tl_leds[] = {
& D& V# _) r, z: w! Z        {( U8 ^* P6 G. Z
                .active_low = 0,, s0 _5 {7 R& ]6 x  i7 ~
                .gpio = DA850_USER_LED0,- F  ]. J3 R4 ]; K) K6 H
                .name = "user_led0",
3 N1 j9 O$ R4 n                .default_trigger = "default-on",
; u( O4 ~; t1 O! x9 t0 u        },
# W( |( B: L# H7 n, p# j        {
4 ~- p' Q* v5 S* z# k# y; E                .active_low = 0,
' s8 }/ C5 Z1 R/ F4 G                .gpio = DA850_USER_LED1,
, I$ l2 b7 q8 N' y- Y5 ~, M) k                .name = "user_led1",. m4 Q+ q3 P+ A4 ~# l$ n* e
                .default_trigger = "default-on",  e/ a5 Y) x% [% X9 B" |
        },4 c, R/ c  S; n9 a. \
        {
& ^7 o/ x) z0 G( C) ?* o                .active_low = 0,
  k/ j& W! \' C                .gpio = DA850_USER_LED2,
9 R8 T/ s6 o# G' v. b/ h+ b) k                .name = "user_led2",
  b& f0 I6 v% w1 U6 l                .default_trigger = "default-on",
7 _; a- |- R" I9 [: i( o' }! H, A        },
2 K& {$ i+ c5 ^: n        {  j; O% {1 P& h/ X8 z7 p
                .active_low = 0,
4 @: K  o" U  \/ `                .gpio = DA850_USER_LED3,
( k2 v( S+ ^5 ^6 u1 |                .name = "user_led3",8 n& |; \: Z7 U" o; u
                .default_trigger = "default-on",
( J+ x: y/ s; {$ y6 f+ F        },
, R9 E: {- s& ^" L+ H- s6 B: P};( Q% j. U$ X0 t& X6 v. r

& `! V; @; A* ]# K# K2 Mstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
3 S) E0 T( M4 q/ Q, {        .leds = da850_evm_tl_leds,
) K# h* d5 n  }: S7 W4 ?        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
. Y8 S4 K0 J+ y, S};) B* e, ]- Y% E, }1 {

$ m* w7 `4 i/ z& D, |static void led_dev_release(struct device *dev)
! t. V5 B/ ?) k- Q% {* u' E{" P4 b2 |6 y; D9 _
};: e1 }4 h9 @7 B: U
4 Q. c  ]1 P( J, z& q0 P+ s
static struct platform_device da850_evm_tl_leds_device = {6 F: h+ W! M! g" ], M
        .name                = "leds-gpio",
& G0 w7 D5 \: H, ]6 {' i        .id                = 1,
" i9 T: w- {% L+ @8 H: X/ R        .dev = {
; f1 c( \& i. h" Y0 W; \+ Y                .platform_data = &da850_evm_tl_leds_pdata,
  d# Q5 U5 b. c8 M; [                .release = led_dev_release,
" x2 X: v) p" {' Q1 f        }6 _4 M2 v' F2 S8 t
};
- {9 I1 n8 T& k
+ q( G( k& U) \, u( ?' S, Zstatic int __init led_platform_init(void)# e& w# u5 f: N! T& _6 ?
{) q4 E9 S) X! _, S
        int ret;
. m! g6 b' j# z" u! X: e#if 0! J9 w2 n" A' i
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
/ W, z# k+ V5 ~. K, }        if (ret)! {' A5 n4 J* X$ Y0 G
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :") z* A. B; R) K0 q1 Q
                                "%d\n", ret);* e6 J2 }, t& u" X4 ^) b: d: H
#endif
  H" T  U% n2 {: h3 r4 o7 Q        ret = platform_device_register(&da850_evm_tl_leds_device);, e$ ~6 U, Y$ n0 \
        if (ret)- N5 a+ t+ k" T- [$ Q4 x, e
                pr_warning("Could not register som GPIO expander LEDS");; k, D( O8 }$ @5 x3 h
        else8 v( d6 ?! F' T
                printk(KERN_INFO "LED register sucessful!\n");' u: @! o7 b+ C( K
& ]7 v" t$ Y4 {4 r, g6 Q
        return ret;/ {, A2 ?1 T& O8 T! q, \% n& s
}
8 M$ R7 x+ c4 x: P& q- C1 Y
, p/ z5 A  F+ d6 U$ T; Rstatic void __exit led_platform_exit(void); ]% }7 e; o6 N: \
{
5 |$ E7 D/ W* J# p% x7 K        platform_device_unregister(&da850_evm_tl_leds_device);6 d8 c: z0 E8 t& ?7 |
: e: e) `5 k) m; \. X
        printk(KERN_INFO "LED unregister!\n");
6 q7 x" F/ ~* J4 Z$ z6 O}( l9 B# G* S' H# k9 t" E; O
8 ~- x) N  ^9 }9 \2 l2 W
module_init(led_platform_init);
) |8 Y' i9 V( p; U1 G/ ~module_exit(led_platform_exit);: l- {! o/ x: b3 N/ K8 y

7 O, A  _) _7 t. w3 n' ~$ ~MODULE_DESCRIPTION("Led platform driver");) g  q9 W9 u9 n8 D
MODULE_AUTHOR("Tronlong");& }: W" X% O7 x$ @
MODULE_LICENSE("GPL");
* q5 e8 B- o% n, i6 S" J
- O- Y- Q. X0 o3 h' E4 z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-8 12:02 , Processed in 0.036958 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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