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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。% W" t  I5 `2 k+ r2 a. T' j& e8 Z
#include <linux/init.h>' Y( j4 q6 z8 X& I+ a* t
#include <linux/module.h>
9 o: g1 X: p$ i#include <linux/kernel.h>
$ B3 q2 `8 }: K#include <linux/types.h>+ p7 z  {7 Q/ {0 ?- Z
#include <linux/gpio.h>1 \1 Q# K/ E5 }9 h2 d
#include <linux/leds.h>
$ e! u( s' n% C7 Z5 {+ T$ Z- [#include <linux/platform_device.h>
* K9 B& v4 ]5 L( d6 g
; i" c* O, I# q" s" U3 X( ^' c, t#include <asm/mach-types.h>) m  R) U7 n- q* z. X$ O2 U  W8 T! f! a1 q' V
#include <asm/mach/arch.h>6 J8 H, U$ V5 Q' d$ P! }, K* Y& q
#include <mach/da8xx.h>
+ A9 ^9 i  V# L" U2 u$ D#include <mach/mux.h>
8 l+ O$ p$ L$ Q# {$ |4 ?  P9 M  ]: ?8 p
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
1 `% m! q. ^/ B, F' R8 I+ @. @# j#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
2 s9 Y1 r& G; j$ I$ n; \# O/ k; o( i- f#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
9 R- H0 l& j2 c/ E. j$ o#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
$ X; \" A9 w/ _! o0 \1 {
3 n) i4 t% ^% _/* assign the tl som board LED-GPIOs*/
6 ]1 V! t+ g7 _6 _9 u$ ]static const short da850_evm_tl_user_led_pins[] = {
: Z6 k/ C$ \5 {4 s5 S  n        /* These pins are definition at <mach/mux.h> file */, z. N, y0 T# w4 y
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
; p8 h3 \* g) t6 z8 T& {        -1! [" n) S- D& Q* D/ L$ y. P
};/ ^3 H* N7 u, f- O
% J& v% T0 Y6 h' S+ W
static struct gpio_led da850_evm_tl_leds[] = {/ [; K' A% d1 t) x+ W- U5 r
        {
- V" F, Y$ G3 R5 f: y8 Q                .active_low = 0,
) ~- K" L- M4 D3 j4 c, ?1 b2 a                .gpio = DA850_USER_LED0,- u# E( v) z8 x* _3 E# M
                .name = "user_led0",
- i0 S2 |$ B0 d; A1 B% Q. v% g                .default_trigger = "default-on",4 r! x) [7 f# T. x4 _
        },
- M, K" D# W7 d: B: j' ^        {5 Y2 P: d" [% K/ m
                .active_low = 0,  L  r% r. s; A( L+ w
                .gpio = DA850_USER_LED1,
+ v' r9 v: l* i4 I3 c                .name = "user_led1",
5 G9 R  N" U1 S/ v  v5 D                .default_trigger = "default-on",2 s1 v: f) Z9 Y  y! i0 P: O$ R% l8 j+ e
        },) w; b. I& n( M9 z3 y5 L! Z
        {
( T% Z- L2 S7 t* O  r9 a7 L( S4 p                .active_low = 0,
$ ^. ], W6 Q9 Z: \- h                .gpio = DA850_USER_LED2,* U" t, ]( H( @& Y, m
                .name = "user_led2",
( s9 C+ q; X2 A3 _4 r8 N' |                .default_trigger = "default-on",
( Y  B  x5 ?* `8 L! T0 C9 H+ i0 l, X) D        },
$ U9 U. I# j3 ?% g        {
% d9 [+ {7 n8 L; Y5 C                .active_low = 0,5 Y. g/ k! m* F) l5 Y
                .gpio = DA850_USER_LED3,2 y" B: i9 k; S% A1 o* j4 ?% x
                .name = "user_led3",9 Q  m4 S) P. ?! Z  ^1 ^, l
                .default_trigger = "default-on",; _" R) W5 x" l- l
        },
6 \2 z/ L) w1 Y% I$ [};5 R+ _- u# ~$ t+ y
& v9 E/ G2 o4 u+ G1 i
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
( V- C) {4 N6 w        .leds = da850_evm_tl_leds,
# v2 v# o! u1 O        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),/ |  {( y( p6 J8 j4 I* L0 Q
};
; F  k# @+ J, S
8 d3 o! _$ Q$ z- w# zstatic void led_dev_release(struct device *dev); P. u0 }: b0 i2 M0 H* Q
{
  e  s+ }  T3 i3 |+ h: o};% B  H! W6 S/ @1 @! G

$ o4 \8 N- ]+ v) J/ Ustatic struct platform_device da850_evm_tl_leds_device = {& D& Q0 U+ {3 m& S1 V1 Y
        .name                = "leds-gpio",* E8 H% a; P6 w4 w1 t
        .id                = 1,
" H2 E2 N: _# |4 }" w        .dev = {) r  m. m  b. J8 i
                .platform_data = &da850_evm_tl_leds_pdata,8 f: d0 |6 V* J* K& S
                .release = led_dev_release,
9 d: ~8 v" I$ ~) J        }
7 t. |5 O1 l, u8 l; `" a) o  w};
9 D2 Z& \1 F* J3 t3 z
8 l: b# U: N: ^2 s8 ^' @% |static int __init led_platform_init(void)& ^7 Q( ]6 m6 h9 _$ E9 l! A7 {
{( u/ {- r( n4 U4 w
        int ret;5 Q8 e8 g; b: F+ F* H( l: F
#if 0$ s3 w; C! Y2 B+ u9 U; I+ X
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);! B/ n* f- ]9 M( R
        if (ret)
; ?, }8 s. l& G7 Z6 X5 Q                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"; x2 ]# {( H8 V4 E
                                "%d\n", ret);
4 t9 V1 ]) P% ]6 L) {#endif3 i8 |3 z$ p- X! D; g# y
        ret = platform_device_register(&da850_evm_tl_leds_device);. @# _. j3 `( m6 I3 }3 `! y: R" R& r
        if (ret)
/ ?" B) d7 H  r& _                pr_warning("Could not register som GPIO expander LEDS");
; m1 a+ V4 o/ [: n. @4 ?        else. [, W' R& r) B
                printk(KERN_INFO "LED register sucessful!\n");
# c% r. W  E3 d) ?1 I7 j
9 P- X% I* D- z        return ret;
5 @) B3 t( H" P( N5 ]( N6 r9 v}& |& R! B1 B0 `2 @/ h

& ]# K2 M' c; n( ^* C# Kstatic void __exit led_platform_exit(void)
& b' ^5 Q& E5 y, E! P5 k{
" S; z. S) O4 |$ Q+ d        platform_device_unregister(&da850_evm_tl_leds_device);
$ [0 j% Z+ E7 z# a7 Y6 g- S" {) R  ?5 v7 v' B3 @
        printk(KERN_INFO "LED unregister!\n");
- X6 f7 }+ T( Z$ D# o( Y}% o+ x4 k6 s9 B, v1 @  b4 x
9 {) s) A& g4 T& G& l
module_init(led_platform_init);0 v  S  t8 K. b! n/ f* n9 [0 L
module_exit(led_platform_exit);
% {& ~& d5 G- |$ M+ F9 D* q6 B0 S- d$ I
MODULE_DESCRIPTION("Led platform driver");/ h0 A, ]! [" I7 J5 l$ x3 {8 b
MODULE_AUTHOR("Tronlong");6 J+ j9 \, o, `
MODULE_LICENSE("GPL");' \2 {- d; H& F0 u* y" |3 F
- j/ n8 w3 \2 g4 Q# S! i, `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-13 20:05 , Processed in 0.037615 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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