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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
9 W" ?, ?, w4 F. J#include <linux/init.h>
( Z2 h8 S/ l  i$ i8 U7 _& C: j#include <linux/module.h>
1 u' R2 X1 X) c/ I1 Z1 L#include <linux/kernel.h>
% O& X/ [1 Q1 M& [0 k5 H#include <linux/types.h>
" ~2 F- D. K% Y#include <linux/gpio.h>
7 f8 _% g9 T' y#include <linux/leds.h>
1 f6 D% Z! T. v- w3 a1 w/ y#include <linux/platform_device.h>/ g- I1 b$ d6 w0 u

+ W+ b: z8 I0 W% L! X#include <asm/mach-types.h>, |0 V! b  q) N  l
#include <asm/mach/arch.h>
% F0 x& l! r! v! }+ {/ r2 F#include <mach/da8xx.h>
" a% z; E; x2 K9 g1 \#include <mach/mux.h>! J& U5 X( `0 Z# R# o, k* b$ u7 P

& [; c! H" u* p+ X" r5 ^#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
& n& E+ a6 V7 m6 o% ^1 o#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)2 u. h) A1 v$ v- J
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
& H, \& O4 Q1 {) a  A! }9 u#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)/ I& {; C+ a2 j' l* P$ `

3 c, a9 |, N" @( ?, Q. e! }/* assign the tl som board LED-GPIOs*/
$ Q% ]; \' n  A9 ?static const short da850_evm_tl_user_led_pins[] = {* q+ z( d& ]! D1 J( o
        /* These pins are definition at <mach/mux.h> file */! B+ S, P$ `' n
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
9 u( H8 Z" \" Q        -1
; p8 V8 `  l1 ?  r4 V) t" k};2 {6 t' U) n5 O, [% w

! s" v- C9 y9 s" t$ s( Pstatic struct gpio_led da850_evm_tl_leds[] = {
! w1 s" C; b" q0 E        {
, x8 G1 c( ]6 `" ?2 O                .active_low = 0,. a& O+ y( M. G* w
                .gpio = DA850_USER_LED0,
* ^1 m1 U* f# m  R7 o5 r' _: {                .name = "user_led0",
# {3 G" ~( B5 F& {* y  |                .default_trigger = "default-on",/ v0 V* J) v% W; K
        },
8 d8 F- Z) I2 U& h+ ?        {* ~# I; G7 [$ C5 u, D3 }
                .active_low = 0,0 q( X, j. Y/ s, }/ `
                .gpio = DA850_USER_LED1,
6 I0 B3 A, ~) X: I0 ]) |                .name = "user_led1",' S/ T. L  }* f8 D  E
                .default_trigger = "default-on",1 o+ `* R* l: s1 s9 m
        },
) J/ a# N0 |) U6 h8 Q        {
" X- F$ B. w" `% O$ D/ u  K                .active_low = 0,
& _) U5 x: U: h                .gpio = DA850_USER_LED2,' y0 _+ t5 {5 O
                .name = "user_led2",
# S4 m7 p  M" {. ?7 @! V                .default_trigger = "default-on",
, T4 Z% |! q  T, m8 f- ?        },. W+ f- d5 S' {- S
        {
% m9 D5 N) s* b                .active_low = 0,5 Y$ `! T/ C# b: K) h5 `
                .gpio = DA850_USER_LED3,
( j7 R0 _% Y* z5 h/ t. @6 c                .name = "user_led3",: S% U) m3 J+ e& C( d
                .default_trigger = "default-on",1 `0 C& Z" z' r# `9 j
        },6 y6 a6 E  \' W$ h0 }) Y8 p8 c: _
};
) F7 ^/ z) k) l5 B9 k& }0 i
. H% ~  p) w0 F  Astatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {9 i% S4 i5 Z# W! O$ T3 e0 Y
        .leds = da850_evm_tl_leds,7 z3 W8 x% X1 A" j8 \5 I9 Y1 S5 Z
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
  Q; r( Q4 {: `};! P3 G) i& c# d8 p

: b- K6 I8 O3 @% e# Bstatic void led_dev_release(struct device *dev)* a* D  v: Q, \4 b) y! b. i
{
8 }4 t; a- I1 }0 c};
7 u# y" F5 ~# t5 J! T- V# i- C4 F
# M% w; x( V" q1 Vstatic struct platform_device da850_evm_tl_leds_device = {' V; G1 v" x/ A2 J! z
        .name                = "leds-gpio",
* P; S8 _( K, L4 R5 a        .id                = 1,
, q$ |  ]+ g) a( p% e  J        .dev = {% {% F/ |8 c' l2 @/ M; N9 x5 W
                .platform_data = &da850_evm_tl_leds_pdata,' J( o" X2 H  M+ `% l% b
                .release = led_dev_release,
. M+ Z! r  M. V% n- ^        }
5 A8 r1 o! V4 U; I; @$ j};
9 b3 {1 ^$ z9 L; [% r7 _0 i, s" b/ k8 @  y' X4 o
static int __init led_platform_init(void)
2 A# ^0 u' m. b: u+ |( k; E0 A- m{
) `+ j  L$ Q0 P' {- m* S        int ret;9 {: V6 R  q" r1 ~9 J' J5 s# B
#if 04 M, W" Z, ]3 `( r8 Z- R: V/ C
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
# y2 ^8 [" V7 ]& f        if (ret)( r+ F& N0 O) U! f" q8 ]  t
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"6 i6 x2 Z$ M& C4 q, u5 F5 p
                                "%d\n", ret);
' v: s- n$ x) y$ A#endif
; ^1 i) ~0 u% B8 r' o* B        ret = platform_device_register(&da850_evm_tl_leds_device);
1 j( ]* _# p  y8 P/ \. p        if (ret)
9 T; C0 W) H7 H: A) F                pr_warning("Could not register som GPIO expander LEDS");3 P0 _) o9 W  D1 j9 q' V/ O
        else
+ E: @9 c) b9 ]% U6 H                printk(KERN_INFO "LED register sucessful!\n");
6 U1 P0 p3 Z* ?% p3 n# G
- O8 B) x! P, j+ r4 R0 J        return ret;) Q! ^8 J* @- j# `
}  L& R1 n8 r+ d9 P" S
" a- v# f5 Q  K
static void __exit led_platform_exit(void)* J# |+ }: [. {0 G
{
  s3 Q( Q& q; I. `% H. q* _        platform_device_unregister(&da850_evm_tl_leds_device);4 B  z' z8 a( S! J- X' n; F
* u# `& Q7 N& t4 l: l: S2 S- G0 v
        printk(KERN_INFO "LED unregister!\n");
9 ]9 {. o0 S4 P}
7 L# k( z  A) W: d4 z% C/ b
: e- k5 c+ s7 p/ @6 l: G6 }module_init(led_platform_init);0 \. I! @' p% g' [+ M
module_exit(led_platform_exit);
5 @3 M+ k  Z1 h3 t, I  j
9 Z9 ^( E/ z$ gMODULE_DESCRIPTION("Led platform driver");
; r7 n) p2 W3 d' s+ s3 EMODULE_AUTHOR("Tronlong");
7 `0 u9 w3 ~( h* p7 [. O& pMODULE_LICENSE("GPL");9 X' w- W! t1 P# _+ Q, X4 I
4 a4 T! G& f+ i0 i  V$ b& E
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-27 11:31 , Processed in 0.037281 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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