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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。, W/ [& W) L: s* G# R
#include <linux/init.h>8 d9 d( u3 A" T; M" L( Y9 G' z
#include <linux/module.h>
5 i# v" H2 l4 M" m( O6 L#include <linux/kernel.h>
0 k+ o& [/ H2 t: T' p#include <linux/types.h>
/ m; R9 G. u- k; F. j7 E7 D#include <linux/gpio.h>7 N- n7 w5 d2 T: m! k# u. T5 X# \9 W
#include <linux/leds.h>0 c9 O# A) ]7 q# |- o
#include <linux/platform_device.h>
. r' i; m- N7 G, K1 s9 q( D
$ T! J  s. f% w6 l% f+ H$ H#include <asm/mach-types.h>
/ H' H% F% M1 v2 O- M#include <asm/mach/arch.h>
) y! x0 S2 m2 e#include <mach/da8xx.h>/ i3 b8 N. s% u3 q7 X* ~/ m& s
#include <mach/mux.h>
8 o3 H! s2 P: p) [- e/ C
: i; V; L4 v# L$ S$ W! L  n3 y& E' a! b#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)  d. Z! U- I9 ?' G( Z' T
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)  {9 ?3 S* w7 _2 o2 D* Q9 ^
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
2 H4 E: E# s7 S  ^+ V  a3 }, h#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)$ _6 N: ^& s) w& S! t

! z* U+ x1 |$ i1 e% W0 B( d/* assign the tl som board LED-GPIOs*/5 c* @: {# W# W. Q
static const short da850_evm_tl_user_led_pins[] = {
1 ~% c$ Q3 k0 H3 |. n( K# b% W        /* These pins are definition at <mach/mux.h> file */
1 r3 Z" ~: V* N1 U  y" S' K# ^        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
9 I- _3 ~  [  n" |- n        -1
. m5 k* u( q9 N; M5 h8 h};
1 a+ B( }) k- z& {
1 J+ D9 \+ I, ]! p+ G  vstatic struct gpio_led da850_evm_tl_leds[] = {
! A/ c0 _7 j4 }5 n        {
6 R2 m. Z' `6 L: x4 Z6 r                .active_low = 0,( x3 b( _+ I7 h* G/ S/ b
                .gpio = DA850_USER_LED0,1 e9 m! `6 G& k6 f# u' F
                .name = "user_led0",
$ S  t6 O* ?- C8 P3 X                .default_trigger = "default-on",6 q5 I' N9 L' w% W4 n
        },' Y. b/ Z0 U% A- g
        {
" h, O4 d6 Z: O2 p                .active_low = 0,
' g2 ^7 i) v  \, |                .gpio = DA850_USER_LED1,' E3 A, L0 R* |/ U1 f
                .name = "user_led1",8 |: Y& C$ x) A0 B; }' j. D2 f
                .default_trigger = "default-on",
4 q$ m' k( w$ B: F6 f        },6 B) X  C/ I/ T
        {
: _4 X  w0 s( ]3 ]5 q) |+ @7 \" Y4 h                .active_low = 0," H* o& b5 ]' z( n% ]
                .gpio = DA850_USER_LED2,8 e6 Q, [! e" Q$ K, f( ?. P* _
                .name = "user_led2",7 l5 m, j# }) y& z9 V
                .default_trigger = "default-on",
* N2 S# B$ r5 V0 y' ?$ _% q        },
# [5 e- R- r% P0 v( j/ y        {
, }& q7 y( i& B6 i( b, D                .active_low = 0,
% H; J+ N) U1 G, @7 a                .gpio = DA850_USER_LED3,
( U. @  G4 Q+ u                .name = "user_led3",- g6 N7 B: N% e5 r7 V( w
                .default_trigger = "default-on",* ?$ p% |6 b# K
        },% X6 _) ^3 R9 s; y: z7 k
};. ?9 ^1 A; a- {$ s
8 h! T7 |( X; B  \1 ?( q
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {" U. W4 i: y5 r8 N  z
        .leds = da850_evm_tl_leds,
% [4 [0 v/ G& d9 w        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),/ e! n0 A7 ^( v# `& z
};
5 u1 w- g% [2 l5 t; e/ h) U- G! {& O* a: C8 y/ O: S  t9 z! }
static void led_dev_release(struct device *dev)
, I9 U. F0 G5 I% e2 e5 \( A{( c: d5 K+ L, G1 J: _+ d
};4 }5 n4 ^  X& Q& ]* ?0 b
- S( _. x6 l# w  V, U* D
static struct platform_device da850_evm_tl_leds_device = {
; j$ C/ e9 I- a        .name                = "leds-gpio",$ p1 i. ^, l% a% S
        .id                = 1,, q% U+ z( p8 v4 d* {# p: J' C
        .dev = {
' S; b, B7 G- C* d6 |/ {                .platform_data = &da850_evm_tl_leds_pdata,; C$ [4 c1 y2 w+ o
                .release = led_dev_release,: a# K8 E( L% E; T
        }
/ z' n- [7 z5 d! D/ V1 l; R};
8 ]( Y6 b5 f" x! P, |+ W, k
% h# O' ^: k2 i, i1 `static int __init led_platform_init(void)$ c: L  a0 s& u$ i$ V0 X& Q
{
$ h5 F: Z0 u. j9 C7 e        int ret;
, {8 J" A9 D' f! ^#if 0
9 m+ K5 u; Q. ]9 S; A' r        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);* k/ [; g% }9 a5 G/ x1 Z3 r) k
        if (ret)
6 |% u+ _0 }8 C, E4 S                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"# B7 f, W3 D1 c
                                "%d\n", ret);
! k- u# d* r& c! @+ f: y#endif) c' l4 O" C1 S, v: d# E" k
        ret = platform_device_register(&da850_evm_tl_leds_device);0 ^. `+ P/ I9 g( W) q! A2 x; M
        if (ret)
3 ]: v# T, D9 a                pr_warning("Could not register som GPIO expander LEDS");
4 s5 t: B% M- O! _. a! l        else* s0 T9 K/ l+ P
                printk(KERN_INFO "LED register sucessful!\n");% q$ N% ~( B* a: A0 G* h

$ V# u+ c/ U: a" p        return ret;6 w) h5 U5 X/ Y+ f% D
}
3 m! E4 x8 o; t( ]* P# A
5 i6 Z4 [" A: v- l5 N, A* cstatic void __exit led_platform_exit(void)
8 S6 a) O- s4 k  s; L{8 B9 ?) \/ g2 a: l0 K% f
        platform_device_unregister(&da850_evm_tl_leds_device);' Z+ N, `+ c4 {, x; d  v
2 P( o8 J; x0 C) Z( [" R* {) j
        printk(KERN_INFO "LED unregister!\n");
0 A. g9 W9 {' u& m}; E# s) T4 k1 ]% t, P6 X
' P! o5 V5 p& }. \$ f6 }
module_init(led_platform_init);" e$ p) s6 j, \; ~3 j/ s) b6 O
module_exit(led_platform_exit);' T0 \4 v6 p$ @- N7 f: u

! v- O, R* I5 F" d  wMODULE_DESCRIPTION("Led platform driver");
; g' N- e: V2 _* TMODULE_AUTHOR("Tronlong");
) t6 c* }0 L& t8 B$ ]MODULE_LICENSE("GPL");' b  Q4 ~0 U7 o8 z  ?
) j! G$ D7 c" G
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-6 05:02 , Processed in 0.039606 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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