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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。  N6 l" _; d2 B5 z2 l( m1 P
#include <linux/init.h>4 q  f/ l$ }; p  o% E
#include <linux/module.h>& y1 t% S6 ~- v9 a2 `
#include <linux/kernel.h>
3 {5 R6 K% V2 h5 P* I+ P#include <linux/types.h>
% c" `- h- M8 o. w- h; }#include <linux/gpio.h>/ L, f6 `, e7 G0 z( x( S
#include <linux/leds.h>
# D, R* O9 p* b' i4 \: [  z#include <linux/platform_device.h>
# {  o. _  u/ `: Q  h6 E5 R# E# D% \8 _
#include <asm/mach-types.h>
. w6 S' P+ L* `) Q( d; Z+ U#include <asm/mach/arch.h>
& z2 |5 a8 @8 F1 X( ?/ H6 c4 Y#include <mach/da8xx.h>
! a/ d) ^  j7 k- L#include <mach/mux.h>
$ K" x% w9 `/ Q7 y( Z) W$ o: I/ u9 j6 y0 m; C! G6 i2 X& F% Z9 A
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
$ ]' a6 ~. D. {$ R! k" P. s#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)" T* Y, K# j' M, i* K3 Y# |
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
0 Z. x1 z* x: ~#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
# R$ l2 a' Y; P' v$ M4 Y# N1 u" N/ z3 j- [/ ~7 @' ^# Q8 _
/* assign the tl som board LED-GPIOs*/, z$ Z7 D( O; g! o0 J2 o
static const short da850_evm_tl_user_led_pins[] = {" k& M5 n8 B! M; X" S; y) q; f% e
        /* These pins are definition at <mach/mux.h> file */" L/ L# q4 A* ~. G
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,- V$ }4 X4 G' I0 H: n
        -1) `" {9 J. a# ]) ^% R4 c
};* W! q& V8 {2 j* z: u% C. P' o

& J! i- N2 x- j2 f+ ?2 Z' Ostatic struct gpio_led da850_evm_tl_leds[] = {
7 f( `7 s9 s5 e& E6 @* L        {! m" g- R' q, w9 M1 p" e  E
                .active_low = 0,
/ V8 S+ l6 U+ `$ }# d' i3 o+ W; M                .gpio = DA850_USER_LED0,0 K, V. g  L+ H2 @" V; M; q3 A2 R
                .name = "user_led0"," |$ c% L, E! w9 h
                .default_trigger = "default-on",
9 h7 @9 r* O% S  F% T" f& q        },  V  Z9 q; S; c
        {
5 K6 l  {  c* c; d& T                .active_low = 0,
+ m1 u5 d( Z+ a                .gpio = DA850_USER_LED1,$ d; u" w6 j# |  k7 V" Z3 [
                .name = "user_led1",- K+ }4 H: u4 U
                .default_trigger = "default-on",
6 A$ C4 ^+ d' C" N/ R        },2 S% ?! w# @6 k7 Q8 R  {+ J
        {
% w# Y% U# Z% U) {' T                .active_low = 0,; ~4 ?+ P3 f4 {4 H# ?
                .gpio = DA850_USER_LED2,$ @- C  z% b2 Z* G' J, g3 Y! J
                .name = "user_led2",
" t1 j: B8 V. {4 P                .default_trigger = "default-on",& M/ Z; G$ p( W$ S/ \" O: I
        },
3 Y9 W( _+ ?) A3 x* o7 v        {* ?* z, }7 u3 M: J* l9 R; y
                .active_low = 0,) N2 _+ v4 d- r; v5 l# i$ Y4 U" f0 P: C
                .gpio = DA850_USER_LED3,: d  r: u% N4 W8 L0 Q
                .name = "user_led3",; p4 x5 ]/ \& `3 Q9 B; f% o
                .default_trigger = "default-on",
) K+ L" s+ @6 h1 E        },& F9 Q2 Q" g# Z1 L! p4 ^
};
# z+ u: D# h$ p  H: L; y/ P7 a1 L) q! Q' w
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
; {0 i; F: b& Q# g        .leds = da850_evm_tl_leds,
) P, p. V" Q. I  {$ Z; u/ Y3 i        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
  b8 F7 l2 S% t1 j% Z3 t% q' @};
4 l) }; l) A8 s& M% Q  Q6 _3 j8 w  N
static void led_dev_release(struct device *dev)
  e4 ^- x$ ^$ R: Z* o# v{
! W# A2 p+ d2 p6 {  c0 u( ~};9 O/ v3 H1 |2 M4 S

8 O1 y" y/ i# {0 ]# Nstatic struct platform_device da850_evm_tl_leds_device = {9 v- j9 a  r5 E: B* ?
        .name                = "leds-gpio",3 F3 P- a  O, S) n4 a: T
        .id                = 1,( u( w$ _; F6 V3 R* c: M. j
        .dev = {
0 V7 ~/ r  ~7 i7 k                .platform_data = &da850_evm_tl_leds_pdata,
" n4 r3 V- M, E6 \2 B2 H! d# H* l                .release = led_dev_release,1 J7 ^6 C$ c3 K  U8 Q& v2 F8 |
        }
3 J2 z- j) H% a, n% q6 P6 G};6 G: R) h$ m9 q; l

: N+ U6 T1 {8 @& G" lstatic int __init led_platform_init(void)6 g/ G$ q, A! L" i& G6 k
{
3 e, {$ {0 ~9 R# h: R- y        int ret;1 d+ m! Q3 S1 N/ h( b, s! e
#if 0& {6 I, H  I: m7 R% s+ n
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
7 @8 |3 m& C6 G        if (ret): g) s7 _+ ]4 k/ L% k: D
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"* @3 U4 w* x) m& x
                                "%d\n", ret);
6 A+ H2 |8 Z" o1 M( U#endif( `/ p, Z/ b& f, F
        ret = platform_device_register(&da850_evm_tl_leds_device);
- T4 ?* R# ~9 Y- h- m0 X/ Q8 B        if (ret)* S) M" j1 C$ d: f
                pr_warning("Could not register som GPIO expander LEDS");  t3 L% v2 U9 z9 Q- }& p5 T
        else
% ]7 j# k0 M& e' `% ^9 q                printk(KERN_INFO "LED register sucessful!\n");0 r9 u7 q1 M: E1 k

% Z4 a5 @. S8 e3 ~        return ret;
, A# [2 }1 w' N* T/ `. e}
; Y1 Z7 U: u7 [
2 C4 c) U! v' u! a; u: M9 }static void __exit led_platform_exit(void)
! P# K3 M; ~0 e{
1 e# t& z- Y9 U: s" O! B& b        platform_device_unregister(&da850_evm_tl_leds_device);
% U4 E6 }: ]3 R1 V
& a! [5 L" x! z: S- r0 G5 w        printk(KERN_INFO "LED unregister!\n");
+ h! ]$ b! U9 w; h}- h9 M. W" [" ^7 d. z4 [; i
5 u5 |) ~$ P1 m
module_init(led_platform_init);% @7 u/ T* u' H3 E' h: r
module_exit(led_platform_exit);$ Z& v3 l/ r: b6 l
0 J1 V' p9 E' Z9 ^5 G8 Z9 h5 P- N
MODULE_DESCRIPTION("Led platform driver");# [0 I) {' q' }, T
MODULE_AUTHOR("Tronlong");
6 {) t* t1 E" d+ E+ HMODULE_LICENSE("GPL");
# [$ @) r9 c; {5 Z2 x
& S& C# C5 y; h3 V# t! @: R; E( N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-9 02:04 , Processed in 0.118106 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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