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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。, w& y9 |1 J8 X
#include <linux/init.h>
( b9 n1 j' v0 P3 j#include <linux/module.h>. `) L: `7 N3 F4 l
#include <linux/kernel.h>7 V3 M2 d2 C9 }" h' V/ F/ \4 K
#include <linux/types.h>
0 v2 Z5 I2 T( ]+ b5 V. |, [* `3 G#include <linux/gpio.h>! t& |7 z9 f' `, S' x
#include <linux/leds.h>  v, @0 F/ k' \2 ~& _7 n+ W/ {
#include <linux/platform_device.h>3 C8 M/ t% \; s/ w2 d
% u6 @; W/ z* G( o4 @3 l/ Q5 r
#include <asm/mach-types.h>
$ \3 ^! _9 k" {9 J# G0 X& R4 D5 z! ?#include <asm/mach/arch.h>9 U6 |3 V9 S* r; j
#include <mach/da8xx.h>
4 c3 g# G" G: D#include <mach/mux.h>
, ~% A7 y% E# |' h4 D9 ^: ~
" J9 Z' C5 M! J  n$ ?, s, z, M( R#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
! ?6 F5 z- j" `) ~, k, B2 d8 T4 B9 q#define DA850_USER_LED1        GPIO_TO_PIN(0, 5), @! i( \7 j$ e* q- `* j
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1), l" s9 r) l, {7 e: {
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)- ]/ m% R1 m8 B% k; ]5 B, N* S1 C: z

8 R1 t5 D2 R3 @! g+ y/ M! m  ]/* assign the tl som board LED-GPIOs*/
7 W% V' }0 t- @static const short da850_evm_tl_user_led_pins[] = {
2 \! e% i+ P7 J) K9 k& `: J        /* These pins are definition at <mach/mux.h> file */5 J0 x: ], g+ y" v  O) z
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
  I; F+ h3 l* I6 s+ i' c8 a        -1
+ \# t" B6 w2 `  m( n: o};
  I" R1 L4 ]3 |5 |2 m7 w* J% q4 p3 \2 e! V( J1 \2 i8 A
static struct gpio_led da850_evm_tl_leds[] = {6 ^% t9 R9 Y6 v. g% b& A* w
        {  ?1 x6 b5 Y# z4 y
                .active_low = 0,1 f( z, E: J1 H4 ^7 T1 f+ O/ f' b, w
                .gpio = DA850_USER_LED0,
( m8 e! z" j0 f  R# p, c, a2 ]                .name = "user_led0",
+ @8 J- T5 q# _* d0 v" D                .default_trigger = "default-on",
9 C- }( p0 `* h+ ]        },) y8 x' Z; ]$ L0 G' c" }0 H
        {
  }2 R+ j7 D  n# T0 H+ l7 e3 }( v$ ^                .active_low = 0,
( a  N, |7 B5 u' s  f" r. F0 b                .gpio = DA850_USER_LED1,
% |* _9 z- [: z                .name = "user_led1",
( A0 r# E: d* `. e: W1 q                .default_trigger = "default-on",3 p) Q1 S; c  H3 [, a9 M
        },
4 P+ N, ^3 y. X6 M        {
. A9 [& F6 n* N6 _% ^                .active_low = 0,, @+ v8 Z0 |4 K0 {: ^
                .gpio = DA850_USER_LED2,0 @7 \: P; Q9 p% h, l
                .name = "user_led2",' S  a* m4 W: Y' W% `
                .default_trigger = "default-on",1 s3 s3 Q1 ^7 p5 \) n  ]* p
        },- ?5 X1 C3 n6 w& g
        {1 X- }8 o8 C; b1 I5 k
                .active_low = 0,3 h' {& c; G# J# w" E  ^: _
                .gpio = DA850_USER_LED3,2 @: V; j7 J8 _
                .name = "user_led3",
3 c  N6 j% n* u" {0 N2 Z                .default_trigger = "default-on",
! r! z& h7 Q; a9 Y( w# o        },# s$ ^6 I+ w. {5 S
};) L0 g# P. E: g& ?" g  e
7 h; D$ I; H  f
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {, w/ H2 S* L: L, T
        .leds = da850_evm_tl_leds,7 r1 G0 u* L0 o+ V1 W* O
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),4 u( w4 ~, U6 B  u2 h: V
};! _7 L) t# n* f4 H5 m- S. G; `

: |4 }: l8 e  B8 W* nstatic void led_dev_release(struct device *dev)2 w8 {. s9 o- d6 y# O
{* c/ H  g+ p( _
};2 x  p3 t6 H7 Z+ x& \% \- ^9 d" ^
! ~9 v6 F; i% q0 ?
static struct platform_device da850_evm_tl_leds_device = {
+ I  ~! `& i- g1 L6 J        .name                = "leds-gpio",
" x, x  J9 }+ |3 g        .id                = 1,; b3 J5 o; T7 Z+ o6 d( a! o  p1 G# Z
        .dev = {7 M0 d6 p. ]$ h% G
                .platform_data = &da850_evm_tl_leds_pdata,2 p3 m- m1 N, f! i) V& @
                .release = led_dev_release," y( @. D# y( L! w
        }
+ b  k5 P- V, M$ u' H};1 H5 c4 B6 P: Z+ ]: ~- M1 o* N% u

6 I/ v' H8 u- ], M1 T& ustatic int __init led_platform_init(void)4 Y2 [  ~+ S4 y1 V& B; G6 o  n# T
{
% E6 M6 z  _. s, [% _- N        int ret;" H+ B$ k! ]& ]+ h6 n7 |- Z
#if 0
) w6 F9 W5 F! h) V# k: J        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
: K# b$ w. b' L' o5 ~  X6 R        if (ret)
+ v; E% V* u" c# D( u; R                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
3 |1 |( a7 M9 J6 T4 G& z; I                                "%d\n", ret);
/ w: L9 D- A) C2 x#endif
' R2 q* r; s( B+ g' T# a        ret = platform_device_register(&da850_evm_tl_leds_device);
# r7 w% t; C0 o& j        if (ret)& {/ R2 t" }0 M6 w
                pr_warning("Could not register som GPIO expander LEDS");6 Z* p2 [" Y8 @& E) k. I
        else
4 c! n3 A, e% C, D5 U+ h, e) j                printk(KERN_INFO "LED register sucessful!\n");& t, |" j) O" J- p- {' X2 x$ t; F
$ P- K9 {% I- b8 O5 N# ^+ g
        return ret;
( e* ]' z+ o4 W' k, N0 W}
& J5 O0 Z! A9 ~( r; `: ]* r) c* X6 P4 S% O( M8 }, m# j0 V3 f  V7 j( h, B
static void __exit led_platform_exit(void)
! m) r  G. \. I! t2 `' ~8 u0 z{# Y* S$ ?; i3 K9 g9 }9 M% _& H4 F
        platform_device_unregister(&da850_evm_tl_leds_device);1 C! n4 P) l: q- M, P

  X3 m# U5 ~3 [: C! f        printk(KERN_INFO "LED unregister!\n");
- |, j0 I; p) ^& u8 e1 d  [}
2 f$ I+ j. r3 A! l& B6 c7 U# n9 t; R  z
module_init(led_platform_init);
# f8 Z; g: o3 H4 g# v+ Mmodule_exit(led_platform_exit);; f; Q1 q% A: h/ |

; Q7 Y9 c: A1 D( R" v% TMODULE_DESCRIPTION("Led platform driver");5 V# F1 ]5 {" C" M5 |; x$ I
MODULE_AUTHOR("Tronlong");
9 m9 O# T! i5 x* p" _" NMODULE_LICENSE("GPL");7 m  n' s6 w: `1 u3 b# W4 [
5 r8 X+ F( k+ ]% d0 j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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