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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。+ L' v3 L+ N/ t# j2 Z4 f9 r* V6 \
#include <linux/init.h>, r; D  b5 q6 w. F9 ^& Y$ I9 I4 W) F
#include <linux/module.h>
, j6 u- {  _* i#include <linux/kernel.h>: _+ n1 J" m3 `6 ?1 N# [' m+ T
#include <linux/types.h>
/ q' x& F  {, k) F#include <linux/gpio.h>
% B& i$ x! f$ G' _" \#include <linux/leds.h>
/ p1 f- s, R- ^#include <linux/platform_device.h>
" D7 R) [9 b' Z! r2 N! X- t6 A# B9 Y, B+ p9 `. j$ B
#include <asm/mach-types.h>2 N- _$ |! z  m0 i& L2 h
#include <asm/mach/arch.h>
. s5 u) X4 C8 G/ L7 d! o  r% N#include <mach/da8xx.h>
0 n% T1 a$ U3 S- E7 }8 g#include <mach/mux.h># s( y3 _* z+ q+ O% W1 k
# N3 B; ~2 g1 D
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)1 f6 o" z4 C' a. n8 t( P6 W# W+ g( I
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)1 R0 \. t, |- v8 N/ T6 G( w
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
2 g" R; ^' G! V6 d- ?#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)2 H. Z- X; m8 i8 }+ {; `! L9 `
6 V* s0 O  D) Y
/* assign the tl som board LED-GPIOs*/
9 b! ~$ f6 m/ j' t; x* _static const short da850_evm_tl_user_led_pins[] = {7 V4 @$ q& e6 a6 A
        /* These pins are definition at <mach/mux.h> file */; S3 I: F: D8 P/ c) H
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,9 Q, ?+ U6 D9 |3 f: ^
        -1  }# M+ W" m3 @* U, ^
};6 q% y) m* C% @2 A

8 G4 x# S" J5 S, X$ l! H+ D2 Sstatic struct gpio_led da850_evm_tl_leds[] = {+ m# I) Y) R1 P2 h
        {
+ I: s: W2 H! l8 j4 t" {1 Y) z                .active_low = 0,/ ~  a3 o; _1 r/ z7 g
                .gpio = DA850_USER_LED0,5 \+ z7 i2 {" ~- m
                .name = "user_led0",
2 U0 R2 u) C7 {1 H+ r( A( Q# a                .default_trigger = "default-on",
7 Z  M" e7 u- [1 }8 F        },
! ?) j. z/ ~8 k& n1 ]        {) l( R% _% x4 c( S, o
                .active_low = 0,
, p- ^. s' [; d# O4 y3 y                .gpio = DA850_USER_LED1,  K4 e) a1 `# t: m, U, u2 s7 @
                .name = "user_led1",* O! x1 A& Q- }0 r  V" w' H! x# F+ p
                .default_trigger = "default-on",# F- G2 T* z4 i7 N: w
        },) x' R" l- V" s9 E* t5 c2 M
        {
8 U* N2 v1 ^7 {4 v  c( Q                .active_low = 0,
, s! o: Z  G$ G/ X                .gpio = DA850_USER_LED2,2 J/ c! @: |& m0 d8 j) t- ]
                .name = "user_led2",
5 s- J/ x* v2 f+ S  Q  `                .default_trigger = "default-on",
% C. m; }3 G% h        },3 l3 v$ l, L6 S+ m/ l8 o6 I7 x8 b: L
        {  N% R! {7 f% t. ]* m" U3 z$ M& \
                .active_low = 0,/ H3 t! u' G( ]' ~
                .gpio = DA850_USER_LED3,( i" G1 K! d' X% Y3 f, j
                .name = "user_led3",
' H- C: _& T$ P& k: b) F                .default_trigger = "default-on",
! `" N) M4 B  L' k        },! [: |1 f0 B) t- ?
};3 E; T3 I' v% c/ e6 k
, Z  a/ u6 v  m+ U, I
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {4 |& g) E; f# H& a# ]
        .leds = da850_evm_tl_leds,* p; ]- {2 y* T: p1 ^5 n2 C
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
) {& H9 O0 v" T& ?' c};
* T; z0 P8 w# b" _0 U5 e6 d+ g( Y4 C3 }% P# A* W9 k
static void led_dev_release(struct device *dev), b' @9 ~# E. m; T
{
2 x4 P4 @$ T( Y/ y};! _3 P# W2 F: g9 C

2 j& t5 E" p; Q' R& x2 Mstatic struct platform_device da850_evm_tl_leds_device = {" `/ c. y: C5 \: F* O% f
        .name                = "leds-gpio",5 a$ V- |( m- l4 S2 A: n4 z: K
        .id                = 1,
. s2 u6 ~$ a4 f! X# X        .dev = {
. j. I5 U+ v1 ^; m& c: H                .platform_data = &da850_evm_tl_leds_pdata,3 P5 P7 U! S% k+ ]
                .release = led_dev_release,- z2 j1 i4 O3 L# S; o
        }
" q/ `. A/ B' K7 [3 q# y7 h};
  h' l7 K: L7 f4 R, \( _, t+ b: a% V$ |
static int __init led_platform_init(void)0 r' o5 \* Z4 d0 T
{4 j" Y/ Q' h, \/ h# _/ H
        int ret;
0 O0 y5 f$ J0 S, C% i" H, a#if 0
4 |+ F* E4 E* U+ T6 ]        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
  H: @) c1 ]" d% F! @        if (ret)
+ O9 ^/ U  o% z; T                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
* \- M0 z: @( p6 ]/ r                                "%d\n", ret);
& {9 f: a$ ^5 H#endif8 `( _% j/ o8 c4 C/ L6 W
        ret = platform_device_register(&da850_evm_tl_leds_device);
, I" b( n% p  s% F0 [6 f1 E# P        if (ret)6 V% M! `' X. B# S5 j
                pr_warning("Could not register som GPIO expander LEDS");0 W1 S$ \: n& u8 t& l( T
        else1 L6 b% w  n  t& d# @) j5 w
                printk(KERN_INFO "LED register sucessful!\n");
) a- Y4 O9 x1 w' g' _: u5 m% n- b
4 }, V* f9 H& G, P6 c        return ret;
  N2 g- n2 N$ i6 _+ Q) g}
4 S! ~0 e* h9 p9 p. q) c
$ v. d8 Q4 M# m! @- A' T- P/ vstatic void __exit led_platform_exit(void); h2 B6 K) B6 p; N* t5 t. H, B; X
{
- Z- r7 T4 v  r) \- \' n        platform_device_unregister(&da850_evm_tl_leds_device);
! S% J# t2 @# g
- Z, u8 R- I* a3 Z: r3 t$ P        printk(KERN_INFO "LED unregister!\n");! S9 Y9 w; s3 L- S  _' p/ n* @
}5 L2 ?4 f- Z9 o- s+ U
- L6 W/ ^; P& J+ m6 |
module_init(led_platform_init);
, w6 {$ @" ]4 J- M7 amodule_exit(led_platform_exit);
; C' l: v& y2 i5 v# U( T( i4 `" H' N" E9 A
MODULE_DESCRIPTION("Led platform driver");
! W! x# ~& H1 T, W: dMODULE_AUTHOR("Tronlong");
& X& ~# R" l" F# Q: G7 JMODULE_LICENSE("GPL");
. F5 \& V9 a2 H, c+ Y% U  n: ^8 [( g' s7 W6 J3 \- W6 o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-8 03:57 , Processed in 0.040408 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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