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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。/ N2 @) Q# E. \8 a# m# F- V1 L: m9 @
#include <linux/init.h>% ~- y4 F% M& S8 Q$ @
#include <linux/module.h>
% R1 l! h! n4 U0 z* C0 d3 a2 t! Y#include <linux/kernel.h>
1 D' ^, o2 E; w! Q) w, A' e#include <linux/types.h>
% ^: I# [# S# x# f#include <linux/gpio.h>
" l- g" [! `4 s1 [" V0 ]7 D#include <linux/leds.h>
9 B# J9 E& B4 ?# P: E0 V: a7 Q#include <linux/platform_device.h>$ O  w7 ^5 _7 R4 k; W3 L/ v

! A$ Q+ `% \0 x: ^#include <asm/mach-types.h>
8 C1 h) z7 p- D4 i' f#include <asm/mach/arch.h>+ `2 i6 R* F- Y
#include <mach/da8xx.h>
6 i) C3 c3 x& o' E* o$ \; S( [#include <mach/mux.h>
3 U. W1 r' p- ~
1 t/ d7 [( G8 j# R#define DA850_USER_LED0        GPIO_TO_PIN(0, 0): m( N# r  S3 {* o& ~1 E
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 _0 X! g, r4 s#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)2 K- L. x3 H- i7 Y: N4 N% l. B
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
' U* Z. V- C/ ~' {0 w  @6 e9 i1 M$ {% a0 K( X
/* assign the tl som board LED-GPIOs*/
; u1 d1 S! \, I( d% j# ystatic const short da850_evm_tl_user_led_pins[] = {1 D0 z* M0 J# o. Q* n$ l9 S
        /* These pins are definition at <mach/mux.h> file */5 s/ o& j; C: p+ I
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,# ^7 }) v7 P* @; A, t( n; l. n' C: `
        -1$ Z, e1 e7 `* b
};, _6 c6 Y: ~% u1 n6 J) a
3 C' @. }# h, H- ?# g7 @' p
static struct gpio_led da850_evm_tl_leds[] = {- C0 L1 r: F1 [( G! i: J# Z) N
        {
& K8 y; Y8 Y2 M' M3 U! W                .active_low = 0,- u: W( U( U) h; q2 ?' Z
                .gpio = DA850_USER_LED0,
; q# a% R% i2 L3 E+ F: l                .name = "user_led0",
/ u- C5 l$ {8 y4 Z: S                .default_trigger = "default-on",
( C5 \( ^6 r/ Z        },% X% p; E/ D: T# P
        {
0 ^( m& j% I/ v" l                .active_low = 0,
9 m) r! E/ m6 Q; q& T. ?                .gpio = DA850_USER_LED1,0 {- h% o; o4 I$ r
                .name = "user_led1",) u: @( e5 t5 s, S  \( e
                .default_trigger = "default-on",
. Q, g* q  _6 {$ a7 U        },' g% w1 X  ^6 D% e
        {
; R' ~9 i2 m0 O2 @* J  r                .active_low = 0,
" e9 j" B$ [! z, B/ Y, Y                .gpio = DA850_USER_LED2,
  {* N! h* d3 o! ~9 l  ?                .name = "user_led2",
7 d8 G7 E0 z+ F$ f5 E                .default_trigger = "default-on",. `4 s3 q% |% {! g' \
        },
1 ]* O+ q- l9 h) {8 f9 |( q        {( c0 G# p, N6 Z% j& f7 e+ t
                .active_low = 0,
6 b/ Y$ O" E6 d1 ~( g                .gpio = DA850_USER_LED3,: q! t* K1 p8 E, n# z# h
                .name = "user_led3",1 m+ m/ R4 d# P! i4 l4 a" v
                .default_trigger = "default-on",
3 D  B2 @/ @! Q6 z) C        },$ ^0 O' M( s% C6 s/ d0 ?/ g5 L; G1 \
};
% G8 X/ R1 n- _3 k4 d9 H0 P% D' s1 ]% K3 _$ M. P$ t  E3 X
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
( l' q- \$ J4 ?" i, K# V        .leds = da850_evm_tl_leds,
" K% `( X8 ?" S/ W: [9 Z1 x# |2 {        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
8 G3 c2 ~8 e  ~7 U};' G0 Y0 H( J  Y4 W
" k: F9 O$ \$ n
static void led_dev_release(struct device *dev)
" p9 v, z( ^9 Y/ c{9 M( H/ |6 I0 G( ]  v
};& V4 d0 Z3 `% D. ]2 Y

0 L, D$ Z  H, `static struct platform_device da850_evm_tl_leds_device = {
# V' Z3 [; i4 ^. B9 I: c        .name                = "leds-gpio",4 a& o' B( e5 w7 b! X) l' s0 g/ `4 O
        .id                = 1,# k& O0 x+ Z9 \' i. m/ a
        .dev = {
# ~7 ?  y# j0 c: M) S6 `/ B                .platform_data = &da850_evm_tl_leds_pdata,# G. u9 U$ p6 V& h0 U& p
                .release = led_dev_release," q9 Z3 N' O; M) N0 {7 C6 F+ P8 u
        }3 w; @) h5 e, B% F2 W
};: P8 E% k  Z- R! C/ k/ }0 Y) k9 j
. {- |# b4 N0 z6 J! N! t
static int __init led_platform_init(void)2 j: u! k0 _1 i* }
{7 N% Z# v. _( T/ p% x3 j
        int ret;" m- A6 D* @7 b( W6 ]
#if 0& j! l, Q+ g( t. g, [* @
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
5 z" L1 C) s0 l' o/ e9 E0 D        if (ret)# O0 E% z6 @, v8 c- v- _$ d0 Q
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
" d5 {6 t3 P1 V& t/ f                                "%d\n", ret);
) L$ d/ l/ ^- r9 G+ U: Q# ]#endif! M: Z7 v; ?) c" E' F) P1 g
        ret = platform_device_register(&da850_evm_tl_leds_device);& o  T6 E3 g$ _7 N8 m
        if (ret)% I- {9 r* G' U$ G
                pr_warning("Could not register som GPIO expander LEDS");
2 i! ?- q, G* W$ W  s        else! O" M9 H2 r6 k6 ~; C0 c9 K
                printk(KERN_INFO "LED register sucessful!\n");# K" y8 c, c& l0 z$ O- g: M# O
4 \, G( R3 s. }7 f& A
        return ret;2 t# X8 u4 D7 X1 }+ t
}- W% I8 w3 l7 ]+ f8 A5 u5 _" H
1 n' @/ f0 N2 _6 H
static void __exit led_platform_exit(void)5 I! {# W) |& A7 h- e4 W
{/ I+ O$ ]: ^5 ^+ ^6 K5 L6 d
        platform_device_unregister(&da850_evm_tl_leds_device);
9 C% e' B6 U* L7 A2 ]1 v  Z% T
: x' t% B1 }% ^        printk(KERN_INFO "LED unregister!\n");
% ]% @% _4 h$ E1 w% r. j4 o}
* I/ b# k( [2 p: z' B# ~  y+ O# F1 o; q4 y) C
module_init(led_platform_init);
  w$ f, L# g" D0 umodule_exit(led_platform_exit);8 p$ n6 q1 W: h; p$ s1 L( W
+ @* @' u# u3 Z9 G* @) n5 [, m. `7 _
MODULE_DESCRIPTION("Led platform driver");$ N7 L) i* p8 y( Z3 R3 p
MODULE_AUTHOR("Tronlong");
. N- Q% ~# \- B' p" r4 q0 ]MODULE_LICENSE("GPL");1 \: a1 l/ r/ u9 Y
% Z# k; q" r7 M4 U+ n0 x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-26 04:04 , Processed in 0.050574 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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