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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
! k+ W% E3 T- w! H7 o7 G9 ^#include <linux/init.h>
# Q) L2 D: ^* l8 e- C& u#include <linux/module.h>5 p1 |/ [5 `+ l3 M, Q, O* w! Q
#include <linux/kernel.h>
: D/ B# [. o- g#include <linux/types.h>
5 @7 J4 z: {0 ?# Q% v8 {, J' ?#include <linux/gpio.h>8 Q% Y* T' I8 V4 f9 d% Y( @
#include <linux/leds.h>- m6 T0 H$ }3 y9 D4 A* j
#include <linux/platform_device.h>
8 v4 Q/ p, n: ]) p1 T& o8 P( `
#include <asm/mach-types.h>/ H$ z7 ^6 E9 e4 Y
#include <asm/mach/arch.h>3 v1 m! W  x- }' o4 g5 s
#include <mach/da8xx.h>: u0 y3 B, j: q9 a) M0 w
#include <mach/mux.h>3 d- f0 ~3 a( l4 o( d3 m+ e- V

' z! f8 q" \7 r2 w4 @#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)  Y0 q2 w6 L2 P7 s. N6 N
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5), N8 c0 N; m. D1 O
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
- r  w1 r* o3 O#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
- z3 ^6 K; o5 Q
( A: Q. [" j; z* `! C8 z/* assign the tl som board LED-GPIOs*/" ~+ F1 z3 C5 t, ~8 v. o6 x. W1 [  ~" D
static const short da850_evm_tl_user_led_pins[] = {
5 v& [- p, N. B" u$ V5 b        /* These pins are definition at <mach/mux.h> file */
7 s$ D8 ~5 H8 p+ s        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
. \( d* N" J. b. c0 F: n3 y) l( J        -1
7 H5 ?; ?/ Q, q$ P};6 D' Q, _- }: X- M) f! {5 L- e3 D

, W1 x  q6 r! d3 }0 wstatic struct gpio_led da850_evm_tl_leds[] = {
# h$ q  N+ F3 N# u3 p7 e; q        {
( ^- C8 d, a1 F  U                .active_low = 0,- k8 b( n/ J! l, k' N9 X5 W' P, O
                .gpio = DA850_USER_LED0,
& x( @' g4 c" y4 T0 Z                .name = "user_led0",% H/ y/ o0 O& _6 R5 q5 d+ h0 k& h
                .default_trigger = "default-on",) G) y3 Z' p' y' Q( ]
        },
* b' h  t4 ?: K9 z        {
, p  ?9 c2 X* D5 T% {* v4 L                .active_low = 0,
- {( d% b+ }' e# Y8 G                .gpio = DA850_USER_LED1,
. r+ f+ J; |: i& T/ f5 t                .name = "user_led1",  @, ^: J  p" V+ W1 ~% L3 h
                .default_trigger = "default-on",& E/ d$ e5 Q; T( [. n8 r, g. s9 R
        },* c3 {7 j- J0 U% x/ b, k& q. S
        {- d# c/ O/ @2 O9 |7 ]4 |
                .active_low = 0,
* C, n$ L9 R  t: @2 W9 h2 H: H                .gpio = DA850_USER_LED2," O9 Q  P9 C7 X9 ?" c$ X4 Z
                .name = "user_led2",; p! c  P# A; X6 V  v; N
                .default_trigger = "default-on",
+ q! F% a" N6 G" k4 X4 K( K: s        },7 ]& |: z  R5 D$ z( t
        {
" ~+ E# n' }. \# o, M0 f! J                .active_low = 0,
7 Q; T" b: B1 m1 q8 p6 X                .gpio = DA850_USER_LED3,( i) ?4 K( _6 b! `
                .name = "user_led3",# q) u5 {: E9 I' T  m
                .default_trigger = "default-on",
. S. ?4 ?5 o9 O6 u0 a9 Q" y        },
; ~- Z/ t7 k0 @};
* t" f) e" e5 O0 G- b
3 {0 P7 g! H* c3 R' ustatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
, P# @7 S  H$ W* x        .leds = da850_evm_tl_leds,
  }4 i- O6 ?; \- O        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, ]+ u1 [2 }1 a0 O& C7 }};
$ w  a* a9 |' \3 r% v5 e$ y0 |& C+ k2 v. S5 ]
static void led_dev_release(struct device *dev)- e" t/ y3 w7 g# U; R
{
! s% b1 e/ A" _' }) t};
* G( C' d7 r- u+ O1 d$ v
% q' K) H! d2 ^( F. Hstatic struct platform_device da850_evm_tl_leds_device = {
3 i) t- [6 s/ x" R/ h        .name                = "leds-gpio",8 R& ^6 ?1 v9 a( F  R" W5 }2 h
        .id                = 1,
" w, R6 Z) Z, o) W% i! [        .dev = {
" f* g9 y. Y2 c. s! M                .platform_data = &da850_evm_tl_leds_pdata,
4 G6 L# e# Q/ i. `% a                .release = led_dev_release,8 [" [; p7 u" V. {
        }
, Q/ ^# d+ T0 g9 U, ?, R2 ~1 n};
9 @& V4 i  I# E% P! o1 q# t
' G  `% T1 _% r4 L% v$ ystatic int __init led_platform_init(void)
) U- s2 k" _' R{* ]6 \6 z5 Z# w& q! i9 E, [
        int ret;! {7 V2 q7 e% R3 x7 O# u0 L! g
#if 0
. f6 |- Y: U% o" {        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);5 ?5 {  Q& K1 Z6 o: ~5 H& J! C
        if (ret). i/ T+ v( [0 ~% H
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"- V/ y; r# E# w. b8 e% F
                                "%d\n", ret);
/ O8 N2 l9 T7 ]#endif5 E: L  ?+ Y/ r* ^5 L9 V) h* W
        ret = platform_device_register(&da850_evm_tl_leds_device);
: C" T+ D: T3 l3 M* K; s: J        if (ret)
4 P1 S" b8 ~5 D9 x% a- T% p0 t# U                pr_warning("Could not register som GPIO expander LEDS");
( G8 k0 n' y* B7 J        else
4 Y- z0 C( R( ]; s# O* |                printk(KERN_INFO "LED register sucessful!\n");
5 R5 z0 T) ?! A* ]3 B% U* l1 t7 F8 J0 ~1 `
        return ret;
- Q, K1 A8 r- p2 X}; g" G+ R' ]! F. i

6 w  \5 F3 Z' t$ ~static void __exit led_platform_exit(void)" O7 b! {$ F" p, v* t' l- Z
{
9 l) t5 J: k  K! q) Q        platform_device_unregister(&da850_evm_tl_leds_device);. C" S# Y1 E; q- D$ p
2 ~, Y; F+ r' v# X. e# b: W/ h
        printk(KERN_INFO "LED unregister!\n");
9 ^  ~: P2 g, ?$ B" {}
' G: w, `' g  l! I) F9 K9 H5 G& e5 M3 d
module_init(led_platform_init);' J+ s& A* H) h: l( m+ u
module_exit(led_platform_exit);
# j0 i; j" s* s/ n. U5 V$ t$ r4 P% u5 E" z. d# c
MODULE_DESCRIPTION("Led platform driver");
: Y2 c! L% Q# YMODULE_AUTHOR("Tronlong");( R, c- `1 `& B1 ^6 m8 z5 v
MODULE_LICENSE("GPL");
% Q" m2 }. Z3 i4 A" A- l8 F$ S6 g) T8 h3 n
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-9 01:22 , Processed in 0.040282 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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