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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
8 K: N5 ^" W' A" [0 ^& Q#include <linux/init.h>
5 c; @% F' j5 o. N3 E#include <linux/module.h>- N. u/ k6 Q) a& t9 r/ x1 K, C
#include <linux/kernel.h>
4 h7 W9 U2 _  C! p2 P& W3 |& U#include <linux/types.h>! ]* G# }" _$ S1 n) d8 o& u
#include <linux/gpio.h>
% d8 q7 [5 `1 S  |1 h#include <linux/leds.h>
4 l) x$ C9 p$ b#include <linux/platform_device.h>
$ m9 Y6 R' |1 {/ {8 h
! E, p4 w! ?8 `2 q3 k#include <asm/mach-types.h>+ h+ R4 w% T- a, X* v6 q7 l% x
#include <asm/mach/arch.h>: i/ i# [, `+ u4 U, v! f& n
#include <mach/da8xx.h>( ^! v. `6 E: u* a* ~$ k: q# i
#include <mach/mux.h>3 k+ u8 _7 ?" \) g" ?1 B

- t; P( @+ l& o#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
; I0 [3 n( @9 _. K; n( E8 ~4 H#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
% j4 z! u8 N; b: {! |, Y#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
" I. ~  ~$ I/ N0 t/ t: H% i#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
/ L; ]: C/ W2 ^( l7 Y9 {* }8 f
! N3 b, H) l7 C1 t2 D: W- z  Q9 B/* assign the tl som board LED-GPIOs*/
$ [' M( J# T- V0 \7 h+ ~3 X& Ystatic const short da850_evm_tl_user_led_pins[] = {0 _- r# K1 u! B2 M0 R
        /* These pins are definition at <mach/mux.h> file */) j4 S; `$ ?+ M7 ], b" B& x
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,! q! W% z! O5 O' P  e7 @
        -1
: n6 V6 v; a- {% J9 o  ^: U8 }0 H};
, g3 T& C+ w! P& f7 v% K. x, C3 j& B# H0 v2 S# x' P" b4 N0 g! x! |
static struct gpio_led da850_evm_tl_leds[] = {
2 z2 M) v) q" M/ v. P+ s        {3 ^' w6 K, r' d! j& {9 g
                .active_low = 0,- T' C$ y, y2 I/ X# ~
                .gpio = DA850_USER_LED0,0 e0 K  V4 [6 L4 v$ S# X
                .name = "user_led0",' a% s, B$ g6 S% `3 x  X
                .default_trigger = "default-on",% N" R" K$ W$ v2 j
        },
7 n; y% ?, s' f8 ]/ q        {8 J5 a- R' ]. |5 u! ~
                .active_low = 0,
% F* F$ }; a2 b5 @# R% N                .gpio = DA850_USER_LED1,
# X* e! J% |1 T% V1 T- K                .name = "user_led1",+ o* O$ G. W+ G1 W: x* C/ L' C  k
                .default_trigger = "default-on",1 F, q# y, }2 W% _% m0 B! ^
        },8 `. t& i* ~9 o2 i+ b2 _4 T  R6 [
        {6 ?% a  `, _7 \/ I7 x0 U5 [
                .active_low = 0,& }6 g  r* Y* @* t" v
                .gpio = DA850_USER_LED2,
$ |* ~2 k. L: I8 G# S" N                .name = "user_led2",4 i" Y3 Z  t! F/ L1 J6 M: L
                .default_trigger = "default-on",
0 v# b: [$ T: x        },
0 ~$ S5 `/ `; N& @9 \% l        {, n9 J( ^& R% q/ ]
                .active_low = 0,1 j7 ~$ i. X- T' S# I# y2 g5 E9 K6 O
                .gpio = DA850_USER_LED3,
' Z3 c. \4 i' h! u7 A  F* [) e! `                .name = "user_led3",
- Q5 @# _# s4 ]* M8 v( C- a* b; F: y                .default_trigger = "default-on",6 O+ q" y- J1 B9 R0 B
        },
. ^' U4 O$ U0 E8 t};
( ~& G- x+ s5 B. `+ O9 s" k' m' Y- a: @1 z5 w8 l
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
1 F, i3 b0 r+ c( R0 w4 _7 g        .leds = da850_evm_tl_leds,' w6 @& p& [6 x( R5 I( e
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),9 @( p! ~$ j0 j! H3 f4 c' z( \) E
};2 a8 W* E5 a" W7 f( ~: h
7 e  F6 \- S( G! ^) _  v) s; x/ v
static void led_dev_release(struct device *dev)
0 `: [: p5 H+ L4 P{: v6 U. x0 n! Y! N) v0 t. U
};
: m: y4 u6 X7 w. ~, F
1 M4 c* T7 J  Z+ ~/ L' j8 qstatic struct platform_device da850_evm_tl_leds_device = {
1 S  S6 I3 Y7 T) i- x* p        .name                = "leds-gpio",$ I5 w" e' O3 ]- `0 i6 U
        .id                = 1,
# Q) v7 K9 M# w+ Q! V- `        .dev = {
! y9 g! Q$ s8 c/ M                .platform_data = &da850_evm_tl_leds_pdata,
( {. _5 D1 e" |. C* S                .release = led_dev_release,: @. z( ]* D$ E- `7 R* N
        }
  x& B2 M. n7 S};
$ R( d+ c( C+ _7 E' f% ~* g/ z0 ^5 t( T7 y9 S. W
static int __init led_platform_init(void), _" ^0 k* [$ h( R3 o" Z8 a
{) a6 `, {0 x3 c
        int ret;2 C4 z- F" x2 e7 q# l
#if 03 D+ ]2 ?( l, Q) M# R
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- n) z5 ~+ [/ z5 N3 T- r        if (ret)* e. z( l8 ~# b$ \" U
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% a* i( ?6 R' J- }* K                                "%d\n", ret);4 _8 a4 q& }+ M% l- k9 \
#endif9 T, z5 F# a6 S, s
        ret = platform_device_register(&da850_evm_tl_leds_device);
1 X! j! f9 p5 ^* x3 k, f" N% u) _        if (ret)% O' }9 _* m( _, o- H) |' H7 F% |
                pr_warning("Could not register som GPIO expander LEDS");
2 k' _7 N+ e6 f        else7 N' n% H7 s- I. t# W* ?
                printk(KERN_INFO "LED register sucessful!\n");
( Q2 ^0 G! }& F3 Z, m
, ]6 E# c: A4 S. n& u! c        return ret;
/ f/ D1 m# j( l/ ^( L}, ], `" D: ]$ w7 r/ _0 e8 G
' j5 q% ?8 n6 M. \2 l8 G
static void __exit led_platform_exit(void)$ D( V1 L- C) z1 V; W" ]
{
/ o- P6 ~/ Q! w0 j        platform_device_unregister(&da850_evm_tl_leds_device);
: w+ \% q( t- k, Y
& P: G* B" z1 @        printk(KERN_INFO "LED unregister!\n");
3 v5 S/ }4 P' J* N# n# j) l1 i}3 L. D. {% ]1 D8 E% ~
4 V6 v6 y3 l8 P5 O' D; c- P& ^
module_init(led_platform_init);
& j" B( `* e/ _module_exit(led_platform_exit);
: f1 @" G: F0 ^& c1 d' |! p6 b
3 l- s9 L/ j& d  O( ], |+ oMODULE_DESCRIPTION("Led platform driver");
$ F+ M  ]) D5 _0 lMODULE_AUTHOR("Tronlong");
# q# h& N, N0 }  mMODULE_LICENSE("GPL");
1 }% g$ Q! l5 X/ _0 @/ m: u2 B
* n: Y2 T  K9 R  q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-20 17:06 , Processed in 0.039294 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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