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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。9 l" c5 H+ _4 ]( t" L8 c0 ^5 G
#include <linux/init.h>
* B6 c$ J& J$ Q- O( V#include <linux/module.h>! o/ N$ ~9 S' w! T# J5 z
#include <linux/kernel.h>& p) i- O1 r3 |- u/ ]( S) x
#include <linux/types.h>6 f6 U) W6 k+ d! P: h
#include <linux/gpio.h>4 {  [" N1 _1 m' J7 ^& [8 v$ G
#include <linux/leds.h>. V. z- \- Z6 J0 \( E
#include <linux/platform_device.h>& N4 a5 B3 X' A- a# s

' n) B$ T( {2 q, m  r+ ?#include <asm/mach-types.h>7 M9 {" F1 _% a/ l, C
#include <asm/mach/arch.h>
0 \; }6 t) j* u9 Y#include <mach/da8xx.h>
* P# F: D" O) I$ x" t#include <mach/mux.h>
' u+ F! T2 I( A. F4 P$ u
  N; I3 A( \0 t3 T; @#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)/ C: p: n3 s' K: N/ N
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
% c& j$ a+ j* [6 p#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)8 z. w( ^* l4 r' Q. y# I
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
* h) u& L; _4 ^/ M1 Y6 g* ?
. v- \9 B6 X" T% [/* assign the tl som board LED-GPIOs*/  |* E2 R" o  U4 K
static const short da850_evm_tl_user_led_pins[] = {
; M* Z6 F; i# X9 q# c        /* These pins are definition at <mach/mux.h> file */6 Z. y( Z/ H3 h
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
( J0 P* c( ^- b        -1! l- J6 j1 w6 v4 h8 k
};
& a8 z$ l( J6 \1 S# S
5 E* J- s% l6 U% k' J" N7 |static struct gpio_led da850_evm_tl_leds[] = {
8 h  |5 K( o/ x1 r        {3 f% y: U. i6 N' x" _/ f
                .active_low = 0,
* b2 x3 A  e* q7 y: k                .gpio = DA850_USER_LED0,3 \2 f  \$ S6 {9 }# O) s1 ]" n& @: {
                .name = "user_led0",
8 g/ p1 @: z' K" J2 p! A3 B( i1 t5 C                .default_trigger = "default-on",
9 @0 O' _. Y  A, h, G        },
0 D; h: |9 ~- z. p        {
1 `. G4 Z$ b/ l# F2 n                .active_low = 0,
3 d) z$ R9 p3 N. w* |; X% N, f                .gpio = DA850_USER_LED1,; J9 k6 }) ?1 C6 |4 p
                .name = "user_led1",; b$ k$ y2 T4 y$ `
                .default_trigger = "default-on",% F8 p6 _# T# a
        },
" y; g& @( A! y$ }3 p        {& v0 F5 W0 y9 \) e% y. A0 }4 c
                .active_low = 0,3 v/ _: v1 [1 g) e
                .gpio = DA850_USER_LED2,2 d0 @- C2 ~$ c) q# j( ^
                .name = "user_led2",
% Q" a. I1 b% d, ~7 w2 P/ i                .default_trigger = "default-on",1 s+ }$ F  D6 F9 K+ T4 {: h" L
        },
. Z: C: Q2 q) H* {. Q% J        {9 z: g+ D- K2 J6 C; r6 t% s
                .active_low = 0,! z' f9 B" A9 F0 z# m# r
                .gpio = DA850_USER_LED3,; y9 G7 c, f% y' s8 T8 k8 g1 V
                .name = "user_led3",
  Q& Q6 a$ i2 H                .default_trigger = "default-on",
/ z8 m) Q0 U( H; f; z9 T. d        },
1 h3 B$ s0 J2 }" ~. i};
* F( z/ i2 \: a; ]. Y
# }3 E7 l5 P2 t9 Z; p( |static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {5 u! V7 a$ o5 G/ I; |
        .leds = da850_evm_tl_leds,0 u# u7 Y7 r' i+ V5 f- u% l
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),8 s2 `* b6 d; E  O; S/ q  z; P+ I
};6 B8 @3 K9 G: ?: v' C
) u) |0 \) ^1 L! X
static void led_dev_release(struct device *dev)' K) w5 P7 `- Y6 d
{8 f5 p4 z2 W4 u7 l0 y: J/ m5 S
};
' W) i! D% d" H: S
' V& w! S$ ~8 E, o  fstatic struct platform_device da850_evm_tl_leds_device = {$ S" z7 c5 w% f/ }" l
        .name                = "leds-gpio",5 h4 b3 m$ }* R5 L& z) m
        .id                = 1,
* k2 m; N" M1 C        .dev = {
; h2 M, c! x1 `5 Y2 e* ]                .platform_data = &da850_evm_tl_leds_pdata,+ J# {/ p' l4 G
                .release = led_dev_release,
) q, B  A0 _, e  o6 I% y3 c( w        }
& ?$ L1 A! \+ P4 u& i};: V0 ?6 ~- p$ A: c  v5 M6 d

. z& U" R7 T. d$ ystatic int __init led_platform_init(void), Y" I4 w- }- _
{# n4 H! o. I( C$ }9 m+ q
        int ret;6 S/ v$ q6 }  }# L
#if 09 z2 W# }" P' {  m7 W% m
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);. D. I9 t" A# T7 Q  g6 c/ N
        if (ret)9 ?8 E( g0 s: [; F
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
9 p5 _* r7 W& c2 D$ K" ]3 Q6 d                                "%d\n", ret);
/ o7 q3 M: U; S9 L. |#endif
" @: o6 y5 ?0 G; ]& U! R6 ]  d* k        ret = platform_device_register(&da850_evm_tl_leds_device);  E1 ~9 i7 Q( M" H  h, c% R
        if (ret)
" F9 P/ W! C, Y# P/ g                pr_warning("Could not register som GPIO expander LEDS");
7 _$ o+ y( Q% h        else
2 b2 f4 ]0 N4 J( c1 c; n                printk(KERN_INFO "LED register sucessful!\n");
5 d8 K5 O" C6 ^5 e9 a5 [$ a6 f! R0 p; b+ b; O
        return ret;% @! D2 S4 L- o
}
- C3 Z5 J$ c! Y" ^( h2 ?% x: i- g9 p; W9 w
static void __exit led_platform_exit(void)' F- x7 G# Z& i
{2 [3 B, n/ F/ P( ^
        platform_device_unregister(&da850_evm_tl_leds_device);7 T- r; k1 B! B% i- x
8 ~: s5 H5 ?& x8 Q
        printk(KERN_INFO "LED unregister!\n");
" y7 Y+ d4 F* m- Q0 }, N}
/ v' i; W2 B+ A  z# o1 M( R; \9 f
# g, C4 [. d1 hmodule_init(led_platform_init);1 h4 P# q8 j1 ]
module_exit(led_platform_exit);4 _4 o3 X, ]$ v  L6 m* I( Z% d
4 V/ W& y" U+ w) e
MODULE_DESCRIPTION("Led platform driver");6 a5 ~- q/ `, C0 }; ]" X
MODULE_AUTHOR("Tronlong");; |1 H) |- H6 d, F
MODULE_LICENSE("GPL");; f7 |! F( n" W, K: |$ }* t

6 M# a; o; d% u  v
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-3 18:48 , Processed in 0.042575 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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